Newer
Older
AMI-Aptio-BIOS-Reversed / NvramPei / decompiled / 0xffe4ec6e.json
@Ajax Dong Ajax Dong 2 days ago 5 KB Init
{"jsonrpc": "2.0", "result": {"content": [{"type": "text", "text": "{\"addr\":\"0xffe4ec6e\",\"code\":\"int __fastcall sub_FFE4EC6E(int a1, unsigned __int8 n3_1, unsigned int a3, int a4, int a5, int a6, _DWORD *a7)\\n{\\n  int v8; // edi\\n  int v10; // ebp\\n  int v12; // esi\\n  int v13; // esi\\n  int v14; // esi\\n  int v15; // esi\\n  int v16; // eax\\n  unsigned int n3; // [esp+14h] [ebp-4h] BYREF\\n\\n  LOWORD(v8) = 0; /*0xffe4ec7c*/\\n  v10 = sub_FFE4F0BF(&n3); /*0xffe4ec86*/\\n  if ( n3_1 >= n3 )\\n  {\\n    sub_FFE4F76B(0x80000000, \\\"GPIO ERROR: Group argument (%d) exceeds GPIO group range\\\\n\\\", n3_1);\\n    return -2147483646; /*0xffe4eca6*/\\n  }\\n  if ( a1 ) /*0xffe4ecad*/\\n  {\\n    v12 = a1 - 1; /*0xffe4ecaf*/\\n    if ( v12 ) /*0xffe4ecb2*/\\n    {\\n      v13 = v12 - 1; /*0xffe4ecb4*/\\n      if ( v13 ) /*0xffe4ecb7*/\\n      {\\n        v14 = v13 - 1; /*0xffe4ecb9*/\\n        if ( v14 ) /*0xffe4ecbc*/\\n        {\\n          v15 = v14 - 1; /*0xffe4ecbe*/\\n          if ( v15 ) /*0xffe4ecc1*/\\n          {\\n            if ( v15 != 1 ) /*0xffe4ecc6*/\\n            {\\n              v16 = sub_FFE4F73A(); /*0xffe4ecc8*/\\n              if ( v16 ) /*0xffe4eccf*/\\n                (*(void (__cdecl **)(const char *, int, const char *))(v16 + 4))( /*0xffe4ece0*/\\n                  \\\"e:\\\\\\\\hs\\\\\\\\PurleySktPkg\\\\\\\\SouthClusterLbg\\\\\\\\Library\\\\\\\\PeiDxeSmmGpioLib\\\\\\\\GpioLib.c\\\",\\n                  218,\\n                  \\\"((BOOLEAN)(0==1))\\\");\\n              goto LABEL_19; /*0xffe4ece6*/\\n            }\\n            v8 = *(_DWORD *)(60 * n3_1 + v10 + 48); /*0xffe4eceb*/\\n          }\\n          else\\n          {\\n            v8 = *(_DWORD *)(60 * n3_1 + v10 + 44); /*0xffe4ecf4*/\\n          }\\n        }\\n        else\\n        {\\n          v8 = *(_DWORD *)(60 * n3_1 + v10 + 40); /*0xffe4ecfd*/\\n        }\\n      }\\n      else\\n      {\\n        v8 = *(_DWORD *)(60 * n3_1 + v10 + 32); /*0xffe4ed06*/\\n      }\\n    }\\n    else\\n    {\\n      v8 = *(_DWORD *)(60 * n3_1 + v10 + 24); /*0xffe4ed0f*/\\n    }\\n  }\\n  else\\n  {\\n    v8 = *(_DWORD *)(60 * n3_1 + v10 + 8); /*0xffe4ed18*/\\n  }\\n  if ( v8 == -1 ) /*0xffe4ed1f*/\\n    return -2147483646; /*0xffe4ed1f*/\\nLABEL_19:\\n  if ( a3 > (unsigned int)(*(_DWORD *)(60 * n3_1 + v10 + 56) - 1) >> 5 ) /*0xffe4ed32*/\\n    return -2147483646; /*0xffe4ed32*/\\n  *a7 = *(_DWORD *)((unsigned __int16)(v8 + 4 * a3) | ((*(unsigned __int8 *)(60 * n3_1 + v10) | 0xFFFFFD00) << 16)); /*0xffe4ed53*/\\n  return 0; /*0xffe4ed57*/\\n}\",\"refs\":[{\"addr\":\"0xffe4f0bf\",\"name\":\"sub_FFE4F0BF\"},{\"addr\":\"0xffe4f76b\",\"name\":\"sub_FFE4F76B\"},{\"addr\":\"0xffe50604\",\"name\":\"aGpioErrorGroup\",\"string\":\"GPIO ERROR: Group argument (%d) exceeds GPIO group range\\n\"},{\"addr\":\"0xffe4f73a\",\"name\":\"sub_FFE4F73A\"},{\"addr\":\"0xffe506e4\",\"name\":\"aEHsPurleysktpk\",\"string\":\"e:\\\\hs\\\\PurleySktPkg\\\\SouthClusterLbg\\\\Library\\\\PeiDxeSmmGpioLib\\\\GpioLib.c\"},{\"addr\":\"0xffe506d0\",\"name\":\"aBoolean01\",\"string\":\"((BOOLEAN)(0==1))\"}]}"}], "structuredContent": {"addr": "0xffe4ec6e", "code": "int __fastcall sub_FFE4EC6E(int a1, unsigned __int8 n3_1, unsigned int a3, int a4, int a5, int a6, _DWORD *a7)\n{\n  int v8; // edi\n  int v10; // ebp\n  int v12; // esi\n  int v13; // esi\n  int v14; // esi\n  int v15; // esi\n  int v16; // eax\n  unsigned int n3; // [esp+14h] [ebp-4h] BYREF\n\n  LOWORD(v8) = 0; /*0xffe4ec7c*/\n  v10 = sub_FFE4F0BF(&n3); /*0xffe4ec86*/\n  if ( n3_1 >= n3 )\n  {\n    sub_FFE4F76B(0x80000000, \"GPIO ERROR: Group argument (%d) exceeds GPIO group range\\n\", n3_1);\n    return -2147483646; /*0xffe4eca6*/\n  }\n  if ( a1 ) /*0xffe4ecad*/\n  {\n    v12 = a1 - 1; /*0xffe4ecaf*/\n    if ( v12 ) /*0xffe4ecb2*/\n    {\n      v13 = v12 - 1; /*0xffe4ecb4*/\n      if ( v13 ) /*0xffe4ecb7*/\n      {\n        v14 = v13 - 1; /*0xffe4ecb9*/\n        if ( v14 ) /*0xffe4ecbc*/\n        {\n          v15 = v14 - 1; /*0xffe4ecbe*/\n          if ( v15 ) /*0xffe4ecc1*/\n          {\n            if ( v15 != 1 ) /*0xffe4ecc6*/\n            {\n              v16 = sub_FFE4F73A(); /*0xffe4ecc8*/\n              if ( v16 ) /*0xffe4eccf*/\n                (*(void (__cdecl **)(const char *, int, const char *))(v16 + 4))( /*0xffe4ece0*/\n                  \"e:\\\\hs\\\\PurleySktPkg\\\\SouthClusterLbg\\\\Library\\\\PeiDxeSmmGpioLib\\\\GpioLib.c\",\n                  218,\n                  \"((BOOLEAN)(0==1))\");\n              goto LABEL_19; /*0xffe4ece6*/\n            }\n            v8 = *(_DWORD *)(60 * n3_1 + v10 + 48); /*0xffe4eceb*/\n          }\n          else\n          {\n            v8 = *(_DWORD *)(60 * n3_1 + v10 + 44); /*0xffe4ecf4*/\n          }\n        }\n        else\n        {\n          v8 = *(_DWORD *)(60 * n3_1 + v10 + 40); /*0xffe4ecfd*/\n        }\n      }\n      else\n      {\n        v8 = *(_DWORD *)(60 * n3_1 + v10 + 32); /*0xffe4ed06*/\n      }\n    }\n    else\n    {\n      v8 = *(_DWORD *)(60 * n3_1 + v10 + 24); /*0xffe4ed0f*/\n    }\n  }\n  else\n  {\n    v8 = *(_DWORD *)(60 * n3_1 + v10 + 8); /*0xffe4ed18*/\n  }\n  if ( v8 == -1 ) /*0xffe4ed1f*/\n    return -2147483646; /*0xffe4ed1f*/\nLABEL_19:\n  if ( a3 > (unsigned int)(*(_DWORD *)(60 * n3_1 + v10 + 56) - 1) >> 5 ) /*0xffe4ed32*/\n    return -2147483646; /*0xffe4ed32*/\n  *a7 = *(_DWORD *)((unsigned __int16)(v8 + 4 * a3) | ((*(unsigned __int8 *)(60 * n3_1 + v10) | 0xFFFFFD00) << 16)); /*0xffe4ed53*/\n  return 0; /*0xffe4ed57*/\n}", "refs": [{"addr": "0xffe4f0bf", "name": "sub_FFE4F0BF"}, {"addr": "0xffe4f76b", "name": "sub_FFE4F76B"}, {"addr": "0xffe50604", "name": "aGpioErrorGroup", "string": "GPIO ERROR: Group argument (%d) exceeds GPIO group range\n"}, {"addr": "0xffe4f73a", "name": "sub_FFE4F73A"}, {"addr": "0xffe506e4", "name": "aEHsPurleysktpk", "string": "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c"}, {"addr": "0xffe506d0", "name": "aBoolean01", "string": "((BOOLEAN)(0==1))"}]}, "isError": false}, "id": 1}