Newer
Older
AMI-Aptio-BIOS-Reversed / NvramPei / decompiled / 0xffe4dc55.json
@Ajax Dong Ajax Dong 2 days ago 19 KB Init
{"jsonrpc": "2.0", "result": {"content": [{"type": "text", "text": "{\"addr\":\"0xffe4dc55\",\"code\":\"int __fastcall sub_FFE4DC55(int a1, int *a2)\\n{\\n  int v3; // eax\\n  int result; // eax\\n  _DWORD *v5; // edi\\n  _DWORD *v6; // edi\\n  _DWORD *src; // ebx\\n  int (__cdecl *v8)(int, int, int, int); // eax\\n  const void *v9; // edi\\n  const void *v10; // esi\\n  int v11; // eax\\n  int v12; // edi\\n  unsigned __int8 v13; // al\\n  char v14; // al\\n  int *v15; // esi\\n  int v16; // eax\\n  _DWORD *v17; // esi\\n  _DWORD *v18; // esi\\n  unsigned __int8 v19; // al\\n  unsigned __int8 v20; // al\\n  unsigned __int8 v21; // cl\\n  unsigned __int8 v22; // al\\n  int v23; // eax\\n  int v24; // eax\\n  _DWORD *v25; // edi\\n  _DWORD *v26; // ecx\\n  _DWORD *v27; // eax\\n  const char *NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n; // [esp-4h] [ebp-DCh]\\n  char v29; // [esp+12h] [ebp-C6h]\\n  char v30; // [esp+12h] [ebp-C6h]\\n  char v31; // [esp+13h] [ebp-C5h] BYREF\\n  _DWORD *v32; // [esp+14h] [ebp-C4h] BYREF\\n  const void *v33; // [esp+18h] [ebp-C0h] BYREF\\n  int n2; // [esp+1Ch] [ebp-BCh]\\n  _DWORD *v35; // [esp+20h] [ebp-B8h] BYREF\\n  int v36; // [esp+24h] [ebp-B4h]\\n  _DWORD src_1[10]; // [esp+28h] [ebp-B0h] BYREF\\n  _DWORD dst[34]; // [esp+50h] [ebp-88h] BYREF\\n\\n  v3 = *a2; /*0xffe4dc67*/\\n  n2 = 0; /*0xffe4dc6a*/\\n  v29 = 0; /*0xffe4dc70*/\\n  if ( (*(int (__cdecl **)(int))(v3 + 116))(a1) == -2147483628 ) /*0xffe4dc7e*/\\n  {\\n    sub_FFE4DBEB(a2); /*0xffe4dc82*/\\n    return 0; /*0xffe4dc89*/\\n  }\\n  result = (*(int (__cdecl **)(int *, int, _DWORD **))(*a2 + 76))(a2, 160, &v35); /*0xffe4dc9c*/\\n  if ( result >= 0 )\\n  {\\n    v5 = v35; /*0xffe4dcaa*/\\n    *v35 = unk_FFE50558; /*0xffe4dcb7*/\\n    *++v5 = off_FFE5055C; /*0xffe4dcb8*/\\n    v5[1] = off_FFE50560; /*0xffe4dcb9*/\\n    v6 = v35 + 3; /*0xffe4dcc3*/\\n    v35[3] = unk_FFE50564; /*0xffe4dcc6*/\\n    *++v6 = off_FFE50568; /*0xffe4dcc7*/\\n    v6[1] = off_FFE5056C; /*0xffe4dcc8*/\\n    src = v35 + 6; /*0xffe4dccd*/\\n    v35[2] = v35 + 6; /*0xffe4dcd0*/\\n    *src = off_FFE50FD4; /*0xffe4dcd8*/\\n    v8 = off_FFE50FD8; /*0xffe4dcda*/\\n    src[2] = 0; /*0xffe4dcdf*/\\n    src[3] = 0; /*0xffe4dce3*/\\n    src[1] = v8; /*0xffe4dce7*/\\n    result = sub_FFE4DA9A(&v33, &src_1[1]); /*0xffe4dcf4*/\\n    if ( result >= 0 )\\n    {\\n      v9 = v33; /*0xffe4dd03*/\\n      v10 = (const void *)src_1[0]; /*0xffe4dd0b*/\\n      if ( !(unsigned __int8)sub_FFE4EB46(&v31) ) /*0xffe4dd14*/\\n      {\\n        if ( v31 ) /*0xffe4dd22*/\\n        {\\n          v33 = v10; /*0xffe4dd26*/\\n          v10 = v9; /*0xffe4dd2a*/\\n          src_1[0] = v9; /*0xffe4dd2c*/\\n        }\\n        else\\n        {\\n          v29 = 1; /*0xffe4dd32*/\\n        }\\n      }\\n      v11 = sub_FFE4EADD(v10); /*0xffe4dd39*/\\n      v12 = v11; /*0xffe4dd3e*/\\n      v36 = v11; /*0xffe4dd40*/\\n      if ( v11 ) /*0xffe4dd46*/\\n      {\\n        v12 = v11 + 24; /*0xffe4dd48*/\\n        v36 = v11 + 24; /*0xffe4dd4b*/\\n      }\\n      sub_FFE4F76B(\\n        64,\\n        \\\"NVRAM PEI: NVRAM Address: %p; NVRAM Backup Address: %p; NVRAM Size: %X; Header Size: %X\\\\n\\\",\\n        v10,\\n        v33,\\n        src_1[1],\\n        v12);\\n      sub_FFE4E81E(1); /*0xffe4dd70*/\\n      if ( v29 )\\n      {\\n        n2 = 2; /*0xffe4dd7e*/\\n        v13 = __inbyte(0x70u); /*0xffe4dd8c*/\\n        __outbyte(0x70u, v13 & 0x80 | 0x4F); /*0xffe4dd91*/\\n        __outbyte(0x71u, 0); /*0xffe4dd9a*/\\n        sub_FFE4F76B(0x80000000, \\\"NVRAM PEI: NVRAM header corruption is detected\\\\n\\\");\\n        if ( sub_FFE4DB15(a2, (int)&src[10 * src[2] + 4]) < 0 )\\n        {\\nLABEL_36:\\n          if ( (*(int (__cdecl **)(int *, int, int, _DWORD **))(*a2 + 52))(a2, 4, 56, &v32) < 0 )\\n          {\\n            sub_FFE4F7E5(\\n              -1,\\n              a2,\\n              \\\"ASSERT in %s on %i: %s\\\\n\\\",\\n              \\\"e:\\\\\\\\hs\\\\\\\\AmiModulePkg\\\\\\\\NVRAM\\\\\\\\NvramPei.c\\\",\\n              731,\\n              \\\"!EFI_ERROR(Status)\\\");\\n            v36 = 1; /*0xffe4df6a*/\\n            while ( 1 ) /*0xffe4df72*/\\n              ; /*0xffe4df72*/\\n          }\\n          v24 = src_1[0]; /*0xffe4df84*/\\n          v25 = v32 + 2; /*0xffe4df88*/\\n          v32[2] = unk_FFE5058C; /*0xffe4df8b*/\\n          *++v25 = unk_FFE50590; /*0xffe4df8c*/\\n          *++v25 = unk_FFE50594; /*0xffe4df8d*/\\n          v25[1] = unk_FFE50598; /*0xffe4df8e*/\\n          v26 = v32; /*0xffe4df8f*/\\n          v32[6] = v24; /*0xffe4df93*/\\n          v26[7] = 0; /*0xffe4df96*/\\n          v27 = v32; /*0xffe4df9a*/\\n          v32[8] = v33; /*0xffe4dfa2*/\\n          v27[9] = 0; /*0xffe4dfa5*/\\n          v32[10] = src_1[1]; /*0xffe4dfb1*/\\n          v32[12] = n2; /*0xffe4dfbc*/\\n          v32[11] = v36; /*0xffe4dfc7*/\\n          return (*(int (__cdecl **)(int *, _DWORD *))(*a2 + 24))(a2, v35); /*0xffe4dfd2*/\\n        }\\n        NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n = \\\"NVRAM PEI: Using FV_BB NVRAM Defaults\\\\n\\\";\\nLABEL_35:\\n        ++src[2]; /*0xffe4df28*/\\n        sub_FFE4F76B(2, NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n); /*0xffe4df2d*/\\n        goto LABEL_36; /*0xffe4df2d*/\\n      }\\n      qmemcpy(dst, src, sizeof(dst)); /*0xffe4ddd7*/\\n      qmemcpy(&dst[4], src_1, 0x28u); /*0xffe4dde4*/\\n      dst[2] = 1; /*0xffe4ddea*/\\n      v14 = sub_FFE4D8E5(a2); /*0xffe4ddf4*/\\n      v30 = v14; /*0xffe4ddf9*/\\n      if ( !v14 ) /*0xffe4ddff*/\\n      {\\n        if ( !dword_FFE513DC ) /*0xffe4de08*/\\n        {\\nLABEL_20:\\n          qmemcpy(&src[10 * src[2] + 4], src_1, 0x28u); /*0xffe4de29*/\\n          v16 = src[2] + 1; /*0xffe4de45*/\\n          src[2] = v16; /*0xffe4de4b*/\\n          v17 = &src[10 * v16 + 4]; /*0xffe4de51*/\\n          if ( !sub_FFE4E87B(v17) ) /*0xffe4de54*/\\n            v17 = sub_FFE4DBAC(v17); /*0xffe4de65*/\\n          if ( !v17 ) /*0xffe4de69*/\\n            goto LABEL_32; /*0xffe4de69*/\\n          goto LABEL_31; /*0xffe4de69*/\\n        }\\n        v15 = &dword_FFE513DC; /*0xffe4de0a*/\\n        while ( !v14 ) /*0xffe4de11*/\\n        {\\n          v14 = ((int (__cdecl *)(int *, _DWORD *))*v15++)(a2, dst); /*0xffe4de19*/\\n          if ( !*v15 ) /*0xffe4de20*/\\n          {\\n            if ( v14 ) /*0xffe4de27*/\\n              break; /*0xffe4de27*/\\n            goto LABEL_20; /*0xffe4de27*/\\n          }\\n        }\\n      }\\n      v18 = &src[10 * src[2] + 4]; /*0xffe4de71*/\\n      if ( !sub_FFE4E87B(v18) ) /*0xffe4de84*/\\n        v18 = sub_FFE4DBAC(v18); /*0xffe4de95*/\\n      if ( v18 ) /*0xffe4de99*/\\n        ++src[2]; /*0xffe4de9b*/\\n      if ( v30 ) /*0xffe4dea3*/\\n      {\\n        n2 = 2; /*0xffe4dea5*/\\n        v19 = __inbyte(0x70u); /*0xffe4deb3*/\\n        __outbyte(0x70u, v19 & 0x80 | 0x4F); /*0xffe4deb8*/\\n        v20 = __inbyte(0x71u); /*0xffe4debf*/\\n        v21 = v20; /*0xffe4dec0*/\\n        v22 = __inbyte(0x70u); /*0xffe4dec5*/\\n        __outbyte(0x70u, v22 & 0x80 | 0x4F); /*0xffe4deca*/\\n        __outbyte(0x71u, v21 | 1); /*0xffe4ded3*/\\n        goto LABEL_32; /*0xffe4ded4*/\\n      }\\n      v23 = 10 * src[2]; /*0xffe4ded6*/\\n      n2 = 4; /*0xffe4dee4*/\\n      qmemcpy(&src[v23 + 4], src_1, 0x28u); /*0xffe4deee*/\\nLABEL_31:\\n      ++src[2]; /*0xffe4def0*/\\nLABEL_32:\\n      if ( (unsigned __int8)sub_FFE4F8B6(a2, src) ) /*0xffe4def5*/\\n        goto LABEL_36; /*0xffe4def5*/\\n      sub_FFE4F76B(0x80000000, \\\"NVRAM PEI: Incompatible NVRAM detected\\\\n\\\");\\n      src[2] = 0; /*0xffe4df0f*/\\n      if ( sub_FFE4DB15(a2, (int)(src + 4)) < 0 ) /*0xffe4df21*/\\n        goto LABEL_36; /*0xffe4df21*/\\n      NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n = \\\"NVRAM PEI: Incompatible NVRAM. Using FV_BB NVRAM Defaults\\\\n\\\";\\n      goto LABEL_35; /*0xffe4df23*/\\n    }\\n  }\\n  return result; /*0xffe4dfd7*/\\n}\",\"refs\":[{\"addr\":\"0xffe4dbeb\",\"name\":\"sub_FFE4DBEB\"},{\"addr\":\"0xffe50558\",\"name\":\"unk_FFE50558\"},{\"addr\":\"0xffe5055c\",\"name\":\"off_FFE5055C\"},{\"addr\":\"0xffe50560\",\"name\":\"off_FFE50560\"},{\"addr\":\"0xffe50564\",\"name\":\"unk_FFE50564\"},{\"addr\":\"0xffe50568\",\"name\":\"off_FFE50568\"},{\"addr\":\"0xffe5056c\",\"name\":\"off_FFE5056C\"},{\"addr\":\"0xffe50fd4\",\"name\":\"off_FFE50FD4\"},{\"addr\":\"0xffe50fd8\",\"name\":\"off_FFE50FD8\"},{\"addr\":\"0xffe4da9a\",\"name\":\"sub_FFE4DA9A\"},{\"addr\":\"0xffe4eb46\",\"name\":\"sub_FFE4EB46\"},{\"addr\":\"0xffe4eadd\",\"name\":\"sub_FFE4EADD\"},{\"addr\":\"0xffe4f76b\",\"name\":\"sub_FFE4F76B\"},{\"addr\":\"0xffe5043c\",\"name\":\"aNvramPeiNvramA\",\"string\":\"NVRAM PEI: NVRAM Address: %p; NVRAM Backup Address: %p; NVRAM Size: %X; Header Size: %X\\n\"},{\"addr\":\"0xffe4e81e\",\"name\":\"sub_FFE4E81E\"},{\"addr\":\"0xffe50498\",\"name\":\"aNvramPeiNvramH\",\"string\":\"NVRAM PEI: NVRAM header corruption is detected\\n\"},{\"addr\":\"0xffe4f7e5\",\"name\":\"sub_FFE4F7E5\"},{\"addr\":\"0xffe50540\",\"name\":\"aAssertInSOnIS\",\"string\":\"ASSERT in %s on %i: %s\\n\"},{\"addr\":\"0xffe50414\",\"name\":\"aEHsAmimodulepk\",\"string\":\"e:\\\\hs\\\\AmiModulePkg\\\\NVRAM\\\\NvramPei.c\"},{\"addr\":\"0xffe5052c\",\"name\":\"aEfiErrorStatus_0\",\"string\":\"!EFI_ERROR(Status)\"},{\"addr\":\"0xffe5058c\",\"name\":\"unk_FFE5058C\"},{\"addr\":\"0xffe50590\",\"name\":\"unk_FFE50590\"},{\"addr\":\"0xffe50594\",\"name\":\"unk_FFE50594\"},{\"addr\":\"0xffe50598\",\"name\":\"unk_FFE50598\"},{\"addr\":\"0xffe4db15\",\"name\":\"sub_FFE4DB15\"},{\"addr\":\"0xffe503ec\",\"name\":\"aNvramPeiUsingF\",\"string\":\"NVRAM PEI: Using FV_BB NVRAM Defaults\\n\"},{\"addr\":\"0xffe4d8e5\",\"name\":\"sub_FFE4D8E5\"},{\"addr\":\"0xffe4dbac\",\"name\":\"sub_FFE4DBAC\"},{\"addr\":\"0xffe4e87b\",\"name\":\"sub_FFE4E87B\"},{\"addr\":\"0xffe513dc\",\"name\":\"dword_FFE513DC\"},{\"addr\":\"0xffe4f8b6\",\"name\":\"sub_FFE4F8B6\"},{\"addr\":\"0xffe504c8\",\"name\":\"aNvramPeiIncomp\",\"string\":\"NVRAM PEI: Incompatible NVRAM detected\\n\"},{\"addr\":\"0xffe504f0\",\"name\":\"aNvramPeiIncomp_0\",\"string\":\"NVRAM PEI: Incompatible NVRAM. Using FV_BB NVRAM Defaults\\n\"}]}"}], "structuredContent": {"addr": "0xffe4dc55", "code": "int __fastcall sub_FFE4DC55(int a1, int *a2)\n{\n  int v3; // eax\n  int result; // eax\n  _DWORD *v5; // edi\n  _DWORD *v6; // edi\n  _DWORD *src; // ebx\n  int (__cdecl *v8)(int, int, int, int); // eax\n  const void *v9; // edi\n  const void *v10; // esi\n  int v11; // eax\n  int v12; // edi\n  unsigned __int8 v13; // al\n  char v14; // al\n  int *v15; // esi\n  int v16; // eax\n  _DWORD *v17; // esi\n  _DWORD *v18; // esi\n  unsigned __int8 v19; // al\n  unsigned __int8 v20; // al\n  unsigned __int8 v21; // cl\n  unsigned __int8 v22; // al\n  int v23; // eax\n  int v24; // eax\n  _DWORD *v25; // edi\n  _DWORD *v26; // ecx\n  _DWORD *v27; // eax\n  const char *NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n; // [esp-4h] [ebp-DCh]\n  char v29; // [esp+12h] [ebp-C6h]\n  char v30; // [esp+12h] [ebp-C6h]\n  char v31; // [esp+13h] [ebp-C5h] BYREF\n  _DWORD *v32; // [esp+14h] [ebp-C4h] BYREF\n  const void *v33; // [esp+18h] [ebp-C0h] BYREF\n  int n2; // [esp+1Ch] [ebp-BCh]\n  _DWORD *v35; // [esp+20h] [ebp-B8h] BYREF\n  int v36; // [esp+24h] [ebp-B4h]\n  _DWORD src_1[10]; // [esp+28h] [ebp-B0h] BYREF\n  _DWORD dst[34]; // [esp+50h] [ebp-88h] BYREF\n\n  v3 = *a2; /*0xffe4dc67*/\n  n2 = 0; /*0xffe4dc6a*/\n  v29 = 0; /*0xffe4dc70*/\n  if ( (*(int (__cdecl **)(int))(v3 + 116))(a1) == -2147483628 ) /*0xffe4dc7e*/\n  {\n    sub_FFE4DBEB(a2); /*0xffe4dc82*/\n    return 0; /*0xffe4dc89*/\n  }\n  result = (*(int (__cdecl **)(int *, int, _DWORD **))(*a2 + 76))(a2, 160, &v35); /*0xffe4dc9c*/\n  if ( result >= 0 )\n  {\n    v5 = v35; /*0xffe4dcaa*/\n    *v35 = unk_FFE50558; /*0xffe4dcb7*/\n    *++v5 = off_FFE5055C; /*0xffe4dcb8*/\n    v5[1] = off_FFE50560; /*0xffe4dcb9*/\n    v6 = v35 + 3; /*0xffe4dcc3*/\n    v35[3] = unk_FFE50564; /*0xffe4dcc6*/\n    *++v6 = off_FFE50568; /*0xffe4dcc7*/\n    v6[1] = off_FFE5056C; /*0xffe4dcc8*/\n    src = v35 + 6; /*0xffe4dccd*/\n    v35[2] = v35 + 6; /*0xffe4dcd0*/\n    *src = off_FFE50FD4; /*0xffe4dcd8*/\n    v8 = off_FFE50FD8; /*0xffe4dcda*/\n    src[2] = 0; /*0xffe4dcdf*/\n    src[3] = 0; /*0xffe4dce3*/\n    src[1] = v8; /*0xffe4dce7*/\n    result = sub_FFE4DA9A(&v33, &src_1[1]); /*0xffe4dcf4*/\n    if ( result >= 0 )\n    {\n      v9 = v33; /*0xffe4dd03*/\n      v10 = (const void *)src_1[0]; /*0xffe4dd0b*/\n      if ( !(unsigned __int8)sub_FFE4EB46(&v31) ) /*0xffe4dd14*/\n      {\n        if ( v31 ) /*0xffe4dd22*/\n        {\n          v33 = v10; /*0xffe4dd26*/\n          v10 = v9; /*0xffe4dd2a*/\n          src_1[0] = v9; /*0xffe4dd2c*/\n        }\n        else\n        {\n          v29 = 1; /*0xffe4dd32*/\n        }\n      }\n      v11 = sub_FFE4EADD(v10); /*0xffe4dd39*/\n      v12 = v11; /*0xffe4dd3e*/\n      v36 = v11; /*0xffe4dd40*/\n      if ( v11 ) /*0xffe4dd46*/\n      {\n        v12 = v11 + 24; /*0xffe4dd48*/\n        v36 = v11 + 24; /*0xffe4dd4b*/\n      }\n      sub_FFE4F76B(\n        64,\n        \"NVRAM PEI: NVRAM Address: %p; NVRAM Backup Address: %p; NVRAM Size: %X; Header Size: %X\\n\",\n        v10,\n        v33,\n        src_1[1],\n        v12);\n      sub_FFE4E81E(1); /*0xffe4dd70*/\n      if ( v29 )\n      {\n        n2 = 2; /*0xffe4dd7e*/\n        v13 = __inbyte(0x70u); /*0xffe4dd8c*/\n        __outbyte(0x70u, v13 & 0x80 | 0x4F); /*0xffe4dd91*/\n        __outbyte(0x71u, 0); /*0xffe4dd9a*/\n        sub_FFE4F76B(0x80000000, \"NVRAM PEI: NVRAM header corruption is detected\\n\");\n        if ( sub_FFE4DB15(a2, (int)&src[10 * src[2] + 4]) < 0 )\n        {\nLABEL_36:\n          if ( (*(int (__cdecl **)(int *, int, int, _DWORD **))(*a2 + 52))(a2, 4, 56, &v32) < 0 )\n          {\n            sub_FFE4F7E5(\n              -1,\n              a2,\n              \"ASSERT in %s on %i: %s\\n\",\n              \"e:\\\\hs\\\\AmiModulePkg\\\\NVRAM\\\\NvramPei.c\",\n              731,\n              \"!EFI_ERROR(Status)\");\n            v36 = 1; /*0xffe4df6a*/\n            while ( 1 ) /*0xffe4df72*/\n              ; /*0xffe4df72*/\n          }\n          v24 = src_1[0]; /*0xffe4df84*/\n          v25 = v32 + 2; /*0xffe4df88*/\n          v32[2] = unk_FFE5058C; /*0xffe4df8b*/\n          *++v25 = unk_FFE50590; /*0xffe4df8c*/\n          *++v25 = unk_FFE50594; /*0xffe4df8d*/\n          v25[1] = unk_FFE50598; /*0xffe4df8e*/\n          v26 = v32; /*0xffe4df8f*/\n          v32[6] = v24; /*0xffe4df93*/\n          v26[7] = 0; /*0xffe4df96*/\n          v27 = v32; /*0xffe4df9a*/\n          v32[8] = v33; /*0xffe4dfa2*/\n          v27[9] = 0; /*0xffe4dfa5*/\n          v32[10] = src_1[1]; /*0xffe4dfb1*/\n          v32[12] = n2; /*0xffe4dfbc*/\n          v32[11] = v36; /*0xffe4dfc7*/\n          return (*(int (__cdecl **)(int *, _DWORD *))(*a2 + 24))(a2, v35); /*0xffe4dfd2*/\n        }\n        NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n = \"NVRAM PEI: Using FV_BB NVRAM Defaults\\n\";\nLABEL_35:\n        ++src[2]; /*0xffe4df28*/\n        sub_FFE4F76B(2, NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n); /*0xffe4df2d*/\n        goto LABEL_36; /*0xffe4df2d*/\n      }\n      qmemcpy(dst, src, sizeof(dst)); /*0xffe4ddd7*/\n      qmemcpy(&dst[4], src_1, 0x28u); /*0xffe4dde4*/\n      dst[2] = 1; /*0xffe4ddea*/\n      v14 = sub_FFE4D8E5(a2); /*0xffe4ddf4*/\n      v30 = v14; /*0xffe4ddf9*/\n      if ( !v14 ) /*0xffe4ddff*/\n      {\n        if ( !dword_FFE513DC ) /*0xffe4de08*/\n        {\nLABEL_20:\n          qmemcpy(&src[10 * src[2] + 4], src_1, 0x28u); /*0xffe4de29*/\n          v16 = src[2] + 1; /*0xffe4de45*/\n          src[2] = v16; /*0xffe4de4b*/\n          v17 = &src[10 * v16 + 4]; /*0xffe4de51*/\n          if ( !sub_FFE4E87B(v17) ) /*0xffe4de54*/\n            v17 = sub_FFE4DBAC(v17); /*0xffe4de65*/\n          if ( !v17 ) /*0xffe4de69*/\n            goto LABEL_32; /*0xffe4de69*/\n          goto LABEL_31; /*0xffe4de69*/\n        }\n        v15 = &dword_FFE513DC; /*0xffe4de0a*/\n        while ( !v14 ) /*0xffe4de11*/\n        {\n          v14 = ((int (__cdecl *)(int *, _DWORD *))*v15++)(a2, dst); /*0xffe4de19*/\n          if ( !*v15 ) /*0xffe4de20*/\n          {\n            if ( v14 ) /*0xffe4de27*/\n              break; /*0xffe4de27*/\n            goto LABEL_20; /*0xffe4de27*/\n          }\n        }\n      }\n      v18 = &src[10 * src[2] + 4]; /*0xffe4de71*/\n      if ( !sub_FFE4E87B(v18) ) /*0xffe4de84*/\n        v18 = sub_FFE4DBAC(v18); /*0xffe4de95*/\n      if ( v18 ) /*0xffe4de99*/\n        ++src[2]; /*0xffe4de9b*/\n      if ( v30 ) /*0xffe4dea3*/\n      {\n        n2 = 2; /*0xffe4dea5*/\n        v19 = __inbyte(0x70u); /*0xffe4deb3*/\n        __outbyte(0x70u, v19 & 0x80 | 0x4F); /*0xffe4deb8*/\n        v20 = __inbyte(0x71u); /*0xffe4debf*/\n        v21 = v20; /*0xffe4dec0*/\n        v22 = __inbyte(0x70u); /*0xffe4dec5*/\n        __outbyte(0x70u, v22 & 0x80 | 0x4F); /*0xffe4deca*/\n        __outbyte(0x71u, v21 | 1); /*0xffe4ded3*/\n        goto LABEL_32; /*0xffe4ded4*/\n      }\n      v23 = 10 * src[2]; /*0xffe4ded6*/\n      n2 = 4; /*0xffe4dee4*/\n      qmemcpy(&src[v23 + 4], src_1, 0x28u); /*0xffe4deee*/\nLABEL_31:\n      ++src[2]; /*0xffe4def0*/\nLABEL_32:\n      if ( (unsigned __int8)sub_FFE4F8B6(a2, src) ) /*0xffe4def5*/\n        goto LABEL_36; /*0xffe4def5*/\n      sub_FFE4F76B(0x80000000, \"NVRAM PEI: Incompatible NVRAM detected\\n\");\n      src[2] = 0; /*0xffe4df0f*/\n      if ( sub_FFE4DB15(a2, (int)(src + 4)) < 0 ) /*0xffe4df21*/\n        goto LABEL_36; /*0xffe4df21*/\n      NVRAM_PEI:_Using_FV_BB_NVRAM_Defaults_n = \"NVRAM PEI: Incompatible NVRAM. Using FV_BB NVRAM Defaults\\n\";\n      goto LABEL_35; /*0xffe4df23*/\n    }\n  }\n  return result; /*0xffe4dfd7*/\n}", "refs": [{"addr": "0xffe4dbeb", "name": "sub_FFE4DBEB"}, {"addr": "0xffe50558", "name": "unk_FFE50558"}, {"addr": "0xffe5055c", "name": "off_FFE5055C"}, {"addr": "0xffe50560", "name": "off_FFE50560"}, {"addr": "0xffe50564", "name": "unk_FFE50564"}, {"addr": "0xffe50568", "name": "off_FFE50568"}, {"addr": "0xffe5056c", "name": "off_FFE5056C"}, {"addr": "0xffe50fd4", "name": "off_FFE50FD4"}, {"addr": "0xffe50fd8", "name": "off_FFE50FD8"}, {"addr": "0xffe4da9a", "name": "sub_FFE4DA9A"}, {"addr": "0xffe4eb46", "name": "sub_FFE4EB46"}, {"addr": "0xffe4eadd", "name": "sub_FFE4EADD"}, {"addr": "0xffe4f76b", "name": "sub_FFE4F76B"}, {"addr": "0xffe5043c", "name": "aNvramPeiNvramA", "string": "NVRAM PEI: NVRAM Address: %p; NVRAM Backup Address: %p; NVRAM Size: %X; Header Size: %X\n"}, {"addr": "0xffe4e81e", "name": "sub_FFE4E81E"}, {"addr": "0xffe50498", "name": "aNvramPeiNvramH", "string": "NVRAM PEI: NVRAM header corruption is detected\n"}, {"addr": "0xffe4f7e5", "name": "sub_FFE4F7E5"}, {"addr": "0xffe50540", "name": "aAssertInSOnIS", "string": "ASSERT in %s on %i: %s\n"}, {"addr": "0xffe50414", "name": "aEHsAmimodulepk", "string": "e:\\hs\\AmiModulePkg\\NVRAM\\NvramPei.c"}, {"addr": "0xffe5052c", "name": "aEfiErrorStatus_0", "string": "!EFI_ERROR(Status)"}, {"addr": "0xffe5058c", "name": "unk_FFE5058C"}, {"addr": "0xffe50590", "name": "unk_FFE50590"}, {"addr": "0xffe50594", "name": "unk_FFE50594"}, {"addr": "0xffe50598", "name": "unk_FFE50598"}, {"addr": "0xffe4db15", "name": "sub_FFE4DB15"}, {"addr": "0xffe503ec", "name": "aNvramPeiUsingF", "string": "NVRAM PEI: Using FV_BB NVRAM Defaults\n"}, {"addr": "0xffe4d8e5", "name": "sub_FFE4D8E5"}, {"addr": "0xffe4dbac", "name": "sub_FFE4DBAC"}, {"addr": "0xffe4e87b", "name": "sub_FFE4E87B"}, {"addr": "0xffe513dc", "name": "dword_FFE513DC"}, {"addr": "0xffe4f8b6", "name": "sub_FFE4F8B6"}, {"addr": "0xffe504c8", "name": "aNvramPeiIncomp", "string": "NVRAM PEI: Incompatible NVRAM detected\n"}, {"addr": "0xffe504f0", "name": "aNvramPeiIncomp_0", "string": "NVRAM PEI: Incompatible NVRAM. Using FV_BB NVRAM Defaults\n"}]}, "isError": false}, "id": 1}