Newer
Older
AMI-Aptio-BIOS-Reversed / NvramPei / decompiled / 0xffe4fb4f.json
@Ajax Dong Ajax Dong 2 days ago 3 KB Init
{"jsonrpc": "2.0", "result": {"content": [{"type": "text", "text": "{\"addr\":\"0xffe4fb4f\",\"code\":\"int __cdecl sub_FFE4FB4F(int a1, int a2, int *a3)\\n{\\n  int v3; // eax\\n  int v4; // esi\\n  int result; // eax\\n  int v6; // ebx\\n  int i; // edi\\n  int v8; // eax\\n  int v9; // ebp\\n  int v10; // [esp+10h] [ebp-Ch] BYREF\\n  int v11; // [esp+14h] [ebp-8h] BYREF\\n  _BYTE v12[4]; // [esp+18h] [ebp-4h] BYREF\\n\\n  sub_FFE4F76B(64, asc_FFE50C1C); /*0xffe4fb5d*/\\n  if ( !a1 || !a2 ) /*0xffe4fb74*/\\n    return -2147483646; /*0xffe4fc3a*/\\n  v3 = sub_FFE4F7B3(); /*0xffe4fb7a*/\\n  v4 = 0; /*0xffe4fb83*/\\n  result = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, int *))(*(_DWORD *)v3 + 32))(v3, &unk_FFE50E94, 0, 0, &v10); /*0xffe4fb90*/\\n  if ( result >= 0 ) /*0xffe4fb98*/\\n  {\\n    v6 = v10; /*0xffe4fb9e*/\\n    if ( *(_DWORD *)(v10 + 8) ) /*0xffe4fba2*/\\n    {\\n      for ( i = v10 + 16; ; i += 40 ) /*0xffe4fba7*/\\n      {\\n        sub_FFE4F76B(64, asc_FFE50C40, v4); /*0xffe4fbb2*/\\n        v8 = sub_FFE4E4CA(a2, (int)&v11, i); /*0xffe4fbc5*/\\n        if ( v8 ) /*0xffe4fbd1*/\\n        {\\n          if ( (unsigned __int8)sub_FFE4E147(v8, i) ) /*0xffe4fbd7*/\\n          {\\n            sub_FFE4F76B(64, asc_FFE50C68); /*0xffe4fbe7*/\\n            v9 = sub_FFE4E092(v12, i); /*0xffe4fc04*/\\n            sub_FFE4F76B(64, \\\"PeiGetVariableAddressAmi 3\\\\n\\\"); /*0xffe4fc06*/\\n            if ( v9 ) /*0xffe4fc10*/\\n              break; /*0xffe4fc10*/\\n          }\\n        }\\n        if ( (unsigned int)++v4 >= *(_DWORD *)(v6 + 8) ) /*0xffe4fc19*/\\n          return -2147483634; /*0xffe4fc19*/\\n      }\\n      sub_FFE4F76B(64, \\\"PeiGetVariableAddressAmi 4\\\\n\\\"); /*0xffe4fc29*/\\n      *a3 = v9; /*0xffe4fc34*/\\n      return 0; /*0xffe4fc36*/\\n    }\\n    else\\n    {\\n      return -2147483634; /*0xffe4fc1b*/\\n    }\\n  }\\n  return result; /*0xffe4fc3f*/\\n}\"}"}], "structuredContent": {"addr": "0xffe4fb4f", "code": "int __cdecl sub_FFE4FB4F(int a1, int a2, int *a3)\n{\n  int v3; // eax\n  int v4; // esi\n  int result; // eax\n  int v6; // ebx\n  int i; // edi\n  int v8; // eax\n  int v9; // ebp\n  int v10; // [esp+10h] [ebp-Ch] BYREF\n  int v11; // [esp+14h] [ebp-8h] BYREF\n  _BYTE v12[4]; // [esp+18h] [ebp-4h] BYREF\n\n  sub_FFE4F76B(64, asc_FFE50C1C); /*0xffe4fb5d*/\n  if ( !a1 || !a2 ) /*0xffe4fb74*/\n    return -2147483646; /*0xffe4fc3a*/\n  v3 = sub_FFE4F7B3(); /*0xffe4fb7a*/\n  v4 = 0; /*0xffe4fb83*/\n  result = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, int *))(*(_DWORD *)v3 + 32))(v3, &unk_FFE50E94, 0, 0, &v10); /*0xffe4fb90*/\n  if ( result >= 0 ) /*0xffe4fb98*/\n  {\n    v6 = v10; /*0xffe4fb9e*/\n    if ( *(_DWORD *)(v10 + 8) ) /*0xffe4fba2*/\n    {\n      for ( i = v10 + 16; ; i += 40 ) /*0xffe4fba7*/\n      {\n        sub_FFE4F76B(64, asc_FFE50C40, v4); /*0xffe4fbb2*/\n        v8 = sub_FFE4E4CA(a2, (int)&v11, i); /*0xffe4fbc5*/\n        if ( v8 ) /*0xffe4fbd1*/\n        {\n          if ( (unsigned __int8)sub_FFE4E147(v8, i) ) /*0xffe4fbd7*/\n          {\n            sub_FFE4F76B(64, asc_FFE50C68); /*0xffe4fbe7*/\n            v9 = sub_FFE4E092(v12, i); /*0xffe4fc04*/\n            sub_FFE4F76B(64, \"PeiGetVariableAddressAmi 3\\n\"); /*0xffe4fc06*/\n            if ( v9 ) /*0xffe4fc10*/\n              break; /*0xffe4fc10*/\n          }\n        }\n        if ( (unsigned int)++v4 >= *(_DWORD *)(v6 + 8) ) /*0xffe4fc19*/\n          return -2147483634; /*0xffe4fc19*/\n      }\n      sub_FFE4F76B(64, \"PeiGetVariableAddressAmi 4\\n\"); /*0xffe4fc29*/\n      *a3 = v9; /*0xffe4fc34*/\n      return 0; /*0xffe4fc36*/\n    }\n    else\n    {\n      return -2147483634; /*0xffe4fc1b*/\n    }\n  }\n  return result; /*0xffe4fc3f*/\n}"}, "isError": false}, "id": 1}