Newer
Older
AMI-Aptio-BIOS-Reversed / SetupDefaultLoad / sub_5b84.txt
@Ajax Dong Ajax Dong 2 days ago 1 KB Init
unsigned __int64 __fastcall sub_5B84(int a1, unsigned int *a2)
{
  unsigned int v2; // ebx
  unsigned __int64 v3; // rdi
  _DWORD *v5; // rax
  __int64 n1389; // rdx
  unsigned __int64 v8; // [rsp+40h] [rbp+18h] BYREF

  v2 = (unsigned __int16)a1; /*0x5b95*/
  v3 = BYTE2(a1); /*0x5ba0*/
  v5 = sub_5C64(&v8); /*0x5ba6*/
  if ( v3 >= v8 )
  {
    sub_5408(0x80000000LL, "GPIO ERROR: Group argument (%d) exceeds GPIO group range\n", v3);
    n1389 = 1389; /*0x5bcb*/
LABEL_3:
    sub_5450( /*0x5bd0*/
      (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c",
      n1389,
      (__int64)"((BOOLEAN)(0==1))");
    return 0x8000000000000002uLL; /*0x5bed*/
  }
  if ( v2 >= v5[15 * (unsigned int)v3 + 14] )
  {
    sub_5408(0x80000000LL, "GPIO ERROR: Pin number (%d) exceeds possible range for this group\n", v2);
    n1389 = 1398; /*0x5c0d*/
    goto LABEL_3; /*0x5c12*/
  }
  *a2 = (*(_DWORD *)(((LOBYTE(v5[15 * (unsigned int)v3]) | 0xFD00LL) << 16) /*0x5c4d*/
                   | (unsigned __int16)(LOWORD(v5[15 * (unsigned int)v3 + 1]) + 4 * (v2 >> 3)))
       & (unsigned int)(3 << (4 * (v2 & 7)))) >> (4 * (v2 & 7));
  return 0; /*0x5c5b*/
}