{
"0xffe0a9b8": "{\"addr\":\"0xffe0a9b8\",\"code\":\"void *__cdecl sub_FFE0A9B8(void *buf, unsigned int count, char value)\\n{\\n memset(buf, value, count); /*0xffe0a9c5*/\\n return buf; /*0xffe0a9cb*/\\n}\"}",
"0xffe0a9d8": "{\"addr\":\"0xffe0a9d8\",\"code\":\"int __cdecl sub_FFE0A9D8(_BYTE *a1, _BYTE *a2, int n16)\\n{\\n bool v6; // zf\\n\\n do /*0xffe0a9e6*/\\n {\\n if ( !n16 ) /*0xffe0a9e6*/\\n break; /*0xffe0a9e6*/\\n v6 = *a1++ == *a2++; /*0xffe0a9e6*/\\n --n16; /*0xffe0a9e6*/\\n }\\n while ( v6 ); /*0xffe0a9e6*/\\n return (unsigned __int8)*(a1 - 1) - (unsigned __int8)*(a2 - 1); /*0xffe0a9f2*/\\n}\"}",
"0xffe0a9f8": "{\"addr\":\"0xffe0a9f8\",\"code\":\"char *__cdecl sub_FFE0A9F8(char *dst, char *src, unsigned int count)\\n{\\n unsigned int count_1; // edx\\n char *dst_1; // edi\\n char *src_1; // esi\\n\\n count_1 = count; /*0xffe0aa02*/\\n if ( src < dst && &src[count - 1] >= dst ) /*0xffe0aa10*/\\n {\\n src_1 = &src[count - 1]; /*0xffe0aa24*/\\n dst_1 = &dst[count - 1]; /*0xffe0aa26*/\\n }\\n else\\n {\\n count_1 = count & 3; /*0xffe0aa14*/\\n qmemcpy(dst, src, 4 * (count >> 2)); /*0xffe0aa1d*/\\n src_1 = &src[4 * (count >> 2)]; /*0xffe0aa1d*/\\n dst_1 = &dst[4 * (count >> 2)]; /*0xffe0aa1d*/\\n }\\n qmemcpy(dst_1, src_1, count_1); /*0xffe0aa2d*/\\n return dst; /*0xffe0aa34*/\\n}\"}",
"0xffe0aa38": "{\"addr\":\"0xffe0aa38\",\"code\":\"int __cdecl sub_FFE0AA38(int a1, int a2, int a3, int a4)\\n{\\n do /*0xffe0aa51*/\\n {\\n *(_DWORD *)(a1 + 8 * a2 - 8) = a3; /*0xffe0aa49*/\\n *(_DWORD *)(a1 + 8 * a2-- - 4) = a4; /*0xffe0aa4d*/\\n }\\n while ( a2 ); /*0xffe0aa51*/\\n return a1; /*0xffe0aa55*/\\n}\"}",
"0xffe0aa58": "{\"addr\":\"0xffe0aa58\",\"code\":\"void *__cdecl sub_FFE0AA58(void *buf, unsigned int count, int value)\\n{\\n memset32(buf, value, count); /*0xffe0aa65*/\\n return buf; /*0xffe0aa6b*/\\n}\"}",
"0xffe0ab18": "{\"addr\":\"0xffe0ab18\",\"code\":\"EFI_STATUS ModuleEntryPoint(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)\\n{\\n int v2; // eax\\n int Signature; // eax\\n EFI_STATUS result; // eax\\n signed __int32 v5; // esi\\n int Signature_1; // eax\\n _DWORD *v7; // edi\\n int Signature_2; // eax\\n char v9; // al\\n int (**v10)(void); // edi\\n int v11; // ecx\\n char v12; // [esp+1h] [ebp-65h] BYREF\\n int v13; // [esp+2h] [ebp-64h] BYREF\\n int v14; // [esp+6h] [ebp-60h] BYREF\\n int (__cdecl **v15)(_DWORD, _BYTE *, _DWORD *, _DWORD, int *, _BYTE *); // [esp+Ah] [ebp-5Ch] BYREF\\n int n4; // [esp+Eh] [ebp-58h] BYREF\\n _BYTE v17[4]; // [esp+12h] [ebp-54h] BYREF\\n _DWORD v18[4]; // [esp+16h] [ebp-50h] BYREF\\n _BYTE v19[28]; // [esp+26h] [ebp-40h] BYREF\\n _BYTE MonotonicCounter[34]; // [esp+42h] [ebp-24h] BYREF\\n\\n if ( *(char *)(sub_FFE0CFC8() + 1024068) >= 0 ) /*0xffe0ab29*/\\n {\\n sub_FFE0CFD4(); /*0xffe0ab2b*/\\n v2 = sub_FFE0CFC8(); /*0xffe0ab30*/\\n *(_BYTE *)(v2 + 1024068) |= 0x80u; /*0xffe0ab3c*/\\n }\\n v14 = 0; /*0xffe0ab5c*/\\n v12 = 0; /*0xffe0ab65*/\\n qmemcpy(MonotonicCounter, L\\\"MonotonicCounter\\\", sizeof(MonotonicCounter)); /*0xffe0ab6a*/\\n Signature = SystemTable->Hdr.Signature; /*0xffe0ab73*/\\n n4 = 4; /*0xffe0ab7e*/\\n v18[0] = unk_FFE0D3D4; /*0xffe0ab88*/\\n v18[1] = unk_FFE0D3D8; /*0xffe0ab89*/\\n v18[2] = unk_FFE0D3DC; /*0xffe0ab8a*/\\n v18[3] = unk_FFE0D3E0; /*0xffe0ab8b*/\\n if ( (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, void *))(Signature + 24))(SystemTable, &SystemTable_) < 0 ) /*0xffe0ab93*/\\n return -1610612735; /*0xffe0ab9a*/\\n result = (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, void *, _DWORD, _DWORD, int *))(LODWORD(SystemTable->Hdr.Signature) /*0xffe0abb0*/\\n + 32))(\\n SystemTable,\\n &SystemTable__0,\\n 0,\\n 0,\\n &v14);\\n if ( (result & 0x80000000) == 0 && v14 ) /*0xffe0abc4*/\\n {\\n (*(void (__cdecl **)(EFI_SYSTEM_TABLE *, _BYTE *))(v14 + 4))(SystemTable, v19); /*0xffe0abd0*/\\n if ( v19[6] != 1 ) /*0xffe0abda*/\\n {\\n result = (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, void *, _DWORD, _DWORD, int (__cdecl ***)(_DWORD, _BYTE *, _DWORD *, _DWORD, int *, _BYTE *)))(LODWORD(SystemTable->Hdr.Signature) + 32))( /*0xffe0abf1*/\\n SystemTable,\\n &unk_FFE0DB58,\\n 0,\\n 0,\\n &v15);\\n if ( (result & 0x80000000) != 0 || !v15 ) /*0xffe0ac05*/\\n return result; /*0xffe0ac05*/\\n v5 = (*v15)(v15, MonotonicCounter, v18, 0, &n4, v17); /*0xffe0ac24*/\\n if ( v5 < 0 ) /*0xffe0ac2b*/\\n {\\n Signature_1 = SystemTable->Hdr.Signature; /*0xffe0ac2d*/\\n v12 = 1; /*0xffe0ac38*/\\n v5 = (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, int, int, int *))(Signature_1 + 52))(SystemTable, 4, 25, &v13); /*0xffe0ac40*/\\n if ( v5 >= 0 ) /*0xffe0ac47*/\\n {\\n v7 = (_DWORD *)(v13 + 8); /*0xffe0ac52*/\\n *(_DWORD *)(v13 + 8) = unk_FFE0DBA8; /*0xffe0ac55*/\\n *++v7 = unk_FFE0DBAC; /*0xffe0ac56*/\\n *++v7 = unk_FFE0DBB0; /*0xffe0ac57*/\\n v7[1] = unk_FFE0DBB4; /*0xffe0ac58*/\\n v5 = 0; /*0xffe0ac59*/\\n Signature_2 = SystemTable->Hdr.Signature; /*0xffe0ac67*/\\n v13 += 24; /*0xffe0ac70*/\\n (*(void (__cdecl **)(int, char *, int))(Signature_2 + 80))(v13, &v12, 1); /*0xffe0ac74*/\\n }\\n }\\n v9 = 0; /*0xffe0ac7f*/\\n if ( sub_FFE0B919 ) /*0xffe0ac83*/\\n {\\n v10 = &off_FFE0D474; /*0xffe0ac85*/\\n while ( !v9 ) /*0xffe0ac8c*/\\n {\\n v9 = (*v10++)(); /*0xffe0ac92*/\\n if ( !*v10 ) /*0xffe0ac96*/\\n {\\n if ( v9 ) /*0xffe0ac9d*/\\n return 0; /*0xffe0ac9d*/\\n goto LABEL_18; /*0xffe0ac9d*/\\n }\\n }\\n return 0; /*0xffe0ac8c*/\\n }\\nLABEL_18:\\n if ( !sub_FFE0B3B4() ) /*0xffe0aca3*/\\n {\\n v5 = sub_FFE0B18A(v11, (int *)SystemTable); /*0xffe0acb3*/\\n sub_FFE0B2E8(64, \\\"TpmPeiEntry results = %r \\\\n\\\", v5); /*0xffe0acbd*/\\n if ( v5 < 0 ) /*0xffe0acc7*/\\n return v5; /*0xffe0accb*/\\n }\\n if ( v19[0] && v5 >= 0 ) /*0xffe0acd6*/\\n {\\n sub_FFE0B2E8(64, \\\"TcgPeiEntry processing\\\\n\\\"); /*0xffe0acdf*/\\n if ( sub_FFE0B3B4() ) /*0xffe0ace6*/\\n return (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, void *))(LODWORD(SystemTable->Hdr.Signature) + 24))( /*0xffe0ad14*/\\n SystemTable,\\n &unk_FFE0DBE8);\\n if ( MEMORY[0xFED40000] == 0xFF || !MEMORY[0xFED40000] ) /*0xffe0acfc*/\\n return -2147483634; /*0xffe0ad05*/\\n return (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, void *))(LODWORD(SystemTable->Hdr.Signature) + 24))( /*0xffe0ad03*/\\n SystemTable,\\n &unk_FFE0DC00);\\n }\\n sub_FFE0B2E8(0x80000000, \\\"ConfigFlags.TpmSupport == 0x00 || EFI_ERROR( Status )\\\\n\\\"); /*0xffe0ad25*/\\n }\\n return 0; /*0xffe0ad2c*/\\n }\\n return result; /*0xffe0ad35*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cfd4\",\"name\":\"sub_FFE0CFD4\"},{\"addr\":\"0xffe0cfc8\",\"name\":\"sub_FFE0CFC8\"},{\"addr\":\"0xffe0d3e4\",\"name\":\"aMonotoniccount\",\"string\":\"\\u6f4d\\u6f6e\\u6f74\\u696e\\u4363\\u756f\\u746e\\u7265\"},{\"addr\":\"0xffe0d3d4\",\"name\":\"unk_FFE0D3D4\"},{\"addr\":\"0xffe0d3d8\",\"name\":\"unk_FFE0D3D8\"},{\"addr\":\"0xffe0d3dc\",\"name\":\"unk_FFE0D3DC\"},{\"addr\":\"0xffe0d3e0\",\"name\":\"unk_FFE0D3E0\"},{\"addr\":\"0xffe0dbdc\",\"name\":\"SystemTable_\"},{\"addr\":\"0xffe0db48\",\"name\":\"SystemTable__0\"},{\"addr\":\"0xffe0db58\",\"name\":\"unk_FFE0DB58\"},{\"addr\":\"0xffe0dba8\",\"name\":\"unk_FFE0DBA8\"},{\"addr\":\"0xffe0dbac\",\"name\":\"unk_FFE0DBAC\"},{\"addr\":\"0xffe0dbb0\",\"name\":\"unk_FFE0DBB0\"},{\"addr\":\"0xffe0dbb4\",\"name\":\"unk_FFE0DBB4\"},{\"addr\":\"0xffe0d474\",\"name\":\"off_FFE0D474\"},{\"addr\":\"0xffe0b919\",\"name\":\"sub_FFE0B919\"},{\"addr\":\"0xffe0b18a\",\"name\":\"sub_FFE0B18A\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"},{\"addr\":\"0xffe0d408\",\"name\":\"aTpmpeientryRes\",\"string\":\"TpmPeiEntry results = %r \\n\"},{\"addr\":\"0xffe0b3b4\",\"name\":\"sub_FFE0B3B4\"},{\"addr\":\"0xffe0d45c\",\"name\":\"aTcgpeientryPro\",\"string\":\"TcgPeiEntry processing\\n\"},{\"addr\":\"0xffe0dbe8\",\"name\":\"unk_FFE0DBE8\"},{\"addr\":\"0xffe0dc00\",\"name\":\"unk_FFE0DC00\"},{\"addr\":\"0xffe0d424\",\"name\":\"aConfigflagsTpm\",\"string\":\"ConfigFlags.TpmSupport == 0x00 || EFI_ERROR( Status )\\n\"}]}",
"0xffe0ad36": "{\"addr\":\"0xffe0ad36\",\"code\":\"int __cdecl sub_FFE0AD36(\\n int a1,\\n int (__cdecl ***a2)(_DWORD, void *, _DWORD, _DWORD, _DWORD),\\n int a3,\\n int a4,\\n int a5,\\n int a6)\\n{\\n int v6; // eax\\n int v7; // esi\\n\\n v6 = (*a2)[8](a2, &unk_FFE0DB88, 0, 0, &a2); /*0xffe0ad4d*/\\n v7 = v6; /*0xffe0ad50*/\\n if ( v6 >= 0 ) /*0xffe0ad57*/\\n return ((int (__cdecl *)(int, int, int, int, int))a2[6])(-19660800, a4, a3, a6, a5); /*0xffe0ad84*/\\n sub_FFE0B2E8(0x80000000, \\\"Locate TcgPeiPassThroughToTcm Status == %r\\\\n\\\", v6); /*0xffe0ad64*/\\n return v7; /*0xffe0ad8a*/\\n}\",\"refs\":[{\"addr\":\"0xffe0db88\",\"name\":\"unk_FFE0DB88\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"}]}",
"0xffe0ad8d": "{\"addr\":\"0xffe0ad8d\",\"code\":\"int sub_FFE0AD8D()\\n{\\n return -2147483645; /*0xffe0ad92*/\\n}\"}",
"0xffe0ad93": "{\"addr\":\"0xffe0ad93\",\"code\":\"int __cdecl sub_FFE0AD93(int a1, int a2, _DWORD *a3, _DWORD *a4)\\n{\\n _DWORD *v4; // ebx\\n unsigned int v6; // ebp\\n int v7; // eax\\n int v8; // eax\\n int v9; // edx\\n int v10; // edi\\n unsigned int v11; // ecx\\n _DWORD *v12; // esi\\n int v13; // [esp+4h] [ebp-Ch] BYREF\\n _BYTE v14[4]; // [esp+8h] [ebp-8h] BYREF\\n int v15; // [esp+Ch] [ebp-4h]\\n\\n v4 = a3; /*0xffe0ad97*/\\n if ( a3[1] == -2147483641 && *a3 != 7 ) /*0xffe0ada7*/\\n return 0; /*0xffe0ada9*/\\n v6 = 0; /*0xffe0adbb*/\\n v15 = a2; /*0xffe0adbd*/\\n v7 = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, _BYTE *))(*(_DWORD *)a2 + 32))(a2, &unk_FFE0DB78, 0, 0, v14); /*0xffe0adcb*/\\n if ( v7 < 0 ) /*0xffe0add3*/\\n {\\n sub_FFE0B2E8(0x80000000, \\\"\\\\nASSERT_EFI_ERROR (Status = %r)\\\\n\\\", v7); /*0xffe0ade0*/\\n v8 = sub_FFE0B2B7(); /*0xffe0ade8*/\\n if ( v8 ) /*0xffe0adef*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffe0ae00*/\\n \\\"e:\\\\\\\\hs\\\\\\\\AmiModulePkg\\\\\\\\TCG2\\\\\\\\Common\\\\\\\\TcgPei\\\\\\\\TcgTisPei.c\\\",\\n 225,\\n \\\"!EFI_ERROR (Status)\\\");\\n }\\n v9 = (*(int (__cdecl **)(int, _DWORD **))(*(_DWORD *)a2 + 48))(a2, &a3); /*0xffe0ae11*/\\n if ( v9 >= 0 ) /*0xffe0ae17*/\\n {\\n v9 = sub_FFE0B46E(&v13); /*0xffe0ae28*/\\n if ( v9 >= 0 ) /*0xffe0ae2e*/\\n {\\n v10 = v13; /*0xffe0ae31*/\\n v11 = *(_DWORD *)(v13 + 8); /*0xffe0ae35*/\\n v12 = (_DWORD *)(v13 + 40); /*0xffe0ae38*/\\n if ( v11 ) /*0xffe0ae3d*/\\n {\\n do /*0xffe0ae53*/\\n {\\n if ( !v12 ) /*0xffe0ae41*/\\n break; /*0xffe0ae41*/\\n if ( *v12 > 0x18u ) /*0xffe0ae46*/\\n break; /*0xffe0ae46*/\\n v12 = (_DWORD *)((char *)v12 + v12[7] + 32); /*0xffe0ae4e*/\\n ++v6; /*0xffe0ae50*/\\n }\\n while ( v6 < v11 ); /*0xffe0ae53*/\\n }\\n sub_FFE0B2E8(64, \\\"NextLocation= %x\\\\n\\\", v12); /*0xffe0ae5d*/\\n if ( v4[7] <= 0xFFFFFFDF ) /*0xffe0ae69*/\\n {\\n v9 = sub_FFE0B41F((unsigned int)v12, (_DWORD *)(v10 + 4), v4); /*0xffe0ae82*/\\n if ( v9 >= 0 ) /*0xffe0ae88*/\\n *a4 = (*(_DWORD *)(v10 + 8))++; /*0xffe0ae91*/\\n }\\n else\\n {\\n return -2147483639; /*0xffe0ae6b*/\\n }\\n }\\n }\\n return v9; /*0xffe0ae9b*/\\n}\",\"refs\":[{\"addr\":\"0xffe0db78\",\"name\":\"unk_FFE0DB78\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0b46e\",\"name\":\"sub_FFE0B46E\"},{\"addr\":\"0xffe0b41f\",\"name\":\"sub_FFE0B41F\"}]}",
"0xffe0aea0": "{\"addr\":\"0xffe0aea0\",\"code\":\"int __fastcall sub_FFE0AEA0(int *a1, unsigned int a2, int a3, int a4)\\n{\\n int v4; // eax\\n _DWORD v6[6]; // [esp+8h] [ebp-44h] BYREF\\n _DWORD v7[4]; // [esp+20h] [ebp-2Ch] BYREF\\n char v8; // [esp+30h] [ebp-1Ch] BYREF\\n __int16 v9; // [esp+3Ch] [ebp-10h] BYREF\\n int n570425344; // [esp+3Eh] [ebp-Eh]\\n int n335544320; // [esp+42h] [ebp-Ah]\\n unsigned int v12; // [esp+48h] [ebp-4h] BYREF\\n\\n v6[3] = 4; /*0xffe0aeab*/\\n v6[0] = &v9; /*0xffe0aeb2*/\\n v6[1] = 10; /*0xffe0aebd*/\\n v6[2] = &v12; /*0xffe0aec0*/\\n v6[4] = a3; /*0xffe0aec6*/\\n v7[0] = &v8; /*0xffe0aecc*/\\n v7[2] = a4; /*0xffe0aed2*/\\n v6[5] = 20; /*0xffe0aedd*/\\n v7[3] = 20; /*0xffe0aee0*/\\n v9 = -16128; /*0xffe0aee5*/\\n v7[1] = 10; /*0xffe0aef1*/\\n n570425344 = 570425344; /*0xffe0aef9*/\\n n335544320 = 335544320; /*0xffe0af0f*/\\n v4 = *a1; /*0xffe0af1b*/\\n v12 = (((a2 << 16) | a2 & 0xFF00) << 8) | ((HIWORD(a2) | a2 & 0xFF0000) >> 8); /*0xffe0af1d*/\\n return (*(int (__cdecl **)(int, int, int, _DWORD *, int, _DWORD *))(v4 + 12))(v4, a1[1], 3, v6, 2, v7); /*0xffe0af36*/\\n}\"}",
"0xffe0af3c": "{\"addr\":\"0xffe0af3c\",\"code\":\"int __cdecl sub_FFE0AF3C(int a1, int a2, char *src, unsigned int i, unsigned int *a5, _DWORD *a6)\\n{\\n int v6; // eax\\n int v7; // eax\\n int buf; // ecx\\n int v10; // ebx\\n int v11[2]; // [esp+Ch] [ebp-8Ch] BYREF\\n char v12[20]; // [esp+14h] [ebp-84h] BYREF\\n char v13[20]; // [esp+28h] [ebp-70h] BYREF\\n _DWORD buf_1[23]; // [esp+3Ch] [ebp-5Ch] BYREF\\n\\n v11[1] = a2; /*0xffe0af53*/\\n v6 = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, int *))(*(_DWORD *)a2 + 32))(a2, &unk_FFE0DB78, 0, 0, v11); /*0xffe0af61*/\\n if ( v6 < 0 ) /*0xffe0af69*/\\n {\\n sub_FFE0B2E8(0x80000000, \\\"\\\\nASSERT_EFI_ERROR (Status = %r)\\\\n\\\", v6); /*0xffe0af76*/\\n v7 = sub_FFE0B2B7(); /*0xffe0af7e*/\\n if ( v7 ) /*0xffe0af85*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v7 + 4))( /*0xffe0af96*/\\n \\\"e:\\\\\\\\hs\\\\\\\\AmiModulePkg\\\\\\\\TCG2\\\\\\\\Common\\\\\\\\TcgPei\\\\\\\\TcgTisPei.c\\\",\\n 350,\\n \\\"!EFI_ERROR (Status)\\\");\\n }\\n if ( a5[1] == -2147483641 && *a5 != 7 ) /*0xffe0afaf*/\\n return 0; /*0xffe0afb1*/\\n if ( a5[1] == 3 ) /*0xffe0afbc*/\\n {\\n (*(void (__cdecl **)(unsigned int *, int, _DWORD))(*(_DWORD *)a2 + 84))(a5 + 2, 20, 0); /*0xffe0afc7*/\\n return sub_FFE0AD93(a1, a2, a5, a6); /*0xffe0afda*/\\n }\\n else\\n {\\n sub_FFE0CE11(buf_1); /*0xffe0afec*/\\n sub_FFE0CE3C(buf, src, i); /*0xffe0afff*/\\n sub_FFE0CED2((int)v12, buf_1); /*0xffe0b00c*/\\n sub_FFE0B3E8((unsigned int)(a5 + 2), v12, 20); /*0xffe0b01d*/\\n v10 = (*(int (__cdecl **)(int, int))v11[0])(v11[0], a2); /*0xffe0b02a*/\\n if ( v10 >= 0 ) /*0xffe0b031*/\\n {\\n v10 = sub_FFE0AEA0(v11, *a5, (int)(a5 + 2), (int)v13); /*0xffe0b044*/\\n if ( v10 >= 0 ) /*0xffe0b04a*/\\n v10 = sub_FFE0AD93(a1, a2, a5, a6); /*0xffe0b064*/\\n }\\n (*(void (__cdecl **)(int, int))(v11[0] + 4))(v11[0], a2); /*0xffe0b06c*/\\n return v10; /*0xffe0b071*/\\n }\\n}\",\"refs\":[{\"addr\":\"0xffe0db78\",\"name\":\"unk_FFE0DB78\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0ad93\",\"name\":\"sub_FFE0AD93\"},{\"addr\":\"0xffe0ce11\",\"name\":\"sub_FFE0CE11\"},{\"addr\":\"0xffe0ce3c\",\"name\":\"sub_FFE0CE3C\"},{\"addr\":\"0xffe0ced2\",\"name\":\"sub_FFE0CED2\"},{\"addr\":\"0xffe0b3e8\",\"name\":\"sub_FFE0B3E8\"},{\"addr\":\"0xffe0aea0\",\"name\":\"sub_FFE0AEA0\"}]}",
"0xffe0b07e": "{\"addr\":\"0xffe0b07e\",\"code\":\"int __cdecl sub_FFE0B07E(int a1, _DWORD *a2, int a3, int a4, int a5, int a6)\\n{\\n int v6; // eax\\n int v7; // eax\\n int v8; // eax\\n _DWORD v10[2]; // [esp+0h] [ebp-18h] BYREF\\n _DWORD v11[2]; // [esp+8h] [ebp-10h] BYREF\\n int v12; // [esp+10h] [ebp-8h] BYREF\\n _DWORD *v13; // [esp+14h] [ebp-4h]\\n\\n v6 = *a2; /*0xffe0b08f*/\\n v13 = a2; /*0xffe0b097*/\\n v7 = (*(int (__cdecl **)(_DWORD *, void *, _DWORD, _DWORD, int *))(v6 + 32))(a2, &unk_FFE0DB78, 0, 0, &v12); /*0xffe0b09a*/\\n if ( v7 < 0 ) /*0xffe0b0a2*/\\n {\\n sub_FFE0B2E8(0x80000000, \\\"\\\\nASSERT_EFI_ERROR (Status = %r)\\\\n\\\", v7); /*0xffe0b0af*/\\n v8 = sub_FFE0B2B7(); /*0xffe0b0b7*/\\n if ( v8 ) /*0xffe0b0be*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffe0b0cf*/\\n \\\"e:\\\\\\\\hs\\\\\\\\AmiModulePkg\\\\\\\\TCG2\\\\\\\\Common\\\\\\\\TcgPei\\\\\\\\TcgTisPei.c\\\",\\n 442,\\n \\\"!EFI_ERROR (Status)\\\");\\n }\\n v10[0] = a4; /*0xffe0b0d8*/\\n v10[1] = a3; /*0xffe0b0de*/\\n v11[0] = a6; /*0xffe0b0e4*/\\n v11[1] = a5; /*0xffe0b0ea*/\\n return (*(int (__cdecl **)(int, _DWORD *, int, _DWORD *, int, _DWORD *))(v12 + 12))(v12, v13, 1, v10, 1, v11); /*0xffe0b106*/\\n}\",\"refs\":[{\"addr\":\"0xffe0db78\",\"name\":\"unk_FFE0DB78\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"}]}",
"0xffe0b10a": "{\"addr\":\"0xffe0b10a\",\"code\":\"int __cdecl sub_FFE0B10A(int a1)\\n{\\n void *v1; // ecx\\n char *v2; // esi\\n int n30000; // ebx\\n int n5; // edi\\n char v5; // al\\n\\n v2 = *(char **)(a1 + 16); /*0xffe0b10f*/\\n if ( (*v2 & 0x20) != 0 ) /*0xffe0b116*/\\n return 0; /*0xffe0b118*/\\n *v2 = 2; /*0xffe0b11e*/\\n n30000 = 30000; /*0xffe0b121*/\\n while ( 1 ) /*0xffe0b128*/\\n {\\n n5 = 5; /*0xffe0b128*/\\n do /*0xffe0b131*/\\n {\\n sub_FFE0B37F(v1); /*0xffe0b129*/\\n --n5; /*0xffe0b12e*/\\n }\\n while ( n5 ); /*0xffe0b131*/\\n v1 = 0; /*0xffe0b135*/\\n if ( (*v2 & 0x20) != 0 && *v2 < 0 ) /*0xffe0b13f*/\\n break; /*0xffe0b13f*/\\n if ( !--n30000 ) /*0xffe0b144*/\\n {\\n v5 = 0; /*0xffe0b146*/\\n goto LABEL_10; /*0xffe0b146*/\\n }\\n }\\n v5 = *v2 & 0x20; /*0xffe0b159*/\\nLABEL_10:\\n if ( !v5 ) /*0xffe0b14c*/\\n return -2147483642; /*0xffe0b14e*/\\n return (int)v1; /*0xffe0b155*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b37f\",\"name\":\"sub_FFE0B37F\"}]}",
"0xffe0b15d": "{\"addr\":\"0xffe0b15d\",\"code\":\"int __cdecl sub_FFE0B15D(int a1)\\n{\\n return sub_FFE0B58B(*(char **)(a1 + 16)); /*0xffe0b16a*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b58b\",\"name\":\"sub_FFE0B58B\"}]}",
"0xffe0b16b": "{\"addr\":\"0xffe0b16b\",\"code\":\"int __cdecl sub_FFE0B16B(int a1, int a2, unsigned int a3, int a4, unsigned int a5, int a6)\\n{\\n return sub_FFE0B786(*(char **)(a1 + 16), a3, a4, a5, a6); /*0xffe0b188*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b786\",\"name\":\"sub_FFE0B786\"}]}",
"0xffe0b18a": "{\"addr\":\"0xffe0b18a\",\"code\":\"int __fastcall sub_FFE0B18A(int a1, int *SystemTable)\\n{\\n int v3; // edi\\n int v4; // eax\\n int result; // eax\\n bool v6; // bl\\n bool v7; // [esp+13h] [ebp-21h]\\n int v8; // [esp+14h] [ebp-20h] BYREF\\n _BYTE v9[6]; // [esp+18h] [ebp-1Ch] BYREF\\n unsigned __int8 v10; // [esp+1Eh] [ebp-16h]\\n\\n v3 = 0; /*0xffe0b198*/\\n v4 = *SystemTable; /*0xffe0b19b*/\\n v8 = 0; /*0xffe0b1a4*/\\n result = (*(int (__cdecl **)(int *, void *, _DWORD, _DWORD, int *))(v4 + 32))(SystemTable, &SystemTable__0, 0, 0, &v8); /*0xffe0b1a8*/\\n if ( result >= 0 && v8 ) /*0xffe0b1ba*/\\n {\\n sub_FFE0B2E8(64, \\\"before getTcgPeiPolicy\\\\n\\\"); /*0xffe0b1c9*/\\n (*(void (__cdecl **)(int *, _BYTE *))(v8 + 4))(SystemTable, v9); /*0xffe0b1d8*/\\n if ( v10 ) /*0xffe0b1e3*/\\n {\\n v6 = sub_FFE0B8E5(); /*0xffe0b1fb*/\\n sub_FFE0B2E8(64, \\\"CrbSupport = %x \\\\n\\\", v6); /*0xffe0b207*/\\n if ( v6 ) /*0xffe0b211*/\\n return -2147483634; /*0xffe0b2aa*/\\n (*(void (__cdecl **)(int *, void *))(*SystemTable + 24))(SystemTable, &unk_FFE0DC30); /*0xffe0b21f*/\\n }\\n else\\n {\\n (*(void (__cdecl **)(int *, void *))(*SystemTable + 24))(SystemTable, &unk_FFE0DC30); /*0xffe0b1ed*/\\n v6 = v7; /*0xffe0b1f0*/\\n }\\n sub_FFE0B2E8(64, \\\"TpmDevice Ppi Installed\\\\n\\\"); /*0xffe0b22a*/\\n sub_FFE0B2E8(64, \\\"TpmPeientry ConfigFlags.DeviceType = %x\\\\n\\\", v10); /*0xffe0b23b*/\\n if ( *(_BYTE *)dword_FFE0DC28 == 0xFF || !*(_BYTE *)dword_FFE0DC28 ) /*0xffe0b252*/\\n v3 = -2147483634; /*0xffe0b257*/\\n sub_FFE0B2E8(64, \\\"IsTpmPresent results = %r\\\\n\\\", v3); /*0xffe0b260*/\\n sub_FFE0B2E8(64, \\\"IsTpmPresent base = %x\\\\n\\\", dword_FFE0DC28); /*0xffe0b277*/\\n sub_FFE0B2E8(64, \\\"IsTpmPresent Access reg = %x\\\\n\\\", *(unsigned __int8 *)dword_FFE0DC28); /*0xffe0b28b*/\\n if ( v3 >= 0 && v10 && v6 ) /*0xffe0b2a0*/\\n return -2147483634; /*0xffe0b2a2*/\\n else\\n return v3; /*0xffe0b2a6*/\\n }\\n return result; /*0xffe0b2af*/\\n}\",\"refs\":[{\"addr\":\"0xffe0db48\",\"name\":\"SystemTable__0\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"},{\"addr\":\"0xffe0b8e5\",\"name\":\"sub_FFE0B8E5\"},{\"addr\":\"0xffe0dc30\",\"name\":\"unk_FFE0DC30\"},{\"addr\":\"0xffe0dc28\",\"name\":\"dword_FFE0DC28\"}]}",
"0xffe0b2b7": "{\"addr\":\"0xffe0b2b7\",\"code\":\"int sub_FFE0B2B7()\\n{\\n int v0; // eax\\n int v2; // [esp+0h] [ebp-8h] BYREF\\n int v3; // [esp+4h] [ebp-4h] BYREF\\n\\n v0 = sub_FFE0CF96(); /*0xffe0b2bc*/\\n if ( (*(int (__cdecl **)(int, void *, _DWORD, int *, int *))(*(_DWORD *)v0 + 32))(v0, &unk_FFE0DB68, 0, &v2, &v3) >= 0 ) /*0xffe0b2db*/\\n return v3; /*0xffe0b2e1*/\\n else\\n return 0; /*0xffe0b2dd*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cf96\",\"name\":\"sub_FFE0CF96\"},{\"addr\":\"0xffe0db68\",\"name\":\"unk_FFE0DB68\"}]}",
"0xffe0b2e8": "{\"addr\":\"0xffe0b2e8\",\"code\":\"int sub_FFE0B2E8(int a1, const char *a2, ...)\\n{\\n int result; // eax\\n int (__cdecl **v3)(int, const char *, char *); // esi\\n va_list va; // [esp+10h] [ebp+Ch] BYREF\\n\\n va_start(va, a2);\\n result = sub_FFE0B2B7(); /*0xffe0b2e9*/\\n v3 = (int (__cdecl **)(int, const char *, char *))result; /*0xffe0b2ee*/\\n if ( result ) /*0xffe0b2f2*/\\n {\\n result = sub_FFE0B976(); /*0xffe0b2f4*/\\n if ( (result & a1) != 0 ) /*0xffe0b2ff*/\\n return (*v3)(a1, a2, (char *)va); /*0xffe0b30b*/\\n }\\n return result; /*0xffe0b310*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0b976\",\"name\":\"sub_FFE0B976\"}]}",
"0xffe0b312": "{\"addr\":\"0xffe0b312\",\"code\":\"int __fastcall sub_FFE0B312(\\n int e:__hs__MdePkg__Library__PeiServicesTablePointerLibIdt__PeiServ,\\n int n48,\\n int PeiServices____((void__)_0))\\n{\\n int result; // eax\\n\\n result = sub_FFE0B2B7(); /*0xffe0b318*/\\n if ( result ) /*0xffe0b31f*/\\n return (*(int (__cdecl **)(int, int, int))(result + 4))( /*0xffe0b327*/\\n e:__hs__MdePkg__Library__PeiServicesTablePointerLibIdt__PeiServ,\\n n48,\\n PeiServices____((void__)_0));\\n return result; /*0xffe0b32d*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"}]}",
"0xffe0b330": "{\"addr\":\"0xffe0b330\",\"code\":\"unsigned int __fastcall sub_FFE0B330(unsigned int a1)\\n{\\n unsigned int v1; // esi\\n unsigned int n0x400000; // edi\\n unsigned __int32 v3; // ebx\\n unsigned int result; // eax\\n\\n v1 = a1 >> 22; /*0xffe0b33d*/\\n n0x400000 = a1 & 0x3FFFFF; /*0xffe0b340*/\\n do /*0xffe0b378*/\\n {\\n v3 = n0x400000 + (sub_FFE0BB64(0x508u) & 0xFFFFFF); /*0xffe0b355*/\\n n0x400000 = 0x400000; /*0xffe0b357*/\\n while ( ((v3 - sub_FFE0BB64(0x508u)) & 0x800000) == 0 ) /*0xffe0b371*/\\n _mm_pause(); /*0xffe0b35e*/\\n result = v1--; /*0xffe0b373*/\\n }\\n while ( result ); /*0xffe0b378*/\\n return result; /*0xffe0b37a*/\\n}\",\"refs\":[{\"addr\":\"0xffe0bb64\",\"name\":\"sub_FFE0BB64\"}]}",
"0xffe0b37f": "{\"addr\":\"0xffe0b37f\",\"code\":\"int __thiscall sub_FFE0B37F(void *this)\\n{\\n unsigned __int64 v1; // rtt\\n __int64 v3; // [esp+0h] [ebp-8h]\\n\\n v3 = sub_FFE0BB90(); /*0xffe0b38d*/\\n LODWORD(v1) = v3; /*0xffe0b3a3*/\\n HIDWORD(v1) = HIDWORD(v3) % 0xF4240; /*0xffe0b3a3*/\\n sub_FFE0B330(v1 / 0xF4240); /*0xffe0b3a8*/\\n return 30; /*0xffe0b3b0*/\\n}\",\"refs\":[{\"addr\":\"0xffe0bb90\",\"name\":\"sub_FFE0BB90\"},{\"addr\":\"0xffe0b330\",\"name\":\"sub_FFE0B330\"}]}",
"0xffe0b3b4": "{\"addr\":\"0xffe0b3b4\",\"code\":\"char sub_FFE0B3B4()\\n{\\n unsigned int n6; // ecx\\n\\n n6 = 0; /*0xffe0b3bb*/\\n while ( word_FFE0DC3C[n6] != MEMORY[0xFED40F00] || word_FFE0DC3E[n6] != MEMORY[0xFED40F02] ) /*0xffe0b3d6*/\\n {\\n n6 += 2; /*0xffe0b3d8*/\\n if ( n6 >= 6 ) /*0xffe0b3de*/\\n return 0; /*0xffe0b3e3*/\\n }\\n return 1; /*0xffe0b3e2*/\\n}\",\"refs\":[{\"addr\":\"0xffe0dc3c\",\"name\":\"word_FFE0DC3C\"},{\"addr\":\"0xffe0dc3e\",\"name\":\"word_FFE0DC3E\"}]}",
"0xffe0b3e8": "{\"addr\":\"0xffe0b3e8\",\"code\":\"void __usercall sub_FFE0B3E8(unsigned int a1@<edx>, _BYTE *a2, int n20)\\n{\\n int n20_1; // esi\\n _BYTE *v4; // edx\\n _BYTE *v5; // ecx\\n _BYTE *v6; // ecx\\n\\n n20_1 = n20; /*0xffe0b3ed*/\\n if ( (unsigned int)a2 >= a1 ) /*0xffe0b3f3*/\\n {\\n if ( n20 ) /*0xffe0b40e*/\\n {\\n v6 = &a2[-a1]; /*0xffe0b410*/\\n do /*0xffe0b41b*/\\n {\\n *(_BYTE *)a1 = v6[a1]; /*0xffe0b415*/\\n ++a1; /*0xffe0b417*/\\n --n20_1; /*0xffe0b418*/\\n }\\n while ( n20_1 ); /*0xffe0b41b*/\\n }\\n }\\n else\\n {\\n v4 = (_BYTE *)(n20 + a1 - 1); /*0xffe0b3f7*/\\n v5 = &a2[n20 - 1]; /*0xffe0b3f9*/\\n if ( n20 ) /*0xffe0b3fd*/\\n {\\n do /*0xffe0b408*/\\n {\\n *v4-- = *v5--; /*0xffe0b401*/\\n --n20_1; /*0xffe0b405*/\\n }\\n while ( n20_1 ); /*0xffe0b408*/\\n }\\n }\\n}\"}",
"0xffe0b41f": "{\"addr\":\"0xffe0b41f\",\"code\":\"int __usercall sub_FFE0B41F@<eax>(unsigned int a1@<edx>, _DWORD *a2, _BYTE *a3)\\n{\\n sub_FFE0B3E8(a1, a3, 8); /*0xffe0b42b*/\\n sub_FFE0B3E8(a1 + 8, a3 + 8, 20); /*0xffe0b439*/\\n sub_FFE0B3E8(a1 + 28, a3 + 28, 4); /*0xffe0b447*/\\n sub_FFE0B3E8(a1 + 32, a3 + 32, *((_DWORD *)a3 + 7)); /*0xffe0b455*/\\n *a2 += *((_DWORD *)a3 + 7) + 32; /*0xffe0b467*/\\n return 0; /*0xffe0b466*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b3e8\",\"name\":\"sub_FFE0B3E8\"}]}",
"0xffe0b46e": "{\"addr\":\"0xffe0b46e\",\"code\":\"int __cdecl sub_FFE0B46E(_DWORD *a1)\\n{\\n _WORD **v1; // ecx\\n _WORD **v2; // ebp\\n int v4; // edi\\n _WORD *v5; // esi\\n _WORD *v6; // eax\\n __int16 i; // cx\\n\\n v2 = v1; /*0xffe0b474*/\\n if ( !a1 ) /*0xffe0b478*/\\n return -2147483646; /*0xffe0b47a*/\\n v4 = -2147483634; /*0xffe0b482*/\\n while ( 1 ) /*0xffe0b495*/\\n {\\n v5 = *v2; /*0xffe0b495*/\\n if ( **v2 == 0xFFFF ) /*0xffe0b49b*/\\n break; /*0xffe0b49b*/\\n v6 = *v2; /*0xffe0b49d*/\\n if ( v5 ) /*0xffe0b4a1*/\\n {\\n for ( i = *v5; i != -1 && i != 4; i = *v6 ) /*0xffe0b4a3*/\\n v6 = (_WORD *)((char *)v6 + (unsigned __int16)v6[1]); /*0xffe0b4b3*/\\n if ( *v6 != 0xFFFF ) /*0xffe0b4c0*/\\n v5 = v6; /*0xffe0b4c2*/\\n }\\n if ( *v5 == 4 && !sub_FFE0BA03((_BYTE *)v5 + 8, 16) ) /*0xffe0b4d2*/\\n {\\n v4 = 0; /*0xffe0b4e3*/\\n *a1 = v5 + 12; /*0xffe0b4e5*/\\n }\\n *v2 = (_WORD *)((char *)v5 + (unsigned __int16)v5[1]); /*0xffe0b4ed*/\\n if ( v4 >= 0 ) /*0xffe0b4f2*/\\n return v4; /*0xffe0b4f6*/\\n }\\n return -2147483634; /*0xffe0b4ff*/\\n}\",\"refs\":[{\"addr\":\"0xffe0ba03\",\"name\":\"sub_FFE0BA03\"}]}",
"0xffe0b502": "{\"addr\":\"0xffe0b502\",\"code\":\"int __thiscall sub_FFE0B502(char *this)\\n{\\n char *i; // esi\\n int result; // eax\\n\\n for ( i = this; i; --i ) /*0xffe0b507*/\\n result = sub_FFE0B37F(this); /*0xffe0b509*/\\n return result; /*0xffe0b513*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b37f\",\"name\":\"sub_FFE0B37F\"}]}",
"0xffe0b515": "{\"addr\":\"0xffe0b515\",\"code\":\"char __fastcall sub_FFE0B515(char *a1, char a2)\\n{\\n int n30000; // edi\\n int n5; // esi\\n\\n n30000 = 30000; /*0xffe0b521*/\\n while ( 1 ) /*0xffe0b528*/\\n {\\n n5 = 5; /*0xffe0b528*/\\n do /*0xffe0b531*/\\n {\\n sub_FFE0B37F(a1); /*0xffe0b529*/\\n --n5; /*0xffe0b52e*/\\n }\\n while ( n5 ); /*0xffe0b531*/\\n if ( !--n30000 ) /*0xffe0b536*/\\n break; /*0xffe0b536*/\\n if ( *a1 < 0 ) /*0xffe0b53c*/\\n return a2 & *a1; /*0xffe0b543*/\\n }\\n return 0; /*0xffe0b547*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b37f\",\"name\":\"sub_FFE0B37F\"}]}",
"0xffe0b54e": "{\"addr\":\"0xffe0b54e\",\"code\":\"int __thiscall sub_FFE0B54E(int this)\\n{\\n int n7500; // edi\\n int v3; // ebx\\n int n5; // esi\\n bool v5; // cf\\n int result; // eax\\n\\n n7500 = 7500; /*0xffe0b555*/\\n v3 = 0; /*0xffe0b55a*/\\n do /*0xffe0b583*/\\n {\\n n5 = 5; /*0xffe0b55e*/\\n do /*0xffe0b567*/\\n {\\n sub_FFE0B37F((void *)this); /*0xffe0b55f*/\\n --n5; /*0xffe0b564*/\\n }\\n while ( n5 ); /*0xffe0b567*/\\n v5 = n7500-- != 0; /*0xffe0b56d*/\\n result = *(unsigned __int16 *)(this + 25); /*0xffe0b570*/\\n v3 = v5 + v3 - 1; /*0xffe0b573*/\\n }\\n while ( !(_WORD)result && (v3 || n7500) ); /*0xffe0b583*/\\n return result; /*0xffe0b585*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b37f\",\"name\":\"sub_FFE0B37F\"}]}",
"0xffe0b58b": "{\"addr\":\"0xffe0b58b\",\"code\":\"int __cdecl sub_FFE0B58B(char *a1)\\n{\\n int n7500; // [esp+0h] [ebp-4h]\\n\\n n7500 = 7500; /*0xffe0b58f*/\\n if ( !sub_FFE0B515(a1, 32) ) /*0xffe0b59b*/\\n return -2147483641; /*0xffe0b5a7*/\\n *a1 = 32; /*0xffe0b5b1*/\\n if ( !sub_FFE0B515(a1, 32) ) /*0xffe0b5b9*/\\n return 0; /*0xffe0b5b9*/\\n do /*0xffe0b5e9*/\\n {\\n sub_FFE0B502((char *)5); /*0xffe0b5c8*/\\n --n7500; /*0xffe0b5d1*/\\n }\\n while ( sub_FFE0B515(a1, 32) && n7500 ); /*0xffe0b5e9*/\\n if ( sub_FFE0B515(a1, 32) ) /*0xffe0b5f0*/\\n return -2147483641; /*0xffe0b5fc*/\\n else\\n return 0; /*0xffe0b603*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b515\",\"name\":\"sub_FFE0B515\"},{\"addr\":\"0xffe0b502\",\"name\":\"sub_FFE0B502\"}]}",
"0xffe0b609": "{\"addr\":\"0xffe0b609\",\"code\":\"int __thiscall sub_FFE0B609(char *this)\\n{\\n void *v2; // ecx\\n int n2; // ebp\\n int n30000; // esi\\n int n5; // ebx\\n bool v7; // zf\\n\\n if ( !sub_FFE0B515(this, 32) ) /*0xffe0b60e*/\\n return -2147483629; /*0xffe0b617*/\\n n2 = 2; /*0xffe0b623*/\\n while ( 1 ) /*0xffe0b624*/\\n {\\n n30000 = 30000; /*0xffe0b624*/\\n *(this + 24) = 64; /*0xffe0b629*/\\n do /*0xffe0b644*/\\n {\\n --n30000; /*0xffe0b62f*/\\n n5 = 5; /*0xffe0b630*/\\n do /*0xffe0b639*/\\n {\\n sub_FFE0B37F(v2); /*0xffe0b631*/\\n --n5; /*0xffe0b636*/\\n }\\n while ( n5 ); /*0xffe0b639*/\\n }\\n while ( (*(this + 24) & 0x40) == 0 && n30000 ); /*0xffe0b644*/\\n v7 = n30000 == 0; /*0xffe0b646*/\\n if ( n30000 ) /*0xffe0b648*/\\n break; /*0xffe0b648*/\\n if ( !--n2 ) /*0xffe0b64d*/\\n {\\n v7 = 1; /*0xffe0b64f*/\\n break; /*0xffe0b64f*/\\n }\\n }\\n if ( v7 ) /*0xffe0b654*/\\n return -2147483641; /*0xffe0b656*/\\n else\\n return 0; /*0xffe0b65d*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b515\",\"name\":\"sub_FFE0B515\"},{\"addr\":\"0xffe0b37f\",\"name\":\"sub_FFE0B37F\"}]}",
"0xffe0b661": "{\"addr\":\"0xffe0b661\",\"code\":\"unsigned int __fastcall sub_FFE0B661(_BYTE *a1, char *a2, int a3, char a4)\\n{\\n int v4; // esi\\n char v8; // al\\n unsigned __int16 v9; // ax\\n int v10; // ecx\\n char v11; // al\\n\\n v4 = a3; /*0xffe0b667*/\\n if ( !a3 )\\n return a4 != 0 ? 0x80000002 : 0;\\n if ( (*a1 & 0x20) == 0 ) /*0xffe0b686*/\\n return -2147483627; /*0xffe0b686*/\\n v8 = a4; /*0xffe0b68f*/\\n if ( a4 ) /*0xffe0b694*/\\n v4 = a3 - 1; /*0xffe0b696*/\\n if ( v4 ) /*0xffe0b699*/\\n {\\nLABEL_8:\\n v9 = sub_FFE0B54E((int)a1); /*0xffe0b69b*/\\n v10 = v9; /*0xffe0b6a2*/\\n if ( !v9 ) /*0xffe0b6a8*/\\n return -2147483630; /*0xffe0b6f8*/\\n while ( v4 ) /*0xffe0b6ac*/\\n {\\n v11 = *a2; /*0xffe0b6ae*/\\n v10 += 0xFFFF; /*0xffe0b6b0*/\\n ++a2; /*0xffe0b6b6*/\\n a1[36] = v11; /*0xffe0b6b7*/\\n --v4; /*0xffe0b6ba*/\\n if ( !(_WORD)v10 ) /*0xffe0b6be*/\\n {\\n if ( v4 ) /*0xffe0b6c2*/\\n goto LABEL_8; /*0xffe0b6c2*/\\n break; /*0xffe0b6c2*/\\n }\\n }\\n v8 = a4; /*0xffe0b6c4*/\\n }\\n if ( v8 ) /*0xffe0b6c9*/\\n {\\n if ( !sub_FFE0B515(a1 + 24, 8) ) /*0xffe0b6d2*/\\n return -2147483627; /*0xffe0b6d2*/\\n a1[36] = *a2; /*0xffe0b6e1*/\\n if ( sub_FFE0B515(a1 + 24, 8) ) /*0xffe0b6e4*/\\n return -2147483627; /*0xffe0b68d*/\\n a1[24] = 32; /*0xffe0b6ed*/\\n }\\n return 0; /*0xffe0b6f2*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b54e\",\"name\":\"sub_FFE0B54E\"},{\"addr\":\"0xffe0b515\",\"name\":\"sub_FFE0B515\"}]}",
"0xffe0b6ff": "{\"addr\":\"0xffe0b6ff\",\"code\":\"unsigned int __fastcall sub_FFE0B6FF(int a1, _BYTE *a2, _DWORD *a3)\\n{\\n _BYTE *v3; // esi\\n _BYTE *v5; // edi\\n char *v6; // eax\\n unsigned __int16 v7; // ax\\n int v8; // ebx\\n\\n v3 = a2; /*0xffe0b707*/\\n v5 = &a2[*a3]; /*0xffe0b70d*/\\n if ( a2 >= v5 ) /*0xffe0b711*/\\n goto LABEL_9; /*0xffe0b711*/\\n v6 = (char *)(a1 + 24); /*0xffe0b713*/\\nLABEL_3:\\n if ( !sub_FFE0B515(v6, 16) )\\n {\\nLABEL_9:\\n *a3 += v3 - v5; /*0xffe0b75c*/\\n return sub_FFE0B515((char *)(a1 + 24), 16) != 0 ? 0x80000005 : 0;\\n }\\n v7 = sub_FFE0B54E(a1); /*0xffe0b725*/\\n v8 = v7; /*0xffe0b72a*/\\n if ( v7 ) /*0xffe0b730*/\\n {\\n while ( v3 < v5 ) /*0xffe0b734*/\\n {\\n if ( sub_FFE0B515((char *)(a1 + 24), 16) ) /*0xffe0b73b*/\\n {\\n v8 += 0xFFFF; /*0xffe0b747*/\\n *v3++ = *(_BYTE *)(a1 + 36); /*0xffe0b74d*/\\n if ( (_WORD)v8 ) /*0xffe0b753*/\\n continue; /*0xffe0b753*/\\n }\\n v6 = (char *)(a1 + 24); /*0xffe0b755*/\\n if ( v3 < v5 ) /*0xffe0b75a*/\\n goto LABEL_3; /*0xffe0b75a*/\\n goto LABEL_9; /*0xffe0b75a*/\\n }\\n goto LABEL_9; /*0xffe0b734*/\\n }\\n return -2147483630; /*0xffe0b77a*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b515\",\"name\":\"sub_FFE0B515\"},{\"addr\":\"0xffe0b54e\",\"name\":\"sub_FFE0B54E\"}]}",
"0xffe0b786": "{\"addr\":\"0xffe0b786\",\"code\":\"signed int __fastcall sub_FFE0B786(char *a1, unsigned int a2, int a3, unsigned int a4, int a5)\\n{\\n signed int result; // eax\\n unsigned int v6; // edi\\n unsigned int v7; // esi\\n bool v8; // zf\\n char *v9; // edx\\n unsigned int v11; // [esp+10h] [ebp-8h]\\n\\n v11 = a2; /*0xffe0b79a*/\\n if ( !a2 || !a3 || !a5 || !a4 ) /*0xffe0b7c1*/\\n return -2147483646; /*0xffe0b850*/\\n result = sub_FFE0B609(a1); /*0xffe0b7c7*/\\n if ( result < 0 ) /*0xffe0b7ce*/\\n return -2147483641; /*0xffe0b7d0*/\\n v6 = 0; /*0xffe0b7d7*/\\n v7 = 0; /*0xffe0b7d9*/\\n do\\n {\\n if ( v7 >= a2 ) /*0xffe0b7df*/\\n break; /*0xffe0b7df*/\\n v8 = v11-- == 1; /*0xffe0b7e1*/\\n v9 = *(char **)(a3 + 8 * v7); /*0xffe0b7e6*/\\n result = v8\\n ? sub_FFE0B661(a1, v9, *(_DWORD *)(a3 + 8 * v7 + 4), 1)\\n : sub_FFE0B661(a1, v9, *(_DWORD *)(a3 + 8 * v7 + 4), 0);\\n ++v7; /*0xffe0b7fe*/\\n }\\n while ( result >= 0 );\\n if ( result >= 0 ) /*0xffe0b806*/\\n {\\n while ( !sub_FFE0B515(a1 + 24, 16) ) /*0xffe0b81e*/\\n ; /*0xffe0b813*/\\n result = -2147483643; /*0xffe0b823*/\\n do /*0xffe0b845*/\\n {\\n if ( v6 >= a4 ) /*0xffe0b82b*/\\n break; /*0xffe0b82b*/\\n result = sub_FFE0B6FF((int)a1, *(_BYTE **)(a5 + 8 * v6), (_DWORD *)(a5 + 4 + 8 * v6)); /*0xffe0b839*/\\n ++v6; /*0xffe0b83e*/\\n }\\n while ( result == -2147483643 ); /*0xffe0b845*/\\n a1[24] = 64; /*0xffe0b84b*/\\n }\\n return result; /*0xffe0b855*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b609\",\"name\":\"sub_FFE0B609\"},{\"addr\":\"0xffe0b661\",\"name\":\"sub_FFE0B661\"},{\"addr\":\"0xffe0b515\",\"name\":\"sub_FFE0B515\"},{\"addr\":\"0xffe0b6ff\",\"name\":\"sub_FFE0B6FF\"}]}",
"0xffe0b85c": "{\"addr\":\"0xffe0b85c\",\"code\":\"bool sub_FFE0B85C()\\n{\\n return MEMORY[0xFED40030] != -1 && MEMORY[0xFED40030]; /*0xffe0b88c*/\\n}\"}",
"0xffe0b890": "{\"addr\":\"0xffe0b890\",\"code\":\"char sub_FFE0B890()\\n{\\n char v1; // [esp+6h] [ebp-2h]\\n\\n v1 = MEMORY[0xFED40030] & 0xF; /*0xffe0b8ac*/\\n if ( sub_FFE0B85C() ) /*0xffe0b8b3*/\\n return v1 & 0xF; /*0xffe0b8de*/\\n else\\n return sub_FFE0CF93() != 0; /*0xffe0b8c9*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cf93\",\"name\":\"sub_FFE0CF93\"},{\"addr\":\"0xffe0b85c\",\"name\":\"sub_FFE0B85C\"}]}",
"0xffe0b8e5": "{\"addr\":\"0xffe0b8e5\",\"code\":\"bool sub_FFE0B8E5()\\n{\\n if ( sub_FFE0CF93() ) /*0xffe0b8e8*/\\n return 1; /*0xffe0b8f4*/\\n return sub_FFE0B85C() && sub_FFE0B890() == 1; /*0xffe0b917*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cf93\",\"name\":\"sub_FFE0CF93\"},{\"addr\":\"0xffe0b85c\",\"name\":\"sub_FFE0B85C\"},{\"addr\":\"0xffe0b890\",\"name\":\"sub_FFE0B890\"}]}",
"0xffe0b919": "{\"addr\":\"0xffe0b919\",\"code\":\"char sub_FFE0B919()\\n{\\n int v0; // eax\\n unsigned int v2; // [esp+0h] [ebp-4h] BYREF\\n\\n v2 = 0; /*0xffe0b91d*/\\n sub_FFE0CFE5(&v2); /*0xffe0b924*/\\n if ( !v2 ) /*0xffe0b92e*/\\n {\\n v0 = sub_FFE0B2B7(); /*0xffe0b930*/\\n if ( v0 ) /*0xffe0b937*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v0 + 4))( /*0xffe0b948*/\\n \\\"e:\\\\\\\\hs\\\\\\\\PurleySktPkg\\\\\\\\SouthClusterLbg\\\\\\\\Library\\\\\\\\PeiDxeSmmPchPmcLib\\\\\\\\PchPmcLib.c\\\",\\n 162,\\n \\\"PchPwrmBase != 0\\\");\\n return 0; /*0xffe0b948*/\\n }\\n if ( (*(_DWORD *)(v2 + 300) & 0x8000) == 0 ) /*0xffe0b95f*/\\n return 0; /*0xffe0b953*/\\n sub_FFE0B2E8(0x80000000, \\\"SkipTpmInitDuringDwrFlow() WARNING: DWR detected - Skipping TPM initialization .. \\\\n\\\");\\n return 1; /*0xffe0b950*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cfe5\",\"name\":\"sub_FFE0CFE5\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"}]}",
"0xffe0b976": "{\"addr\":\"0xffe0b976\",\"code\":\"int sub_FFE0B976()\\n{\\n unsigned __int8 v0; // al\\n char n3; // al\\n char n3_1; // cl\\n\\n v0 = __inbyte(0x70u); /*0xffe0b97c*/\\n __outbyte(0x70u, v0 & 0x80 | 0x4A); /*0xffe0b981*/\\n n3 = __inbyte(0x71u); /*0xffe0b988*/\\n n3_1 = n3; /*0xffe0b989*/\\n if ( (unsigned __int8)n3 <= 3u ) /*0xffe0b98e*/\\n {\\nLABEL_4:\\n if ( !n3_1 ) /*0xffe0b9a9*/\\n return 0; /*0xffe0b9a9*/\\n goto LABEL_5; /*0xffe0b9a9*/\\n }\\n n3_1 = n3; /*0xffe0b990*/\\n if ( !n3 ) /*0xffe0b998*/\\n {\\n n3_1 = MEMORY[0xFDAF0490] & 2 | 1; /*0xffe0b9a4*/\\n goto LABEL_4; /*0xffe0b9a4*/\\n }\\nLABEL_5:\\n if ( n3_1 != -1 )\\n return n3_1 != 1 ? -2147483578 : -2147483644;\\n return 0; /*0xffe0b9c1*/\\n}\",\"refs\":[{\"addr\":\"0xffe0dc78\",\"name\":\"n3\"}]}",
"0xffe0b9c5": "{\"addr\":\"0xffe0b9c5\",\"code\":\"void *__fastcall sub_FFE0B9C5(void *buf, unsigned int count)\\n{\\n int v4; // eax\\n\\n if ( count - 1 > -1 - (int)buf ) /*0xffe0b9d6*/\\n {\\n v4 = sub_FFE0B2B7(); /*0xffe0b9d8*/\\n if ( v4 ) /*0xffe0b9df*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v4 + 4))( /*0xffe0b9ed*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\SetMemWrapper.c\\\",\\n 54,\\n \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)Buffer)\\\");\\n }\\n return sub_FFE0A9B8(buf, count, 0); /*0xffe0b9ff*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0a9b8\",\"name\":\"sub_FFE0A9B8\"}]}",
"0xffe0ba03": "{\"addr\":\"0xffe0ba03\",\"code\":\"int __fastcall sub_FFE0BA03(_BYTE *a1, int n16)\\n{\\n int v5; // eax\\n int v6; // eax\\n int v7; // eax\\n\\n if ( a1 == byte_FFE0DB98 ) /*0xffe0ba0f*/\\n return 0; /*0xffe0ba11*/\\n if ( !a1 ) /*0xffe0ba17*/\\n {\\n v5 = sub_FFE0B2B7(); /*0xffe0ba19*/\\n if ( v5 ) /*0xffe0ba20*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffe0ba2e*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CompareMemWrapper.c\\\",\\n 61,\\n \\\"SourceBuffer != ((void *) 0)\\\");\\n }\\n if ( n16 - 1 > (unsigned int)(-1 - (_DWORD)byte_FFE0DB98) ) /*0xffe0ba45*/\\n {\\n v6 = sub_FFE0B2B7(); /*0xffe0ba47*/\\n if ( v6 ) /*0xffe0ba4e*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffe0ba5c*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CompareMemWrapper.c\\\",\\n 62,\\n \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)DestinationBuffer)\\\");\\n }\\n if ( n16 - 1 > (unsigned int)(-1 - (_DWORD)a1) ) /*0xffe0ba68*/\\n {\\n v7 = sub_FFE0B2B7(); /*0xffe0ba6a*/\\n if ( v7 ) /*0xffe0ba71*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v7 + 4))( /*0xffe0ba7f*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CompareMemWrapper.c\\\",\\n 63,\\n \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)SourceBuffer)\\\");\\n }\\n return sub_FFE0A9D8(byte_FFE0DB98, a1, n16); /*0xffe0ba94*/\\n}\",\"refs\":[{\"addr\":\"0xffe0db98\",\"name\":\"byte_FFE0DB98\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0a9d8\",\"name\":\"sub_FFE0A9D8\"}]}",
"0xffe0ba97": "{\"addr\":\"0xffe0ba97\",\"code\":\"char *__fastcall sub_FFE0BA97(char *dst, char *src, unsigned int count)\\n{\\n int v5; // eax\\n int v6; // eax\\n\\n if ( count - 1 > -1 - (int)dst ) /*0xffe0baad*/\\n {\\n v5 = sub_FFE0B2B7(); /*0xffe0baaf*/\\n if ( v5 ) /*0xffe0bab6*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffe0bac4*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CopyMemWrapper.c\\\",\\n 56,\\n \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)DestinationBuffer)\\\");\\n }\\n if ( count - 1 > -1 - (int)src ) /*0xffe0bace*/\\n {\\n v6 = sub_FFE0B2B7(); /*0xffe0bad0*/\\n if ( v6 ) /*0xffe0bad7*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffe0bae5*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CopyMemWrapper.c\\\",\\n 57,\\n \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)SourceBuffer)\\\");\\n }\\n if ( dst == src ) /*0xffe0baed*/\\n return dst; /*0xffe0baef*/\\n else\\n return sub_FFE0A9F8(dst, src, count); /*0xffe0baf9*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0a9f8\",\"name\":\"sub_FFE0A9F8\"}]}",
"0xffe0bb06": "{\"addr\":\"0xffe0bb06\",\"code\":\"int __fastcall sub_FFE0BB06(unsigned __int16 *a1)\\n{\\n int v2; // eax\\n\\n if ( ((unsigned __int8)a1 & 1) != 0 ) /*0xffe0bb0c*/\\n {\\n v2 = sub_FFE0B2B7(); /*0xffe0bb0e*/\\n if ( v2 ) /*0xffe0bb15*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v2 + 4))( /*0xffe0bb26*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseIoLibIntrinsic\\\\\\\\IoLib.c\\\",\\n 151,\\n \\\"(Address & 1) == 0\\\");\\n }\\n return *a1; /*0xffe0bb32*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"}]}",
"0xffe0bb64": "{\"addr\":\"0xffe0bb64\",\"code\":\"unsigned __int32 __thiscall sub_FFE0BB64(unsigned __int16 n1288)\\n{\\n int v2; // eax\\n\\n if ( (n1288 & 3) != 0 ) /*0xffe0bb6a*/\\n {\\n v2 = sub_FFE0B2B7(); /*0xffe0bb6c*/\\n if ( v2 ) /*0xffe0bb73*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v2 + 4))( /*0xffe0bb84*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseIoLibIntrinsic\\\\\\\\IoLibMsc.c\\\",\\n 193,\\n \\\"(Port & 3) == 0\\\");\\n }\\n return __indword(n1288); /*0xffe0bb8e*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"}]}",
"0xffe0bb90": "{\"addr\":\"0xffe0bb90\",\"code\":\"__int64 __cdecl sub_FFE0BB90()\\n{\\n return 107386350; /*0xffe0bbb6*/\\n}\"}",
"0xffe0bbd7": "Output truncated. Run: curl -o .ida-mcp/cd93515b-17c3-4a95-9415-47d8d9365ac7.json http://127.0.0.1:13374/output/cd93515b-17c3-4a95-9415-47d8d9365ac7.json",
"0xffe0ce11": "{\"addr\":\"0xffe0ce11\",\"code\":\"void __thiscall sub_FFE0CE11(_DWORD *this)\\n{\\n *(this + 6) = 0; /*0xffe0ce11*/\\n *(this + 5) = 0; /*0xffe0ce15*/\\n *this = 1732584193; /*0xffe0ce19*/\\n *(this + 1) = -271733879; /*0xffe0ce1f*/\\n *(this + 2) = -1732584194; /*0xffe0ce26*/\\n *(this + 3) = 271733878; /*0xffe0ce2d*/\\n *(this + 4) = -1009589776; /*0xffe0ce34*/\\n}\"}",
"0xffe0ce3c": "{\"addr\":\"0xffe0ce3c\",\"code\":\"char *__fastcall sub_FFE0CE3C(int buf, char *src, unsigned int i)\\n{\\n int v4; // ebx\\n unsigned int v5; // ecx\\n char *result; // eax\\n int i_1; // esi\\n unsigned int j; // ebx\\n char *src_1; // [esp+10h] [ebp-4h]\\n\\n src_1 = src; /*0xffe0ce47*/\\n v4 = (*(_DWORD *)(buf + 20) >> 3) & 0x3F; /*0xffe0ce53*/\\n v5 = *(_DWORD *)(buf + 20) + 8 * i; /*0xffe0ce56*/\\n *(_DWORD *)(buf + 20) = v5; /*0xffe0ce5e*/\\n if ( v5 < 8 * i ) /*0xffe0ce63*/\\n ++*(_DWORD *)(buf + 24); /*0xffe0ce65*/\\n *(_DWORD *)(buf + 24) += i >> 29; /*0xffe0ce6d*/\\n result = (char *)(v4 + i); /*0xffe0ce70*/\\n if ( v4 + i <= 0x3F ) /*0xffe0ce76*/\\n {\\n i_1 = 0; /*0xffe0ceb8*/\\n }\\n else\\n {\\n i_1 = 64 - v4; /*0xffe0ce7b*/\\n sub_FFE0BA97((char *)(v4 + buf + 28), src, 64 - v4); /*0xffe0ce85*/\\n result = (char *)sub_FFE0BBD7((_DWORD *)buf, (char *)(buf + 28)); /*0xffe0ce90*/\\n for ( j = i_1 + 63; ; j += 64 ) /*0xffe0ce95*/\\n {\\n src = src_1; /*0xffe0ceac*/\\n if ( j >= i ) /*0xffe0ceb2*/\\n break; /*0xffe0ceb2*/\\n result = (char *)sub_FFE0BBD7((_DWORD *)buf, &src_1[j - 63]); /*0xffe0cea1*/\\n i_1 += 64; /*0xffe0cea6*/\\n }\\n v4 = 0; /*0xffe0ceb4*/\\n }\\n if ( i != i_1 ) /*0xffe0ceba*/\\n return sub_FFE0BA97((char *)(v4 + buf + 28), &src[i_1], i - i_1); /*0xffe0cec6*/\\n return result; /*0xffe0cecc*/\\n}\",\"refs\":[{\"addr\":\"0xffe0ba97\",\"name\":\"sub_FFE0BA97\"},{\"addr\":\"0xffe0bbd7\",\"name\":\"sub_FFE0BBD7\"}]}",
"0xffe0ced2": "{\"addr\":\"0xffe0ced2\",\"code\":\"void *__fastcall sub_FFE0CED2(int a1, _DWORD *buf)\\n{\\n unsigned int n0x14; // edi\\n unsigned int i; // edx\\n char src[8]; // [esp+10h] [ebp-8h] BYREF\\n\\n n0x14 = 0; /*0xffe0ced8*/\\n for ( i = 0; i < 8; ++i )\\n src[i] = *(_DWORD *)((char *)buf + (i < 4 ? 4 : 0) + 20) >> (8 * (3 - (i & 3)));\\n sub_FFE0CE3C((int)buf, src, 1u); /*0xffe0cf0e*/\\n while ( (buf[5] & 0x1F8) != 0x1C0 ) /*0xffe0cf33*/\\n sub_FFE0CE3C((int)buf, src_0, 1u); /*0xffe0cf1f*/\\n sub_FFE0CE3C((int)buf, src, 8u); /*0xffe0cf3b*/\\n do /*0xffe0cf5f*/\\n {\\n *(_BYTE *)(n0x14 + a1) = buf[n0x14 >> 2] >> (8 * (3 - (n0x14 & 3))); /*0xffe0cf58*/\\n ++n0x14; /*0xffe0cf5b*/\\n }\\n while ( n0x14 < 0x14 ); /*0xffe0cf5f*/\\n sub_FFE0B9C5(buf + 7, 0x40u); /*0xffe0cf67*/\\n sub_FFE0B9C5(buf, 0x14u); /*0xffe0cf71*/\\n sub_FFE0B9C5(buf + 5, 8u); /*0xffe0cf7b*/\\n return sub_FFE0B9C5(src, 8u); /*0xffe0cf8c*/\\n}\",\"refs\":[{\"addr\":\"0xffe0ce3c\",\"name\":\"sub_FFE0CE3C\"},{\"addr\":\"0xffe0d81c\",\"name\":\"src\"},{\"addr\":\"0xffe0d820\",\"name\":\"src_0\"},{\"addr\":\"0xffe0b9c5\",\"name\":\"sub_FFE0B9C5\"}]}",
"0xffe0cf93": "{\"addr\":\"0xffe0cf93\",\"code\":\"char __cdecl sub_FFE0CF93()\\n{\\n return 0; /*0xffe0cf95*/\\n}\"}",
"0xffe0cf96": "{\"addr\":\"0xffe0cf96\",\"code\":\"int sub_FFE0CF96()\\n{\\n int v0; // esi\\n _BYTE v2[2]; // [esp+4h] [ebp-8h] BYREF\\n int v3; // [esp+6h] [ebp-6h]\\n\\n sub_FFE0D0B0(v2); /*0xffe0cf9f*/\\n v0 = *(_DWORD *)(v3 - 4); /*0xffe0cfa7*/\\n if ( !v0 ) /*0xffe0cfac*/\\n sub_FFE0B312( /*0xffe0cfbb*/\\n (int)\\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\PeiServicesTablePointerLibIdt\\\\\\\\PeiServicesTablePointer.c\\\",\\n 48,\\n (int)\\\"PeiServices != ((void *) 0)\\\");\\n return v0; /*0xffe0cfc3*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d0b0\",\"name\":\"sub_FFE0D0B0\"},{\"addr\":\"0xffe0b312\",\"name\":\"sub_FFE0B312\"}]}",
"0xffe0cfc8": "{\"addr\":\"0xffe0cfc8\",\"code\":\"int __thiscall sub_FFE0CFC8(void *this)\\n{\\n int (__cdecl **v1)(int); // eax\\n\\n v1 = (int (__cdecl **)(int))sub_FFE0D0F1(this); /*0xffe0cfc8*/\\n return v1[4](5); /*0xffe0cfd3*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d0f1\",\"name\":\"sub_FFE0D0F1\"}]}",
"0xffe0cfd4": "{\"addr\":\"0xffe0cfd4\",\"code\":\"int __thiscall sub_FFE0CFD4(void *this)\\n{\\n int v1; // ebx\\n int v2; // eax\\n\\n v1 = sub_FFE0CFC8(this) + 1024064; /*0xffe0bb35*/\\n if ( (v1 & 1) != 0 ) /*0xffe0bb3a*/\\n {\\n v2 = sub_FFE0B2B7(); /*0xffe0bb3c*/\\n if ( v2 ) /*0xffe0bb43*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v2 + 4))( /*0xffe0bb54*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseIoLibIntrinsic\\\\\\\\IoLib.c\\\",\\n 183,\\n \\\"(Address & 1) == 0\\\");\\n }\\n *(_WORD *)v1 = 1280; /*0xffe0bb5f*/\\n return 1280; /*0xffe0bb63*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cfc8\",\"name\":\"sub_FFE0CFC8\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"}]}",
"0xffe0cfe5": "{\"addr\":\"0xffe0cfe5\",\"code\":\"int __thiscall sub_FFE0CFE5(unsigned int *this)\\n{\\n int v2; // eax\\n int v4; // edi\\n int v5; // eax\\n\\n if ( this ) /*0xffe0cfea*/\\n {\\n v4 = sub_FFE0D071(); /*0xffe0d02a*/\\n if ( (unsigned __int16)sub_FFE0BB06((unsigned __int16 *)v4) == 0xFFFF ) /*0xffe0d03b*/\\n {\\n v5 = sub_FFE0B2B7(); /*0xffe0d03d*/\\n if ( v5 ) /*0xffe0d044*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffe0d055*/\\n \\\"e:\\\\\\\\hs\\\\\\\\PurleySktPkg\\\\\\\\SouthClusterLbg\\\\\\\\Library\\\\\\\\PeiDxeSmmPchCycleDecodingLib\\\\\\\\PchCycleDecodingLib.c\\\",\\n 303,\\n \\\"((BOOLEAN)(0==1))\\\");\\n return -2147483645; /*0xffe0d05b*/\\n }\\n else\\n {\\n *this = *(_DWORD *)(v4 + 72) & 0xFFFF0000; /*0xffe0d06a*/\\n return 0; /*0xffe0d06c*/\\n }\\n }\\n else\\n {\\n sub_FFE0B2E8(0x80000000, \\\"PchPwrmBaseGet Error. Invalid pointer.\\\\n\\\"); /*0xffe0cff6*/\\n v2 = sub_FFE0B2B7(); /*0xffe0cffd*/\\n if ( v2 ) /*0xffe0d004*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v2 + 4))( /*0xffe0d015*/\\n \\\"e:\\\\\\\\hs\\\\\\\\PurleySktPkg\\\\\\\\SouthClusterLbg\\\\\\\\Library\\\\\\\\PeiDxeSmmPchCycleDecodingLib\\\\\\\\PchCycleDecodingLib.c\\\",\\n 293,\\n \\\"((BOOLEAN)(0==1))\\\");\\n return -2147483646; /*0xffe0d01b*/\\n }\\n}\",\"refs\":[{\"addr\":\"0xffe0d071\",\"name\":\"sub_FFE0D071\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"},{\"addr\":\"0xffe0bb06\",\"name\":\"sub_FFE0BB06\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"}]}",
"0xffe0d071": "{\"addr\":\"0xffe0d071\",\"code\":\"int __cdecl sub_FFE0D071()\\n{\\n int v1; // [esp+4h] [ebp-14h] BYREF\\n _DWORD v2[4]; // [esp+8h] [ebp-10h] BYREF\\n\\n v2[2] = 512; /*0xffe0d07e*/\\n v2[0] = 1024000; /*0xffe0d089*/\\n v2[3] = 0; /*0xffe0d095*/\\n v2[1] = 0; /*0xffe0d09c*/\\n sub_FFE0D0D3(0, 0, v2, &v1); /*0xffe0d0a0*/\\n return v1; /*0xffe0d0ac*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d0d3\",\"name\":\"sub_FFE0D0D3\"}]}",
"0xffe0d0b0": "{\"addr\":\"0xffe0d0b0\",\"code\":\"void *__thiscall sub_FFE0D0B0(void *this)\\n{\\n void *this_1; // eax\\n\\n if ( !this ) /*0xffe0d0b6*/\\n sub_FFE0B312((int)\\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseLib\\\\\\\\X86ReadIdtr.c\\\", 37, (int)\\\"Idtr != ((void *) 0)\\\"); /*0xffe0d0c5*/\\n this_1 = this; /*0xffe0d0cb*/\\n __sidt(this); /*0xffe0d0ce*/\\n return this_1; /*0xffe0d0d2*/\\n}\",\"refs\":[{\"addr\":\"0xffe0b312\",\"name\":\"sub_FFE0B312\"}]}",
"0xffe0d0d3": "{\"addr\":\"0xffe0d0d3\",\"code\":\"int *__cdecl sub_FFE0D0D3(int a1, int a2, _DWORD *a3, int *a4)\\n{\\n int v4; // ecx\\n\\n v4 = sub_FFE0D202((int)a3) + (*a3 & 0xFFFFFFF); /*0xffe0d0e7*/\\n *a4 = v4; /*0xffe0d0ee*/\\n return a4; /*0xffe0d0ed*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d202\",\"name\":\"sub_FFE0D202\"}]}",
"0xffe0d0f1": "{\"addr\":\"0xffe0d0f1\",\"code\":\"void *__thiscall sub_FFE0D0F1(void *this)\\n{\\n int v1; // eax\\n int v2; // eax\\n int v3; // eax\\n void *this_1; // [esp+0h] [ebp-4h]\\n\\n this_1 = this; /*0xffe0d0f4*/\\n v1 = sub_FFE0CF96(); /*0xffe0d0f5*/\\n v2 = (*(int (__stdcall **)(int))(*(_DWORD *)v1 + 32))(v1); /*0xffe0d10a*/\\n if ( v2 < 0 ) /*0xffe0d112*/\\n {\\n sub_FFE0B2E8(0x80000000, \\\"\\\\nASSERT_EFI_ERROR (Status = %r)\\\\n\\\", v2); /*0xffe0d11f*/\\n v3 = sub_FFE0B2B7(); /*0xffe0d127*/\\n if ( v3 ) /*0xffe0d12e*/\\n (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffe0d13c*/\\n \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\PeiPcdLib\\\\\\\\PeiPcdLib.c\\\",\\n 49,\\n \\\"!EFI_ERROR (Status)\\\");\\n }\\n return this_1; /*0xffe0d147*/\\n}\",\"refs\":[{\"addr\":\"0xffe0cf96\",\"name\":\"sub_FFE0CF96\"},{\"addr\":\"0xffe0b2e8\",\"name\":\"sub_FFE0B2E8\"},{\"addr\":\"0xffe0b2b7\",\"name\":\"sub_FFE0B2B7\"}]}",
"0xffe0d149": "{\"addr\":\"0xffe0d149\",\"code\":\"int __thiscall sub_FFE0D149(void *this)\\n{\\n int (__cdecl **v2)(void *); // eax\\n\\n v2 = (int (__cdecl **)(void *))sub_FFE0D0F1(this); /*0xffe0d14c*/\\n return v2[4](this); /*0xffe0d156*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d0f1\",\"name\":\"sub_FFE0D0F1\"}]}",
"0xffe0d158": "{\"addr\":\"0xffe0d158\",\"code\":\"int __thiscall sub_FFE0D158(void *this)\\n{\\n int (__cdecl **v2)(void *); // eax\\n\\n v2 = (int (__cdecl **)(void *))sub_FFE0D0F1(this); /*0xffe0d15b*/\\n return v2[5](this); /*0xffe0d165*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d0f1\",\"name\":\"sub_FFE0D0F1\"}]}",
"0xffe0d167": "{\"addr\":\"0xffe0d167\",\"code\":\"int __cdecl sub_FFE0D167(_DWORD *a1, int n8)\\n{\\n int v3; // [esp+Ch] [ebp-4h]\\n\\n v3 = sub_FFE0D158((void *)6); /*0xffe0d197*/\\n a1[1] = 16 * n8 + 16; /*0xffe0d1a0*/\\n if ( !a1[4] && !a1[5] ) /*0xffe0d1bc*/\\n {\\n *(_DWORD *)(v3 + 16) = sub_FFE0D149((void *)5); /*0xffe0d1e1*/\\n *(_DWORD *)(v3 + 20) = 0; /*0xffe0d1f8*/\\n }\\n return 0; /*0xffe0d1fe*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d158\",\"name\":\"sub_FFE0D158\"},{\"addr\":\"0xffe0d149\",\"name\":\"sub_FFE0D149\"}]}",
"0xffe0d202": "{\"addr\":\"0xffe0d202\",\"code\":\"int __cdecl sub_FFE0D202(int a1)\\n{\\n int v2; // [esp+Ch] [ebp-Ch]\\n int v3; // [esp+10h] [ebp-8h]\\n int v4; // [esp+14h] [ebp-4h]\\n\\n if ( *(_DWORD *)(a1 + 12) ) /*0xffe0d217*/\\n {\\n v3 = *(_DWORD *)(*(_DWORD *)(a1 + 12) + 4 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 255544); /*0xffe0d30d*/\\n v4 = *(_DWORD *)(*(_DWORD *)(a1 + 12) + 4 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 255560); /*0xffe0d329*/\\n }\\n else\\n {\\n v2 = sub_FFE0D158((void *)6); /*0xffe0d22a*/\\n if ( *(_DWORD *)(v2 + 4) ) /*0xffe0d230*/\\n {\\n v3 = *(_DWORD *)(v2 + 16 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 20); /*0xffe0d24b*/\\n v4 = *(_DWORD *)(v2 + 16 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 16); /*0xffe0d263*/\\n }\\n else\\n {\\n sub_FFE0D167(dword_FFE0DC48, 8); /*0xffe0d276*/\\n v3 = dword_FFE0DC5C[4 * (unsigned __int16)*(_DWORD *)(a1 + 4)]; /*0xffe0d291*/\\n v4 = dword_FFE0DC58[4 * (unsigned __int16)*(_DWORD *)(a1 + 4)]; /*0xffe0d2a8*/\\n if ( !v4 && !v3 ) /*0xffe0d2b5*/\\n {\\n v4 = sub_FFE0D149((void *)5); /*0xffe0d2e2*/\\n v3 = 0; /*0xffe0d2ef*/\\n }\\n }\\n }\\n if ( !v4 && !v3 ) /*0xffe0d336*/\\n return sub_FFE0D149((void *)5); /*0xffe0d363*/\\n return v4; /*0xffe0d37c*/\\n}\",\"refs\":[{\"addr\":\"0xffe0d158\",\"name\":\"sub_FFE0D158\"},{\"addr\":\"0xffe0d167\",\"name\":\"sub_FFE0D167\"},{\"addr\":\"0xffe0dc48\",\"name\":\"dword_FFE0DC48\"},{\"addr\":\"0xffe0dc5c\",\"name\":\"dword_FFE0DC5C\"},{\"addr\":\"0xffe0dc58\",\"name\":\"dword_FFE0DC58\"},{\"addr\":\"0xffe0d149\",\"name\":\"sub_FFE0D149\"}]}"
}