Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / TCG2 / CRB_lib / Tpm20CRBLib.c / TrEEPei / export_batch_1.json
@Ajax Dong Ajax Dong 2 days ago 47 KB Restructure the repo
{"jsonrpc": "2.0", "result": {"structuredContent": {"format": "json", "functions": [{"addr": "0xffe0fc2c", "name": "ProcessTpmSupportDisabled", "prototype": "int __thiscall(void *this)", "size": "0x116", "comments": {"0xffe0fc92": {"regular": "this"}, "0xffe0fca1": {"regular": "this"}}, "asm": "ProcessTpmSupportDisabled (.text @ 0xffe0fc2c):\nffe0fc2c  push ebp\nffe0fc2d  mov ebp, esp\nffe0fc2f  and esp, 0FFFFFFF8h\nffe0fc32  push esi\nffe0fc33  push edi\nffe0fc34  push offset aProcesstpmsupp\nffe0fc39  push 40h\nffe0fc3b  mov edi, ecx\nffe0fc3d  call DebugPrint\nffe0fc42  pop ecx\nffe0fc43  pop ecx\nffe0fc44  call Tpm20GetInterfaceType\nffe0fc49  mov InterfaceType, al\nffe0fc4e  test al, al\nffe0fc50  jnz loc_FFE0FC68\nffe0fc52  cmp byte ptr ds:0FED40000h, 0FFh\nffe0fc59  jz loc_FFE0FC88\nffe0fc5b  cmp ds:0FED40000h, al\nffe0fc61  jz loc_FFE0FC88\nffe0fc63  mov al, InterfaceType\nffe0fc68  cmp al, 1\nffe0fc6a  jnz loc_FFE0FC92\nffe0fc6c  call Tpm20GetDeviceType\nffe0fc71  cmp al, 2\nffe0fc73  jz loc_FFE0FC92\nffe0fc75  call Tpm20GetDeviceType\nffe0fc7a  cmp al, 1\nffe0fc7c  jz loc_FFE0FC92\nffe0fc7e  mov eax, 80000003h\nffe0fc83  jmp loc_FFE0FD3C\nffe0fc88  mov eax, 8000000Eh\nffe0fc8d  jmp loc_FFE0FD3C\nffe0fc92  mov ecx, edi\nffe0fc94  call Tpm2Startup\nffe0fc99  test eax, eax\nffe0fc9b  js loc_FFE0FD3C\nffe0... [2350 chars total]", "code": "int __thiscall ProcessTpmSupportDisabled(void *this)\n{\n  char InterfaceType; // al\n  int result; // eax\n  int v4; // ecx\n  int v5; // eax\n  int v6; // ecx\n  int v7; // eax\n  unsigned int n8; // ecx\n  int v9; // esi\n\n  DebugPrint(64, \" ProcessTpmSupportDisabled Entry \\n\"); /*0xffe0fc3d*/\n  InterfaceType = Tpm20GetInterfaceType(); /*0xffe0fc44*/\n  ::InterfaceType = InterfaceType; /*0xffe0fc49*/\n  if ( !InterfaceType ) /*0xffe0fc50*/\n  {\n    if ( MEMORY[0xFED40000] == 0xFF || !MEMORY[0xFED40000] ) /*0xffe0fc61*/\n      return -2147483634; /*0xffe0fc8d*/\n    InterfaceType = ::InterfaceType; /*0xffe0fc63*/\n  }\n  if ( InterfaceType == 1 && Tpm20GetDeviceType() != 2 && Tpm20GetDeviceType() != 1 ) /*0xffe0fc7c*/\n    return -2147483645; /*0xffe0fc7e*/\n  result = sub_FFE0F2C2(this); /*0xffe0fc94*/\n  if ( result >= 0 )\n  {\n    result = sub_FFE0F3F9(this); /*0xffe0fca3*/\n    if ( result >= 0 )\n    {\n      v5 = sub_FFE0F536(v4, v4, 0x4000000Bu); /*0xffe0fcb8*/\n      if ( v5 < 0 ) /*0xffe0fcc2*/\n    ... [1725 chars total]", "xrefs": {"to": [{"addr": "0xffe0fd90", "type": "code"}], "from": [{"addr": "0xffe0fc2d", "type": "code"}]}}, {"addr": "0xffe0fd42", "name": "TrEEPeiEntry", "prototype": "int __fastcall(int, int *SystemTable)", "size": "0x27b", "comments": {"0xffe0fddd": {"regular": "SystemTable"}, "0xffe0fddf": {"regular": "unsigned __int8"}, "0xffe0fe4a": {"regular": "SystemTable"}, "0xffe0fe4c": {"regular": "unsigned __int8"}, "0xffe0fe9f": {"regular": "_DWORD *"}, "0xffe0fea4": {"regular": "int *"}, "0xffe0fea5": {"regular": "n4136"}, "0xffe0feaa": {"regular": "this"}}, "asm": "TrEEPeiEntry (.text @ 0xffe0fd42):\nffe0fd42  push ebp\nffe0fd43  mov ebp, esp\nffe0fd45  sub esp, 24h\nffe0fd48  lea ecx, [ebp+var_4]\nffe0fd4b  push ebx\nffe0fd4c  push esi\nffe0fd4d  push ecx\nffe0fd4e  mov esi, edx\nffe0fd50  xor bl, bl\nffe0fd52  push 0\nffe0fd54  push 0\nffe0fd56  push offset unk_FFE173C8\nffe0fd5b  mov eax, [esi]\nffe0fd5d  push esi\nffe0fd5e  call dword ptr [eax+20h]\nffe0fd61  add esp, 14h\nffe0fd64  test eax, eax\nffe0fd66  js loc_FFE0FFB7\nffe0fd6c  push edi\nffe0fd6d  lea eax, [ebp+var_24]\nffe0fd70  push eax\nffe0fd71  mov eax, [ebp+var_4]\nffe0fd74  push esi\nffe0fd75  call dword ptr [eax+4]\nffe0fd78  mov edi, eax\nffe0fd7a  pop ecx\nffe0fd7b  pop ecx\nffe0fd7c  test edi, edi\nffe0fd7e  js loc_FFE0FFB6\nffe0fd84  cmp [ebp+var_1E], bl\nffe0fd87  jz loc_FFE0FDA3\nffe0fd89  cmp [ebp+var_24], bl\nffe0fd8c  jnz loc_FFE0FD9A\nffe0fd8e  mov ecx, esi\nffe0fd90  call ProcessTpmSupportDisabled\nffe0fd95  jmp loc_FFE0FFB6\nffe0fd9a  call Tpm20IsSupportedVidDid\nffe0fd9f  test al, al\nffe0fda1  jz loc_FF... [5745 chars total]", "code": "int __fastcall TrEEPeiEntry(int a1, int *SystemTable)\n{\n  char v3; // bl\n  int result; // eax\n  int v5; // edi\n  char InterfaceType; // al\n  int v7; // eax\n  __int64 v8; // rcx\n  unsigned __int8 n2; // al\n  _DWORD *v10; // edx\n  int v11; // eax\n  int DebugLib; // eax\n  _BYTE v13[5]; // [esp+8h] [ebp-24h] BYREF\n  unsigned __int8 n2_1; // [esp+Dh] [ebp-1Fh]\n  char v15; // [esp+Eh] [ebp-1Eh]\n  bool v16; // [esp+1Eh] [ebp-Eh]\n  int v17; // [esp+1Fh] [ebp-Dh]\n  int v18; // [esp+24h] [ebp-8h] BYREF\n  int v19; // [esp+28h] [ebp-4h] BYREF\n\n  v3 = 0; /*0xffe0fd50*/\n  result = (*(int (__cdecl **)(int *, void *, _DWORD, _DWORD, int *))(*SystemTable + 32))( /*0xffe0fd5e*/\n             SystemTable,\n             &unk_FFE173C8,\n             0,\n             0,\n             &v19);\n  if ( result < 0 ) /*0xffe0fd66*/\n    return result; /*0xffe0fd66*/\n  result = (*(int (__cdecl **)(int *, _BYTE *))(v19 + 4))(SystemTable, v13); /*0xffe0fd75*/\n  v5 = result; /*0xffe0fd78*/\n  if ( result < 0 ) /*0xffe0fd7e*/... [5032 chars total]", "xrefs": {"to": [{"addr": "0xffe0e20f", "type": "code"}], "from": [{"addr": "0xffe0fd43", "type": "code"}]}}, {"addr": "0xffe0ffbd", "name": "TrEEPeiInstallPpi", "prototype": "int __cdecl(_DWORD *)", "size": "0xcc", "comments": {}, "asm": "TrEEPeiInstallPpi (.text @ 0xffe0ffbd):\nffe0ffbd  push ebp\nffe0ffbe  mov ebp, esp\nffe0ffc0  sub esp, 60h\nffe0ffc3  push esi\nffe0ffc4  mov esi, ecx\nffe0ffc6  test esi, esi\nffe0ffc8  jnz loc_FFE0FFD4\nffe0ffca  mov eax, 80000002h\nffe0ffcf  jmp loc_FFE10084\nffe0ffd4  push 4Eh\nffe0ffd6  pop edx\nffe0ffd7  lea ecx, [ebp+var_60]\nffe0ffda  call ReallocatePool\nffe0ffdf  mov eax, 180h\nffe0ffe4  mov [ebp+var_5A], 86010000h\nffe0ffeb  xor edx, edx\nffe0ffed  mov [ebp+var_60], ax\nffe0fff1  lea ecx, [ebp+var_56]\nffe0fff4  call SwapBytes16\nffe0fff9  mov edx, 1200h\nffe0fffe  lea ecx, [ebp+var_54]\nffe10001  call SwapBytes16\nffe10006  push 0Eh\nffe10008  pop ecx\nffe10009  call SwapBytes32\nffe1000e  mov [ebp+var_5E], eax\nffe10011  lea eax, [ebp+var_10]\nffe10014  push eax\nffe10015  push 0Eh\nffe10017  lea eax, [ebp+var_60]\nffe1001a  push eax\nffe1001b  push 0Eh\nffe1001d  push esi\nffe1001e  call dword ptr [esi+0Ch]\nffe10021  add esp, 14h\nffe10024  test eax, eax\nffe10026  js loc_FFE10084\nffe10028  mov ecx, [ebp+v... [1777 chars total]", "code": "int __cdecl TrEEPeiInstallPpi(_DWORD *a1)\n{\n  int v1; // ecx\n  int v2; // esi\n  int result; // eax\n  unsigned int n0xE; // eax\n  int v5; // eax\n  __int16 n384; // [esp+4h] [ebp-60h] BYREF\n  int v7; // [esp+6h] [ebp-5Eh]\n  int v8; // [esp+Ah] [ebp-5Ah]\n  _BYTE v9[2]; // [esp+Eh] [ebp-56h] BYREF\n  _BYTE v10[68]; // [esp+10h] [ebp-54h] BYREF\n  _BYTE v11[2]; // [esp+54h] [ebp-10h] BYREF\n  int v12; // [esp+56h] [ebp-Eh]\n  int v13; // [esp+5Ah] [ebp-Ah]\n  int v14; // [esp+5Eh] [ebp-6h]\n\n  v2 = v1; /*0xffe0ffc4*/\n  if ( !v1 ) /*0xffe0ffc8*/\n    return -2147483646; /*0xffe0ffca*/\n  sub_FFE10490(&n384, 78); /*0xffe0ffda*/\n  v8 = -2046754816; /*0xffe0ffe4*/\n  n384 = 384; /*0xffe0ffed*/\n  sub_FFE105B3(v9, 0); /*0xffe0fff4*/\n  sub_FFE105B3(v10, 4608); /*0xffe10001*/\n  v7 = sub_FFE10573(14); /*0xffe1000e*/\n  result = (*(int (__cdecl **)(int, int, __int16 *, int, _BYTE *))(v2 + 12))(v2, 14, &n384, 14, v11); /*0xffe1001e*/\n  if ( result >= 0 )\n  {\n    n0xE = sub_FFE10573(v12); /*0xffe1002b*/\n    if (... [1538 chars total]", "xrefs": {"to": [{"addr": "0xffe0e962", "type": "code"}, {"addr": "0xffe0ef60", "type": "code"}], "from": [{"addr": "0xffe0ffbe", "type": "code"}]}}, {"addr": "0xffe10089", "name": "TrEESerializeCmdHeader", "prototype": "int __fastcall(int, int)", "size": "0xa7", "comments": {}, "asm": "TrEESerializeCmdHeader (.text @ 0xffe10089):\nffe10089  push ebx\nffe1008a  push esi\nffe1008b  mov ebx, ecx\nffe1008d  push edi\nffe1008e  mov edi, edx\nffe10090  test ebx, ebx\nffe10092  jz loc_FFE100FF\nffe10094  mov ecx, [ebx]\nffe10096  call SwapBytes32\nffe1009b  mov edx, eax\nffe1009d  mov ecx, edi\nffe1009f  call WriteUnaligned32\nffe100a4  movzx edx, word ptr [ebx+4]\nffe100a8  lea esi, [edi+4]\nffe100ab  rol dx, 8\nffe100af  mov ecx, esi\nffe100b1  call SwapBytes16\nffe100b6  movzx eax, word ptr [ebx+4]\nffe100ba  lea edx, [ebx+6]\nffe100bd  add esi, 2\nffe100c0  push eax\nffe100c1  mov ecx, esi\nffe100c3  call CopyMemChecked\nffe100c8  movzx eax, word ptr [ebx+4]\nffe100cc  add esi, eax\nffe100ce  mov al, [ebx+46h]\nffe100d1  mov [esi], al\nffe100d3  lea ecx, [esi+1]\nffe100d6  movzx edx, word ptr [ebx+47h]\nffe100da  rol dx, 8\nffe100de  call SwapBytes16\nffe100e3  movzx eax, word ptr [ebx+47h]\nffe100e7  lea edx, [ebx+49h]\nffe100ea  add esi, 3\nffe100ed  push eax\nffe100ee  mov ecx, esi\nffe100f0  call CopyM... [1565 chars total]", "code": "int __fastcall TrEESerializeCmdHeader(int a1, int a2)\n{\n  int n150995008; // eax\n  int dst; // esi\n  int v6; // esi\n\n  if ( a1 ) /*0xffe10092*/\n  {\n    n150995008 = SwapBytes32(*(_DWORD *)a1); /*0xffe10096*/\n    sub_FFE105E2(a2, n150995008); /*0xffe1009f*/\n    SwapBytes16((_WORD *)(a2 + 4), __ROL2__(*(_WORD *)(a1 + 4), 8)); /*0xffe100b1*/\n    CopyMemChecked((char *)(a2 + 6), (char *)(a1 + 6), *(unsigned __int16 *)(a1 + 4)); /*0xffe100c3*/\n    dst = *(unsigned __int16 *)(a1 + 4) + a2 + 6; /*0xffe100cc*/\n    *(_BYTE *)dst = *(_BYTE *)(a1 + 70); /*0xffe100d1*/\n    SwapBytes16((_WORD *)(dst + 1), __ROL2__(*(_WORD *)(a1 + 71), 8)); /*0xffe100de*/\n    dst += 3; /*0xffe100ea*/\n    CopyMemChecked((char *)dst, (char *)(a1 + 73), *(unsigned __int16 *)(a1 + 71)); /*0xffe100f0*/\n    v6 = *(unsigned __int16 *)(a1 + 71) + dst; /*0xffe100fb*/\n  }\n  else\n  {\n    sub_FFE105E2(a2, 150995008); /*0xffe10106*/\n    SwapBytes16((_WORD *)(a2 + 4), 0); /*0xffe10112*/\n    *(_BYTE *)(a2 + 6) = 0; /*0xffe10119*/\n... [1124 chars total]", "xrefs": {"to": [{"addr": "0xffe0e7c6", "type": "code"}, {"addr": "0xffe0f57a", "type": "code"}, {"addr": "0xffe0f73e", "type": "code"}, {"addr": "0xffe10189", "type": "code"}, {"addr": "0xffe102b5", "type": "code"}], "from": [{"addr": "0xffe1008a", "type": "code"}]}}, {"addr": "0xffe10130", "name": "TrEESequenceUpdate", "prototype": "int __fastcall(int, int, unsigned __int16 *p_i)", "size": "0x12a", "comments": {}, "asm": "TrEESequenceUpdate (.text @ 0xffe10130):\nffe10130  push ebp\nffe10131  mov ebp, esp\nffe10133  sub esp, 534h\nffe10139  push ebx\nffe1013a  mov ebx, ecx\nffe1013c  push esi\nffe1013d  mov esi, edx\nffe1013f  test ebx, ebx\nffe10141  jnz loc_FFE1014D\nffe10143  mov eax, 80000002h\nffe10148  jmp loc_FFE10254\nffe1014d  push edi\nffe1014e  mov edx, 49Dh\nffe10153  lea ecx, [ebp+var_534]\nffe10159  call ReallocatePool\nffe1015e  mov eax, 280h\nffe10163  mov [ebp+var_52E], 5C010000h\nffe1016d  mov ecx, esi\nffe1016f  mov [ebp+var_534], ax\nffe10176  call SwapBytes32\nffe1017b  lea edx, [ebp+var_522]\nffe10181  mov [ebp+var_52A], eax\nffe10187  xor ecx, ecx\nffe10189  call TrEESerializeCmdHeader\nffe1018e  lea edi, [ebp+var_522]\nffe10194  mov ecx, eax\nffe10196  add edi, eax\nffe10198  call SwapBytes32\nffe1019d  mov esi, [ebp+p_i]\nffe101a0  mov ecx, edi\nffe101a2  mov [ebp+var_526], eax\nffe101a8  movzx edx, word ptr [esi]\nffe101ab  rol dx, 8\nffe101af  call SwapBytes16\nffe101b4  movzx eax, word ptr [esi]\nffe101b7  lea ... [2321 chars total]", "code": "int __fastcall TrEESequenceUpdate(int a1, int a2, unsigned __int16 *p_i)\n{\n  int result; // eax\n  int v6; // eax\n  char *dst; // edi\n  int v8; // edx\n  unsigned int n0x93; // eax\n  int v10; // eax\n  __int16 n384; // [esp+8h] [ebp-534h] BYREF\n  int v12; // [esp+Ah] [ebp-532h]\n  int n1543569408; // [esp+Eh] [ebp-52Eh]\n  int v14; // [esp+12h] [ebp-52Ah]\n  int v15; // [esp+16h] [ebp-526h]\n  _BYTE v16[1166]; // [esp+1Ah] [ebp-522h] BYREF\n  _BYTE v17[2]; // [esp+4A8h] [ebp-94h] BYREF\n  int v18; // [esp+4AAh] [ebp-92h]\n  int v19; // [esp+4AEh] [ebp-8Eh]\n\n  if ( !a1 ) /*0xffe10141*/\n    return -2147483646; /*0xffe10143*/\n  ReallocatePool((int)&n384, 0x49Du); /*0xffe10159*/\n  n1543569408 = 1543569408; /*0xffe10163*/\n  n384 = 640; /*0xffe1016f*/\n  v14 = SwapBytes32(a2); /*0xffe10181*/\n  v6 = TrEESerializeCmdHeader(0, (int)v16); /*0xffe10189*/\n  dst = &v16[v6]; /*0xffe10196*/\n  v15 = SwapBytes32(v6); /*0xffe101a2*/\n  SwapBytes16(dst, __ROL2__(*p_i, 8)); /*0xffe101af*/\n  dst += 2; /*0xffe101ba*/\n ... [1810 chars total]", "xrefs": {"to": [{"addr": "0xffe0e9a6", "type": "code"}, {"addr": "0xffe0e9fb", "type": "code"}, {"addr": "0xffe0f050", "type": "code"}], "from": [{"addr": "0xffe10131", "type": "code"}]}}, {"addr": "0xffe1025a", "name": "TrEESequenceComplete", "prototype": "int __fastcall(int, int, char *p_n1024, char *p_count)", "size": "0x155", "comments": {}, "asm": "TrEESequenceComplete (.text @ 0xffe1025a):\nffe1025a  push ebp\nffe1025b  lea ebp, [esp-70h]\nffe1025f  sub esp, 57Ch\nffe10265  push ebx\nffe10266  mov ebx, ecx\nffe10268  push esi\nffe10269  mov esi, edx\nffe1026b  test ebx, ebx\nffe1026d  jnz loc_FFE10279\nffe1026f  mov eax, 80000002h\nffe10274  jmp loc_FFE103A8\nffe10279  push edi\nffe1027a  mov edx, 4A1h\nffe1027f  lea ecx, [ebp+70h+var_57C]\nffe10285  call ReallocatePool\nffe1028a  mov eax, 280h\nffe1028f  mov [ebp+70h+var_576], 3E010000h\nffe10299  mov ecx, esi\nffe1029b  mov [ebp+70h+var_57C], ax\nffe102a2  call SwapBytes32\nffe102a7  lea edx, [ebp+70h+var_56A]\nffe102ad  mov [ebp+70h+var_572], eax\nffe102b3  xor ecx, ecx\nffe102b5  call TrEESerializeCmdHeader\nffe102ba  lea edi, [ebp+70h+var_56A]\nffe102c0  mov ecx, eax\nffe102c2  add edi, eax\nffe102c4  call SwapBytes32\nffe102c9  mov esi, [ebp+70h+p_n1024]\nffe102cc  mov ecx, edi\nffe102ce  mov [ebp+70h+var_56E], eax\nffe102d4  movzx edx, word ptr [esi]\nffe102d7  rol dx, 8\nffe102db  call SwapBytes16\nffe102... [2796 chars total]", "code": "int __fastcall TrEESequenceComplete(int a1, int a2, char *p_n1024, char *p_count)\n{\n  int result; // eax\n  int v7; // eax\n  char *dst; // edi\n  char *v9; // edi\n  int v10; // edi\n  unsigned int n0xD5; // eax\n  int v12; // eax\n  unsigned int count; // [esp-4h] [ebp-518h]\n  __int16 n384; // [esp+8h] [ebp-50Ch] BYREF\n  int v15; // [esp+Ah] [ebp-50Ah]\n  int n1040252928; // [esp+Eh] [ebp-506h]\n  int v17; // [esp+12h] [ebp-502h]\n  int v18; // [esp+16h] [ebp-4FEh]\n  _BYTE v19[1170]; // [esp+1Ah] [ebp-4FAh] BYREF\n  char v20[2]; // [esp+4ACh] [ebp-68h] BYREF\n  int v21; // [esp+4AEh] [ebp-66h]\n  int v22; // [esp+4B2h] [ebp-62h]\n  char v23[2]; // [esp+4BAh] [ebp-5Ah] BYREF\n  char src[200]; // [esp+4BCh] [ebp-58h] BYREF\n\n  if ( !a1 ) /*0xffe1026d*/\n    return -2147483646; /*0xffe1026f*/\n  ReallocatePool((int)&n384, 0x4A1u); /*0xffe10285*/\n  n1040252928 = 1040252928; /*0xffe1028f*/\n  n384 = 640; /*0xffe1029b*/\n  v17 = SwapBytes32(a2); /*0xffe102ad*/\n  v7 = TrEESerializeCmdHeader(0, (int)v19); /*0xf... [2330 chars total]", "xrefs": {"to": [{"addr": "0xffe0ea18", "type": "code"}, {"addr": "0xffe0f13b", "type": "code"}], "from": [{"addr": "0xffe1025b", "type": "code"}]}}, {"addr": "0xffe103af", "name": "GetBootServicesTable", "prototype": "int()", "size": "0x32", "comments": {}, "asm": "GetBootServicesTable (.text @ 0xffe103af):\nffe103af  push ebp\nffe103b0  mov ebp, esp\nffe103b2  push ecx\nffe103b3  push ecx\nffe103b4  push esi\nffe103b5  lea ecx, [ebp+var_8]\nffe103b8  call DebugPrintAssertChain\nffe103bd  mov eax, [ebp+var_6]\nffe103c0  mov esi, [eax-4]\nffe103c3  test esi, esi\nffe103c5  jnz loc_FFE103DA\nffe103c7  push offset aPeiservicesVoi\nffe103cc  push 30h\nffe103ce  pop edx\nffe103cf  mov ecx, offset aEHsMdepkgLibra\nffe103d4  call DebugAssert\nffe103d9  pop ecx\nffe103da  mov eax, esi\nffe103dc  pop esi\nffe103dd  mov esp, ebp\nffe103df  pop ebp\nffe103e0  retn", "code": "int GetBootServicesTable()\n{\n  int v0; // esi\n  _BYTE v2[2]; // [esp+4h] [ebp-8h] BYREF\n  int v3; // [esp+6h] [ebp-6h]\n\n  sub_FFE10611(v2); /*0xffe103b8*/\n  v0 = *(_DWORD *)(v3 - 4); /*0xffe103c0*/\n  if ( !v0 ) /*0xffe103c5*/\n    sub_FFE1053E(\"PeiServices != ((void *) 0)\"); /*0xffe103d4*/\n  return v0; /*0xffe103dc*/\n}", "xrefs": {"to": [{"addr": "0xffe0e53e", "type": "code"}, {"addr": "0xffe0e92b", "type": "code"}, {"addr": "0xffe0f1a0", "type": "code"}, {"addr": "0xffe104e8", "type": "code"}, {"addr": "0xffe162aa", "type": "code"}, {"addr": "0xffe162fe", "type": "code"}], "from": [{"addr": "0xffe103b0", "type": "code"}]}}, {"addr": "0xffe103e1", "name": "CopyMemChecked", "prototype": "char *__fastcall(char *dst, char *src, unsigned int count)", "size": "0x71", "comments": {"0xffe10443": {"regular": "count"}, "0xffe10444": {"regular": "src"}, "0xffe10445": {"regular": "dst"}}, "asm": "CopyMemChecked (.text @ 0xffe103e1):\nffe103e1  push ebx\nffe103e2  mov ebx, [esp+4+count]\nffe103e6  push esi\nffe103e7  mov esi, ecx\nffe103e9  mov eax, esi\nffe103eb  push edi\nffe103ec  mov edi, edx\nffe103ee  test ebx, ebx\nffe103f0  jz loc_FFE1044E\nffe103f2  push ebp\nffe103f3  lea ebp, [ebx-1]\nffe103f6  not eax\nffe103f8  cmp ebp, eax\nffe103fa  jbe loc_FFE10417\nffe103fc  call GetDebugLib\nffe10401  test eax, eax\nffe10403  jz loc_FFE10417\nffe10405  push offset aLength10xfffff\nffe1040a  push 38h\nffe1040c  push offset aEHsMdepkgLibra_0\nffe10411  call dword ptr [eax+4]\nffe10414  add esp, 0Ch\nffe10417  mov eax, edi\nffe10419  not eax\nffe1041b  cmp ebp, eax\nffe1041d  pop ebp\nffe1041e  jbe loc_FFE1043B\nffe10420  call GetDebugLib\nffe10425  test eax, eax\nffe10427  jz loc_FFE1043B\nffe10429  push offset aLength10xfffff_0\nffe1042e  push 39h\nffe10430  push offset aEHsMdepkgLibra_0\nffe10435  call dword ptr [eax+4]\nffe10438  add esp, 0Ch\nffe1043b  cmp esi, edi\nffe1043d  jnz loc_FFE10443\nffe1043f  mov eax, ... [1202 chars total]", "code": "char *__fastcall CopyMemChecked(char *dst, char *src, unsigned int count)\n{\n  char *dst_1; // eax\n  int v6; // eax\n  int v7; // eax\n\n  dst_1 = dst; /*0xffe103e9*/\n  if ( count ) /*0xffe103f0*/\n  {\n    if ( count - 1 > ~(unsigned int)dst ) /*0xffe103fa*/\n    {\n      v6 = sub_FFE104E3(); /*0xffe103fc*/\n      if ( v6 ) /*0xffe10403*/\n        (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffe10411*/\n          \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\CopyMemWrapper.c\",\n          56,\n          \"(Length - 1) <= (0xFFFFFFFF - (UINTN)DestinationBuffer)\");\n    }\n    if ( count - 1 > ~(unsigned int)src ) /*0xffe1041e*/\n    {\n      v7 = sub_FFE104E3(); /*0xffe10420*/\n      if ( v7 ) /*0xffe10427*/\n        (*(void (__cdecl **)(const char *, int, const char *))(v7 + 4))( /*0xffe10435*/\n          \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\CopyMemWrapper.c\",\n          57,\n          \"(Length - 1) <= (0xFFFFFFFF - (UINTN)SourceBuffer)\");\n    }\n    if ( dst == src ) /*0xff... [1141 chars total]", "xrefs": {"to": [{"addr": "0xffe0e4b1", "type": "code"}, {"addr": "0xffe0e98e", "type": "code"}, {"addr": "0xffe0e9e9", "type": "code"}, {"addr": "0xffe0ea61", "type": "code"}, {"addr": "0xffe0ecac", "type": "code"}, {"addr": "0xffe0ece0", "type": "code"}, {"addr": "0xffe0ecfd", "type": "code"}, {"addr": "0xffe0ed32", "type": "code"}, {"addr": "0xffe0ed65", "type": "code"}, {"addr": "0xffe0ed98", "type": "code"}], "from": [{"addr": "0xffe103e2", "type": "code"}]}}, {"addr": "0xffe10452", "name": "AllocatePool", "prototype": "void *__fastcall(void *buf, unsigned int count)", "size": "0x3e", "comments": {"0xffe10480": {"regular": "value"}, "0xffe10482": {"regular": "count"}, "0xffe10483": {"regular": "buf"}}, "asm": "AllocatePool (.text @ 0xffe10452):\nffe10452  push ebx\nffe10453  push esi\nffe10454  push edi\nffe10455  mov edi, edx\nffe10457  or esi, 0FFFFFFFFh\nffe1045a  mov ebx, ecx\nffe1045c  sub esi, ebx\nffe1045e  lea eax, [edi-1]\nffe10461  cmp eax, esi\nffe10463  jbe loc_FFE10480\nffe10465  call GetDebugLib\nffe1046a  test eax, eax\nffe1046c  jz loc_FFE10480\nffe1046e  push offset aLength10xfffff_1\nffe10473  push 36h\nffe10475  push offset aEHsMdepkgLibra_1\nffe1047a  call dword ptr [eax+4]\nffe1047d  add esp, 0Ch\nffe10480  push 0\nffe10482  push edi\nffe10483  push ebx\nffe10484  call SetMem\nffe10489  add esp, 0Ch\nffe1048c  pop edi\nffe1048d  pop esi\nffe1048e  pop ebx\nffe1048f  retn", "code": "void *__fastcall AllocatePool(void *buf, unsigned int count)\n{\n  int DebugLib; // eax\n\n  if ( count - 1 > -1 - (int)buf ) /*0xffe10463*/\n  {\n    DebugLib = GetDebugLib(); /*0xffe10465*/\n    if ( DebugLib ) /*0xffe1046c*/\n      (*(void (__cdecl **)(const char *, int, const char *))(DebugLib + 4))( /*0xffe1047a*/\n        \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\SetMemWrapper.c\",\n        54,\n        \"(Length - 1) <= (0xFFFFFFFF - (UINTN)Buffer)\");\n  }\n  return SetMem(buf, count, 0); /*0xffe1048c*/\n}", "xrefs": {"to": [{"addr": "0xffe0ec05", "type": "code"}, {"addr": "0xffe0ec20", "type": "code"}, {"addr": "0xffe0ec39", "type": "code"}, {"addr": "0xffe0ec52", "type": "code"}, {"addr": "0xffe0ec6b", "type": "code"}, {"addr": "0xffe0f1d5", "type": "code"}, {"addr": "0xffe0f31b", "type": "code"}, {"addr": "0xffe0f42e", "type": "code"}, {"addr": "0xffe118f4", "type": "code"}, {"addr": "0xffe11a56", "type": "code"}], "from": [{"addr": "0xffe10453", "type": "code"}]}}, {"addr": "0xffe10490", "name": "ReallocatePool", "prototype": "void *__fastcall(int p_n384, unsigned int n78)", "size": "0x53", "comments": {"0xffe104d6": {"regular": "count"}, "0xffe104d7": {"regular": "buf"}}, "asm": "ReallocatePool (.text @ 0xffe10490):\nffe10490  push ebx\nffe10491  push esi\nffe10492  mov esi, ecx\nffe10494  mov ebx, offset aEHsMdepkgLibra_2\nffe10499  push edi\nffe1049a  mov edi, edx\nffe1049c  test esi, esi\nffe1049e  jnz loc_FFE104B7\nffe104a0  call GetDebugLib\nffe104a5  test eax, eax\nffe104a7  jz loc_FFE104B7\nffe104a9  push offset aBufferVoid0\nffe104ae  push 35h\nffe104b0  push ebx\nffe104b1  call dword ptr [eax+4]\nffe104b4  add esp, 0Ch\nffe104b7  mov eax, esi\nffe104b9  neg eax\nffe104bb  cmp edi, eax\nffe104bd  jbe loc_FFE104D6\nffe104bf  call GetDebugLib\nffe104c4  test eax, eax\nffe104c6  jz loc_FFE104D6\nffe104c8  push offset aLength0xffffff\nffe104cd  push 36h\nffe104cf  push ebx\nffe104d0  call dword ptr [eax+4]\nffe104d3  add esp, 0Ch\nffe104d6  push edi\nffe104d7  push esi\nffe104d8  call ZeroMem\nffe104dd  pop ecx\nffe104de  pop ecx\nffe104df  pop edi\nffe104e0  pop esi\nffe104e1  pop ebx\nffe104e2  retn", "code": "void *__fastcall ReallocatePool(int p_n384, unsigned int n78)\n{\n  int DebugLib; // eax\n  int v5; // eax\n\n  if ( !p_n384 ) /*0xffe1049e*/\n  {\n    DebugLib = GetDebugLib(); /*0xffe104a0*/\n    if ( DebugLib ) /*0xffe104a7*/\n      (*(void (__cdecl **)(const char *, int, const char *))(DebugLib + 4))( /*0xffe104b1*/\n        \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\ZeroMemWrapper.c\",\n        53,\n        \"Buffer != ((void *) 0)\");\n  }\n  if ( n78 > -p_n384 ) /*0xffe104bd*/\n  {\n    v5 = GetDebugLib(); /*0xffe104bf*/\n    if ( v5 ) /*0xffe104c6*/\n      (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffe104d0*/\n        \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\ZeroMemWrapper.c\",\n        54,\n        \"Length <= (0xFFFFFFFF - (UINTN)Buffer + 1)\");\n  }\n  return ZeroMem((void *)p_n384, n78); /*0xffe104df*/\n}", "xrefs": {"to": [{"addr": "0xffe0ffda", "type": "code"}, {"addr": "0xffe10159", "type": "code"}, {"addr": "0xffe10285", "type": "code"}], "from": [{"addr": "0xffe10491", "type": "code"}]}}]}, "content": [{"type": "text", "text": "{\"format\":\"json\",\"functions\":[{\"addr\":\"0xffe0fc2c\",\"name\":\"ProcessTpmSupportDisabled\",\"prototype\":\"int __thiscall(void *this)\",\"size\":\"0x116\",\"comments\":{\"0xffe0fc92\":{\"regular\":\"this\"},\"0xffe0fca1\":{\"regular\":\"this\"}},\"asm\":\"ProcessTpmSupportDisabled (.text @ 0xffe0fc2c):\\nffe0fc2c  push ebp\\nffe0fc2d  mov ebp, esp\\nffe0fc2f  and esp, 0FFFFFFF8h\\nffe0fc32  push esi\\nffe0fc33  push edi\\nffe0fc34  push offset aProcesstpmsupp\\nffe0fc39  push 40h\\nffe0fc3b  mov edi, ecx\\nffe0fc3d  call DebugPrint\\nffe0fc42  pop ecx\\nffe0fc43  pop ecx\\nffe0fc44  call Tpm20GetInterfaceType\\nffe0fc49  mov InterfaceType, al\\nffe0fc4e  test al, al\\nffe0fc50  jnz loc_FFE0FC68\\nffe0fc52  cmp byte ptr ds:0FED40000h, 0FFh\\nffe0fc59  jz loc_FFE0FC88\\nffe0fc5b  cmp ds:0FED40000h, al\\nffe0fc61  jz loc_FFE0FC88\\nffe0fc63  mov al, InterfaceType\\nffe0fc68  cmp al, 1\\nffe0fc6a  jnz loc_FFE0FC92\\nffe0fc6c  call Tpm20GetDeviceType\\nffe0fc71  cmp al, 2\\nffe0fc73  jz loc_FFE0FC92\\nffe0fc75  call Tpm20GetDeviceType\\nffe0fc7a  cmp al, 1\\nffe0fc7c  jz loc_FFE0FC92\\nffe0fc7e  mov eax, 80000003h\\nffe0fc83  jmp loc_FFE0FD3C\\nffe0fc88  mov eax, 8000000Eh\\nffe0fc8d  jmp loc_FFE0FD3C\\nffe0fc92  mov ecx, edi\\nffe0fc94  call Tpm2Startup\\nffe0fc99  test eax, eax\\nffe0fc9b  js loc_FFE0FD3C\\nffe0... [2350 chars total]\",\"code\":\"int __thiscall ProcessTpmSupportDisabled(void *this)\\n{\\n  char InterfaceType; // al\\n  int result; // eax\\n  int v4; // ecx\\n  int v5; // eax\\n  int v6; // ecx\\n  int v7; // eax\\n  unsigned int n8; // ecx\\n  int v9; // esi\\n\\n  DebugPrint(64, \\\" ProcessTpmSupportDisabled Entry \\\\n\\\"); /*0xffe0fc3d*/\\n  InterfaceType = Tpm20GetInterfaceType(); /*0xffe0fc44*/\\n  ::InterfaceType = InterfaceType; /*0xffe0fc49*/\\n  if ( !InterfaceType ) /*0xffe0fc50*/\\n  {\\n    if ( MEMORY[0xFED40000] == 0xFF || !MEMORY[0xFED40000] ) /*0xffe0fc61*/\\n      return -2147483634; /*0xffe0fc8d*/\\n    InterfaceType = ::InterfaceType; /*0xffe0fc63*/\\n  }\\n  if ( InterfaceType == 1 && Tpm20GetDeviceType() != 2 && Tpm20GetDeviceType() != 1 ) /*0xffe0fc7c*/\\n    return -2147483645; /*0xffe0fc7e*/\\n  result = sub_FFE0F2C2(this); /*0xffe0fc94*/\\n  if ( result >= 0 )\\n  {\\n    result = sub_FFE0F3F9(this); /*0xffe0fca3*/\\n    if ( result >= 0 )\\n    {\\n      v5 = sub_FFE0F536(v4, v4, 0x4000000Bu); /*0xffe0fcb8*/\\n      if ( v5 < 0 ) /*0xffe0fcc2*/\\n    ... [1725 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0fd90\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe0fc2d\",\"type\":\"code\"}]}},{\"addr\":\"0xffe0fd42\",\"name\":\"TrEEPeiEntry\",\"prototype\":\"int __fastcall(int, int *SystemTable)\",\"size\":\"0x27b\",\"comments\":{\"0xffe0fddd\":{\"regular\":\"SystemTable\"},\"0xffe0fddf\":{\"regular\":\"unsigned __int8\"},\"0xffe0fe4a\":{\"regular\":\"SystemTable\"},\"0xffe0fe4c\":{\"regular\":\"unsigned __int8\"},\"0xffe0fe9f\":{\"regular\":\"_DWORD *\"},\"0xffe0fea4\":{\"regular\":\"int *\"},\"0xffe0fea5\":{\"regular\":\"n4136\"},\"0xffe0feaa\":{\"regular\":\"this\"}},\"asm\":\"TrEEPeiEntry (.text @ 0xffe0fd42):\\nffe0fd42  push ebp\\nffe0fd43  mov ebp, esp\\nffe0fd45  sub esp, 24h\\nffe0fd48  lea ecx, [ebp+var_4]\\nffe0fd4b  push ebx\\nffe0fd4c  push esi\\nffe0fd4d  push ecx\\nffe0fd4e  mov esi, edx\\nffe0fd50  xor bl, bl\\nffe0fd52  push 0\\nffe0fd54  push 0\\nffe0fd56  push offset unk_FFE173C8\\nffe0fd5b  mov eax, [esi]\\nffe0fd5d  push esi\\nffe0fd5e  call dword ptr [eax+20h]\\nffe0fd61  add esp, 14h\\nffe0fd64  test eax, eax\\nffe0fd66  js loc_FFE0FFB7\\nffe0fd6c  push edi\\nffe0fd6d  lea eax, [ebp+var_24]\\nffe0fd70  push eax\\nffe0fd71  mov eax, [ebp+var_4]\\nffe0fd74  push esi\\nffe0fd75  call dword ptr [eax+4]\\nffe0fd78  mov edi, eax\\nffe0fd7a  pop ecx\\nffe0fd7b  pop ecx\\nffe0fd7c  test edi, edi\\nffe0fd7e  js loc_FFE0FFB6\\nffe0fd84  cmp [ebp+var_1E], bl\\nffe0fd87  jz loc_FFE0FDA3\\nffe0fd89  cmp [ebp+var_24], bl\\nffe0fd8c  jnz loc_FFE0FD9A\\nffe0fd8e  mov ecx, esi\\nffe0fd90  call ProcessTpmSupportDisabled\\nffe0fd95  jmp loc_FFE0FFB6\\nffe0fd9a  call Tpm20IsSupportedVidDid\\nffe0fd9f  test al, al\\nffe0fda1  jz loc_FF... [5745 chars total]\",\"code\":\"int __fastcall TrEEPeiEntry(int a1, int *SystemTable)\\n{\\n  char v3; // bl\\n  int result; // eax\\n  int v5; // edi\\n  char InterfaceType; // al\\n  int v7; // eax\\n  __int64 v8; // rcx\\n  unsigned __int8 n2; // al\\n  _DWORD *v10; // edx\\n  int v11; // eax\\n  int DebugLib; // eax\\n  _BYTE v13[5]; // [esp+8h] [ebp-24h] BYREF\\n  unsigned __int8 n2_1; // [esp+Dh] [ebp-1Fh]\\n  char v15; // [esp+Eh] [ebp-1Eh]\\n  bool v16; // [esp+1Eh] [ebp-Eh]\\n  int v17; // [esp+1Fh] [ebp-Dh]\\n  int v18; // [esp+24h] [ebp-8h] BYREF\\n  int v19; // [esp+28h] [ebp-4h] BYREF\\n\\n  v3 = 0; /*0xffe0fd50*/\\n  result = (*(int (__cdecl **)(int *, void *, _DWORD, _DWORD, int *))(*SystemTable + 32))( /*0xffe0fd5e*/\\n             SystemTable,\\n             &unk_FFE173C8,\\n             0,\\n             0,\\n             &v19);\\n  if ( result < 0 ) /*0xffe0fd66*/\\n    return result; /*0xffe0fd66*/\\n  result = (*(int (__cdecl **)(int *, _BYTE *))(v19 + 4))(SystemTable, v13); /*0xffe0fd75*/\\n  v5 = result; /*0xffe0fd78*/\\n  if ( result < 0 ) /*0xffe0fd7e*/... [5032 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0e20f\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe0fd43\",\"type\":\"code\"}]}},{\"addr\":\"0xffe0ffbd\",\"name\":\"TrEEPeiInstallPpi\",\"prototype\":\"int __cdecl(_DWORD *)\",\"size\":\"0xcc\",\"comments\":{},\"asm\":\"TrEEPeiInstallPpi (.text @ 0xffe0ffbd):\\nffe0ffbd  push ebp\\nffe0ffbe  mov ebp, esp\\nffe0ffc0  sub esp, 60h\\nffe0ffc3  push esi\\nffe0ffc4  mov esi, ecx\\nffe0ffc6  test esi, esi\\nffe0ffc8  jnz loc_FFE0FFD4\\nffe0ffca  mov eax, 80000002h\\nffe0ffcf  jmp loc_FFE10084\\nffe0ffd4  push 4Eh\\nffe0ffd6  pop edx\\nffe0ffd7  lea ecx, [ebp+var_60]\\nffe0ffda  call ReallocatePool\\nffe0ffdf  mov eax, 180h\\nffe0ffe4  mov [ebp+var_5A], 86010000h\\nffe0ffeb  xor edx, edx\\nffe0ffed  mov [ebp+var_60], ax\\nffe0fff1  lea ecx, [ebp+var_56]\\nffe0fff4  call SwapBytes16\\nffe0fff9  mov edx, 1200h\\nffe0fffe  lea ecx, [ebp+var_54]\\nffe10001  call SwapBytes16\\nffe10006  push 0Eh\\nffe10008  pop ecx\\nffe10009  call SwapBytes32\\nffe1000e  mov [ebp+var_5E], eax\\nffe10011  lea eax, [ebp+var_10]\\nffe10014  push eax\\nffe10015  push 0Eh\\nffe10017  lea eax, [ebp+var_60]\\nffe1001a  push eax\\nffe1001b  push 0Eh\\nffe1001d  push esi\\nffe1001e  call dword ptr [esi+0Ch]\\nffe10021  add esp, 14h\\nffe10024  test eax, eax\\nffe10026  js loc_FFE10084\\nffe10028  mov ecx, [ebp+v... [1777 chars total]\",\"code\":\"int __cdecl TrEEPeiInstallPpi(_DWORD *a1)\\n{\\n  int v1; // ecx\\n  int v2; // esi\\n  int result; // eax\\n  unsigned int n0xE; // eax\\n  int v5; // eax\\n  __int16 n384; // [esp+4h] [ebp-60h] BYREF\\n  int v7; // [esp+6h] [ebp-5Eh]\\n  int v8; // [esp+Ah] [ebp-5Ah]\\n  _BYTE v9[2]; // [esp+Eh] [ebp-56h] BYREF\\n  _BYTE v10[68]; // [esp+10h] [ebp-54h] BYREF\\n  _BYTE v11[2]; // [esp+54h] [ebp-10h] BYREF\\n  int v12; // [esp+56h] [ebp-Eh]\\n  int v13; // [esp+5Ah] [ebp-Ah]\\n  int v14; // [esp+5Eh] [ebp-6h]\\n\\n  v2 = v1; /*0xffe0ffc4*/\\n  if ( !v1 ) /*0xffe0ffc8*/\\n    return -2147483646; /*0xffe0ffca*/\\n  sub_FFE10490(&n384, 78); /*0xffe0ffda*/\\n  v8 = -2046754816; /*0xffe0ffe4*/\\n  n384 = 384; /*0xffe0ffed*/\\n  sub_FFE105B3(v9, 0); /*0xffe0fff4*/\\n  sub_FFE105B3(v10, 4608); /*0xffe10001*/\\n  v7 = sub_FFE10573(14); /*0xffe1000e*/\\n  result = (*(int (__cdecl **)(int, int, __int16 *, int, _BYTE *))(v2 + 12))(v2, 14, &n384, 14, v11); /*0xffe1001e*/\\n  if ( result >= 0 )\\n  {\\n    n0xE = sub_FFE10573(v12); /*0xffe1002b*/\\n    if (... [1538 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0e962\",\"type\":\"code\"},{\"addr\":\"0xffe0ef60\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe0ffbe\",\"type\":\"code\"}]}},{\"addr\":\"0xffe10089\",\"name\":\"TrEESerializeCmdHeader\",\"prototype\":\"int __fastcall(int, int)\",\"size\":\"0xa7\",\"comments\":{},\"asm\":\"TrEESerializeCmdHeader (.text @ 0xffe10089):\\nffe10089  push ebx\\nffe1008a  push esi\\nffe1008b  mov ebx, ecx\\nffe1008d  push edi\\nffe1008e  mov edi, edx\\nffe10090  test ebx, ebx\\nffe10092  jz loc_FFE100FF\\nffe10094  mov ecx, [ebx]\\nffe10096  call SwapBytes32\\nffe1009b  mov edx, eax\\nffe1009d  mov ecx, edi\\nffe1009f  call WriteUnaligned32\\nffe100a4  movzx edx, word ptr [ebx+4]\\nffe100a8  lea esi, [edi+4]\\nffe100ab  rol dx, 8\\nffe100af  mov ecx, esi\\nffe100b1  call SwapBytes16\\nffe100b6  movzx eax, word ptr [ebx+4]\\nffe100ba  lea edx, [ebx+6]\\nffe100bd  add esi, 2\\nffe100c0  push eax\\nffe100c1  mov ecx, esi\\nffe100c3  call CopyMemChecked\\nffe100c8  movzx eax, word ptr [ebx+4]\\nffe100cc  add esi, eax\\nffe100ce  mov al, [ebx+46h]\\nffe100d1  mov [esi], al\\nffe100d3  lea ecx, [esi+1]\\nffe100d6  movzx edx, word ptr [ebx+47h]\\nffe100da  rol dx, 8\\nffe100de  call SwapBytes16\\nffe100e3  movzx eax, word ptr [ebx+47h]\\nffe100e7  lea edx, [ebx+49h]\\nffe100ea  add esi, 3\\nffe100ed  push eax\\nffe100ee  mov ecx, esi\\nffe100f0  call CopyM... [1565 chars total]\",\"code\":\"int __fastcall TrEESerializeCmdHeader(int a1, int a2)\\n{\\n  int n150995008; // eax\\n  int dst; // esi\\n  int v6; // esi\\n\\n  if ( a1 ) /*0xffe10092*/\\n  {\\n    n150995008 = SwapBytes32(*(_DWORD *)a1); /*0xffe10096*/\\n    sub_FFE105E2(a2, n150995008); /*0xffe1009f*/\\n    SwapBytes16((_WORD *)(a2 + 4), __ROL2__(*(_WORD *)(a1 + 4), 8)); /*0xffe100b1*/\\n    CopyMemChecked((char *)(a2 + 6), (char *)(a1 + 6), *(unsigned __int16 *)(a1 + 4)); /*0xffe100c3*/\\n    dst = *(unsigned __int16 *)(a1 + 4) + a2 + 6; /*0xffe100cc*/\\n    *(_BYTE *)dst = *(_BYTE *)(a1 + 70); /*0xffe100d1*/\\n    SwapBytes16((_WORD *)(dst + 1), __ROL2__(*(_WORD *)(a1 + 71), 8)); /*0xffe100de*/\\n    dst += 3; /*0xffe100ea*/\\n    CopyMemChecked((char *)dst, (char *)(a1 + 73), *(unsigned __int16 *)(a1 + 71)); /*0xffe100f0*/\\n    v6 = *(unsigned __int16 *)(a1 + 71) + dst; /*0xffe100fb*/\\n  }\\n  else\\n  {\\n    sub_FFE105E2(a2, 150995008); /*0xffe10106*/\\n    SwapBytes16((_WORD *)(a2 + 4), 0); /*0xffe10112*/\\n    *(_BYTE *)(a2 + 6) = 0; /*0xffe10119*/\\n... [1124 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0e7c6\",\"type\":\"code\"},{\"addr\":\"0xffe0f57a\",\"type\":\"code\"},{\"addr\":\"0xffe0f73e\",\"type\":\"code\"},{\"addr\":\"0xffe10189\",\"type\":\"code\"},{\"addr\":\"0xffe102b5\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe1008a\",\"type\":\"code\"}]}},{\"addr\":\"0xffe10130\",\"name\":\"TrEESequenceUpdate\",\"prototype\":\"int __fastcall(int, int, unsigned __int16 *p_i)\",\"size\":\"0x12a\",\"comments\":{},\"asm\":\"TrEESequenceUpdate (.text @ 0xffe10130):\\nffe10130  push ebp\\nffe10131  mov ebp, esp\\nffe10133  sub esp, 534h\\nffe10139  push ebx\\nffe1013a  mov ebx, ecx\\nffe1013c  push esi\\nffe1013d  mov esi, edx\\nffe1013f  test ebx, ebx\\nffe10141  jnz loc_FFE1014D\\nffe10143  mov eax, 80000002h\\nffe10148  jmp loc_FFE10254\\nffe1014d  push edi\\nffe1014e  mov edx, 49Dh\\nffe10153  lea ecx, [ebp+var_534]\\nffe10159  call ReallocatePool\\nffe1015e  mov eax, 280h\\nffe10163  mov [ebp+var_52E], 5C010000h\\nffe1016d  mov ecx, esi\\nffe1016f  mov [ebp+var_534], ax\\nffe10176  call SwapBytes32\\nffe1017b  lea edx, [ebp+var_522]\\nffe10181  mov [ebp+var_52A], eax\\nffe10187  xor ecx, ecx\\nffe10189  call TrEESerializeCmdHeader\\nffe1018e  lea edi, [ebp+var_522]\\nffe10194  mov ecx, eax\\nffe10196  add edi, eax\\nffe10198  call SwapBytes32\\nffe1019d  mov esi, [ebp+p_i]\\nffe101a0  mov ecx, edi\\nffe101a2  mov [ebp+var_526], eax\\nffe101a8  movzx edx, word ptr [esi]\\nffe101ab  rol dx, 8\\nffe101af  call SwapBytes16\\nffe101b4  movzx eax, word ptr [esi]\\nffe101b7  lea ... [2321 chars total]\",\"code\":\"int __fastcall TrEESequenceUpdate(int a1, int a2, unsigned __int16 *p_i)\\n{\\n  int result; // eax\\n  int v6; // eax\\n  char *dst; // edi\\n  int v8; // edx\\n  unsigned int n0x93; // eax\\n  int v10; // eax\\n  __int16 n384; // [esp+8h] [ebp-534h] BYREF\\n  int v12; // [esp+Ah] [ebp-532h]\\n  int n1543569408; // [esp+Eh] [ebp-52Eh]\\n  int v14; // [esp+12h] [ebp-52Ah]\\n  int v15; // [esp+16h] [ebp-526h]\\n  _BYTE v16[1166]; // [esp+1Ah] [ebp-522h] BYREF\\n  _BYTE v17[2]; // [esp+4A8h] [ebp-94h] BYREF\\n  int v18; // [esp+4AAh] [ebp-92h]\\n  int v19; // [esp+4AEh] [ebp-8Eh]\\n\\n  if ( !a1 ) /*0xffe10141*/\\n    return -2147483646; /*0xffe10143*/\\n  ReallocatePool((int)&n384, 0x49Du); /*0xffe10159*/\\n  n1543569408 = 1543569408; /*0xffe10163*/\\n  n384 = 640; /*0xffe1016f*/\\n  v14 = SwapBytes32(a2); /*0xffe10181*/\\n  v6 = TrEESerializeCmdHeader(0, (int)v16); /*0xffe10189*/\\n  dst = &v16[v6]; /*0xffe10196*/\\n  v15 = SwapBytes32(v6); /*0xffe101a2*/\\n  SwapBytes16(dst, __ROL2__(*p_i, 8)); /*0xffe101af*/\\n  dst += 2; /*0xffe101ba*/\\n ... [1810 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0e9a6\",\"type\":\"code\"},{\"addr\":\"0xffe0e9fb\",\"type\":\"code\"},{\"addr\":\"0xffe0f050\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe10131\",\"type\":\"code\"}]}},{\"addr\":\"0xffe1025a\",\"name\":\"TrEESequenceComplete\",\"prototype\":\"int __fastcall(int, int, char *p_n1024, char *p_count)\",\"size\":\"0x155\",\"comments\":{},\"asm\":\"TrEESequenceComplete (.text @ 0xffe1025a):\\nffe1025a  push ebp\\nffe1025b  lea ebp, [esp-70h]\\nffe1025f  sub esp, 57Ch\\nffe10265  push ebx\\nffe10266  mov ebx, ecx\\nffe10268  push esi\\nffe10269  mov esi, edx\\nffe1026b  test ebx, ebx\\nffe1026d  jnz loc_FFE10279\\nffe1026f  mov eax, 80000002h\\nffe10274  jmp loc_FFE103A8\\nffe10279  push edi\\nffe1027a  mov edx, 4A1h\\nffe1027f  lea ecx, [ebp+70h+var_57C]\\nffe10285  call ReallocatePool\\nffe1028a  mov eax, 280h\\nffe1028f  mov [ebp+70h+var_576], 3E010000h\\nffe10299  mov ecx, esi\\nffe1029b  mov [ebp+70h+var_57C], ax\\nffe102a2  call SwapBytes32\\nffe102a7  lea edx, [ebp+70h+var_56A]\\nffe102ad  mov [ebp+70h+var_572], eax\\nffe102b3  xor ecx, ecx\\nffe102b5  call TrEESerializeCmdHeader\\nffe102ba  lea edi, [ebp+70h+var_56A]\\nffe102c0  mov ecx, eax\\nffe102c2  add edi, eax\\nffe102c4  call SwapBytes32\\nffe102c9  mov esi, [ebp+70h+p_n1024]\\nffe102cc  mov ecx, edi\\nffe102ce  mov [ebp+70h+var_56E], eax\\nffe102d4  movzx edx, word ptr [esi]\\nffe102d7  rol dx, 8\\nffe102db  call SwapBytes16\\nffe102... [2796 chars total]\",\"code\":\"int __fastcall TrEESequenceComplete(int a1, int a2, char *p_n1024, char *p_count)\\n{\\n  int result; // eax\\n  int v7; // eax\\n  char *dst; // edi\\n  char *v9; // edi\\n  int v10; // edi\\n  unsigned int n0xD5; // eax\\n  int v12; // eax\\n  unsigned int count; // [esp-4h] [ebp-518h]\\n  __int16 n384; // [esp+8h] [ebp-50Ch] BYREF\\n  int v15; // [esp+Ah] [ebp-50Ah]\\n  int n1040252928; // [esp+Eh] [ebp-506h]\\n  int v17; // [esp+12h] [ebp-502h]\\n  int v18; // [esp+16h] [ebp-4FEh]\\n  _BYTE v19[1170]; // [esp+1Ah] [ebp-4FAh] BYREF\\n  char v20[2]; // [esp+4ACh] [ebp-68h] BYREF\\n  int v21; // [esp+4AEh] [ebp-66h]\\n  int v22; // [esp+4B2h] [ebp-62h]\\n  char v23[2]; // [esp+4BAh] [ebp-5Ah] BYREF\\n  char src[200]; // [esp+4BCh] [ebp-58h] BYREF\\n\\n  if ( !a1 ) /*0xffe1026d*/\\n    return -2147483646; /*0xffe1026f*/\\n  ReallocatePool((int)&n384, 0x4A1u); /*0xffe10285*/\\n  n1040252928 = 1040252928; /*0xffe1028f*/\\n  n384 = 640; /*0xffe1029b*/\\n  v17 = SwapBytes32(a2); /*0xffe102ad*/\\n  v7 = TrEESerializeCmdHeader(0, (int)v19); /*0xf... [2330 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0ea18\",\"type\":\"code\"},{\"addr\":\"0xffe0f13b\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe1025b\",\"type\":\"code\"}]}},{\"addr\":\"0xffe103af\",\"name\":\"GetBootServicesTable\",\"prototype\":\"int()\",\"size\":\"0x32\",\"comments\":{},\"asm\":\"GetBootServicesTable (.text @ 0xffe103af):\\nffe103af  push ebp\\nffe103b0  mov ebp, esp\\nffe103b2  push ecx\\nffe103b3  push ecx\\nffe103b4  push esi\\nffe103b5  lea ecx, [ebp+var_8]\\nffe103b8  call DebugPrintAssertChain\\nffe103bd  mov eax, [ebp+var_6]\\nffe103c0  mov esi, [eax-4]\\nffe103c3  test esi, esi\\nffe103c5  jnz loc_FFE103DA\\nffe103c7  push offset aPeiservicesVoi\\nffe103cc  push 30h\\nffe103ce  pop edx\\nffe103cf  mov ecx, offset aEHsMdepkgLibra\\nffe103d4  call DebugAssert\\nffe103d9  pop ecx\\nffe103da  mov eax, esi\\nffe103dc  pop esi\\nffe103dd  mov esp, ebp\\nffe103df  pop ebp\\nffe103e0  retn\",\"code\":\"int GetBootServicesTable()\\n{\\n  int v0; // esi\\n  _BYTE v2[2]; // [esp+4h] [ebp-8h] BYREF\\n  int v3; // [esp+6h] [ebp-6h]\\n\\n  sub_FFE10611(v2); /*0xffe103b8*/\\n  v0 = *(_DWORD *)(v3 - 4); /*0xffe103c0*/\\n  if ( !v0 ) /*0xffe103c5*/\\n    sub_FFE1053E(\\\"PeiServices != ((void *) 0)\\\"); /*0xffe103d4*/\\n  return v0; /*0xffe103dc*/\\n}\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0e53e\",\"type\":\"code\"},{\"addr\":\"0xffe0e92b\",\"type\":\"code\"},{\"addr\":\"0xffe0f1a0\",\"type\":\"code\"},{\"addr\":\"0xffe104e8\",\"type\":\"code\"},{\"addr\":\"0xffe162aa\",\"type\":\"code\"},{\"addr\":\"0xffe162fe\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe103b0\",\"type\":\"code\"}]}},{\"addr\":\"0xffe103e1\",\"name\":\"CopyMemChecked\",\"prototype\":\"char *__fastcall(char *dst, char *src, unsigned int count)\",\"size\":\"0x71\",\"comments\":{\"0xffe10443\":{\"regular\":\"count\"},\"0xffe10444\":{\"regular\":\"src\"},\"0xffe10445\":{\"regular\":\"dst\"}},\"asm\":\"CopyMemChecked (.text @ 0xffe103e1):\\nffe103e1  push ebx\\nffe103e2  mov ebx, [esp+4+count]\\nffe103e6  push esi\\nffe103e7  mov esi, ecx\\nffe103e9  mov eax, esi\\nffe103eb  push edi\\nffe103ec  mov edi, edx\\nffe103ee  test ebx, ebx\\nffe103f0  jz loc_FFE1044E\\nffe103f2  push ebp\\nffe103f3  lea ebp, [ebx-1]\\nffe103f6  not eax\\nffe103f8  cmp ebp, eax\\nffe103fa  jbe loc_FFE10417\\nffe103fc  call GetDebugLib\\nffe10401  test eax, eax\\nffe10403  jz loc_FFE10417\\nffe10405  push offset aLength10xfffff\\nffe1040a  push 38h\\nffe1040c  push offset aEHsMdepkgLibra_0\\nffe10411  call dword ptr [eax+4]\\nffe10414  add esp, 0Ch\\nffe10417  mov eax, edi\\nffe10419  not eax\\nffe1041b  cmp ebp, eax\\nffe1041d  pop ebp\\nffe1041e  jbe loc_FFE1043B\\nffe10420  call GetDebugLib\\nffe10425  test eax, eax\\nffe10427  jz loc_FFE1043B\\nffe10429  push offset aLength10xfffff_0\\nffe1042e  push 39h\\nffe10430  push offset aEHsMdepkgLibra_0\\nffe10435  call dword ptr [eax+4]\\nffe10438  add esp, 0Ch\\nffe1043b  cmp esi, edi\\nffe1043d  jnz loc_FFE10443\\nffe1043f  mov eax, ... [1202 chars total]\",\"code\":\"char *__fastcall CopyMemChecked(char *dst, char *src, unsigned int count)\\n{\\n  char *dst_1; // eax\\n  int v6; // eax\\n  int v7; // eax\\n\\n  dst_1 = dst; /*0xffe103e9*/\\n  if ( count ) /*0xffe103f0*/\\n  {\\n    if ( count - 1 > ~(unsigned int)dst ) /*0xffe103fa*/\\n    {\\n      v6 = sub_FFE104E3(); /*0xffe103fc*/\\n      if ( v6 ) /*0xffe10403*/\\n        (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffe10411*/\\n          \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CopyMemWrapper.c\\\",\\n          56,\\n          \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)DestinationBuffer)\\\");\\n    }\\n    if ( count - 1 > ~(unsigned int)src ) /*0xffe1041e*/\\n    {\\n      v7 = sub_FFE104E3(); /*0xffe10420*/\\n      if ( v7 ) /*0xffe10427*/\\n        (*(void (__cdecl **)(const char *, int, const char *))(v7 + 4))( /*0xffe10435*/\\n          \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\CopyMemWrapper.c\\\",\\n          57,\\n          \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)SourceBuffer)\\\");\\n    }\\n    if ( dst == src ) /*0xff... [1141 chars total]\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0e4b1\",\"type\":\"code\"},{\"addr\":\"0xffe0e98e\",\"type\":\"code\"},{\"addr\":\"0xffe0e9e9\",\"type\":\"code\"},{\"addr\":\"0xffe0ea61\",\"type\":\"code\"},{\"addr\":\"0xffe0ecac\",\"type\":\"code\"},{\"addr\":\"0xffe0ece0\",\"type\":\"code\"},{\"addr\":\"0xffe0ecfd\",\"type\":\"code\"},{\"addr\":\"0xffe0ed32\",\"type\":\"code\"},{\"addr\":\"0xffe0ed65\",\"type\":\"code\"},{\"addr\":\"0xffe0ed98\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe103e2\",\"type\":\"code\"}]}},{\"addr\":\"0xffe10452\",\"name\":\"AllocatePool\",\"prototype\":\"void *__fastcall(void *buf, unsigned int count)\",\"size\":\"0x3e\",\"comments\":{\"0xffe10480\":{\"regular\":\"value\"},\"0xffe10482\":{\"regular\":\"count\"},\"0xffe10483\":{\"regular\":\"buf\"}},\"asm\":\"AllocatePool (.text @ 0xffe10452):\\nffe10452  push ebx\\nffe10453  push esi\\nffe10454  push edi\\nffe10455  mov edi, edx\\nffe10457  or esi, 0FFFFFFFFh\\nffe1045a  mov ebx, ecx\\nffe1045c  sub esi, ebx\\nffe1045e  lea eax, [edi-1]\\nffe10461  cmp eax, esi\\nffe10463  jbe loc_FFE10480\\nffe10465  call GetDebugLib\\nffe1046a  test eax, eax\\nffe1046c  jz loc_FFE10480\\nffe1046e  push offset aLength10xfffff_1\\nffe10473  push 36h\\nffe10475  push offset aEHsMdepkgLibra_1\\nffe1047a  call dword ptr [eax+4]\\nffe1047d  add esp, 0Ch\\nffe10480  push 0\\nffe10482  push edi\\nffe10483  push ebx\\nffe10484  call SetMem\\nffe10489  add esp, 0Ch\\nffe1048c  pop edi\\nffe1048d  pop esi\\nffe1048e  pop ebx\\nffe1048f  retn\",\"code\":\"void *__fastcall AllocatePool(void *buf, unsigned int count)\\n{\\n  int DebugLib; // eax\\n\\n  if ( count - 1 > -1 - (int)buf ) /*0xffe10463*/\\n  {\\n    DebugLib = GetDebugLib(); /*0xffe10465*/\\n    if ( DebugLib ) /*0xffe1046c*/\\n      (*(void (__cdecl **)(const char *, int, const char *))(DebugLib + 4))( /*0xffe1047a*/\\n        \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\SetMemWrapper.c\\\",\\n        54,\\n        \\\"(Length - 1) <= (0xFFFFFFFF - (UINTN)Buffer)\\\");\\n  }\\n  return SetMem(buf, count, 0); /*0xffe1048c*/\\n}\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0ec05\",\"type\":\"code\"},{\"addr\":\"0xffe0ec20\",\"type\":\"code\"},{\"addr\":\"0xffe0ec39\",\"type\":\"code\"},{\"addr\":\"0xffe0ec52\",\"type\":\"code\"},{\"addr\":\"0xffe0ec6b\",\"type\":\"code\"},{\"addr\":\"0xffe0f1d5\",\"type\":\"code\"},{\"addr\":\"0xffe0f31b\",\"type\":\"code\"},{\"addr\":\"0xffe0f42e\",\"type\":\"code\"},{\"addr\":\"0xffe118f4\",\"type\":\"code\"},{\"addr\":\"0xffe11a56\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe10453\",\"type\":\"code\"}]}},{\"addr\":\"0xffe10490\",\"name\":\"ReallocatePool\",\"prototype\":\"void *__fastcall(int p_n384, unsigned int n78)\",\"size\":\"0x53\",\"comments\":{\"0xffe104d6\":{\"regular\":\"count\"},\"0xffe104d7\":{\"regular\":\"buf\"}},\"asm\":\"ReallocatePool (.text @ 0xffe10490):\\nffe10490  push ebx\\nffe10491  push esi\\nffe10492  mov esi, ecx\\nffe10494  mov ebx, offset aEHsMdepkgLibra_2\\nffe10499  push edi\\nffe1049a  mov edi, edx\\nffe1049c  test esi, esi\\nffe1049e  jnz loc_FFE104B7\\nffe104a0  call GetDebugLib\\nffe104a5  test eax, eax\\nffe104a7  jz loc_FFE104B7\\nffe104a9  push offset aBufferVoid0\\nffe104ae  push 35h\\nffe104b0  push ebx\\nffe104b1  call dword ptr [eax+4]\\nffe104b4  add esp, 0Ch\\nffe104b7  mov eax, esi\\nffe104b9  neg eax\\nffe104bb  cmp edi, eax\\nffe104bd  jbe loc_FFE104D6\\nffe104bf  call GetDebugLib\\nffe104c4  test eax, eax\\nffe104c6  jz loc_FFE104D6\\nffe104c8  push offset aLength0xffffff\\nffe104cd  push 36h\\nffe104cf  push ebx\\nffe104d0  call dword ptr [eax+4]\\nffe104d3  add esp, 0Ch\\nffe104d6  push edi\\nffe104d7  push esi\\nffe104d8  call ZeroMem\\nffe104dd  pop ecx\\nffe104de  pop ecx\\nffe104df  pop edi\\nffe104e0  pop esi\\nffe104e1  pop ebx\\nffe104e2  retn\",\"code\":\"void *__fastcall ReallocatePool(int p_n384, unsigned int n78)\\n{\\n  int DebugLib; // eax\\n  int v5; // eax\\n\\n  if ( !p_n384 ) /*0xffe1049e*/\\n  {\\n    DebugLib = GetDebugLib(); /*0xffe104a0*/\\n    if ( DebugLib ) /*0xffe104a7*/\\n      (*(void (__cdecl **)(const char *, int, const char *))(DebugLib + 4))( /*0xffe104b1*/\\n        \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\ZeroMemWrapper.c\\\",\\n        53,\\n        \\\"Buffer != ((void *) 0)\\\");\\n  }\\n  if ( n78 > -p_n384 ) /*0xffe104bd*/\\n  {\\n    v5 = GetDebugLib(); /*0xffe104bf*/\\n    if ( v5 ) /*0xffe104c6*/\\n      (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffe104d0*/\\n        \\\"e:\\\\\\\\hs\\\\\\\\MdePkg\\\\\\\\Library\\\\\\\\BaseMemoryLibRepStr\\\\\\\\ZeroMemWrapper.c\\\",\\n        54,\\n        \\\"Length <= (0xFFFFFFFF - (UINTN)Buffer + 1)\\\");\\n  }\\n  return ZeroMem((void *)p_n384, n78); /*0xffe104df*/\\n}\",\"xrefs\":{\"to\":[{\"addr\":\"0xffe0ffda\",\"type\":\"code\"},{\"addr\":\"0xffe10159\",\"type\":\"code\"},{\"addr\":\"0xffe10285\",\"type\":\"code\"}],\"from\":[{\"addr\":\"0xffe10491\",\"type\":\"code\"}]}}]}"}, {"type": "text", "text": "Output truncated. Run: curl -o .ida-mcp/d3b9e92f-0758-4730-a6cc-1a95774f3f75.json http://127.0.0.1:13375/output/d3b9e92f-0758-4730-a6cc-1a95774f3f75.json"}], "isError": false, "_meta": {"ida_mcp": {"output_truncated": true, "total_chars": 285027, "output_id": "d3b9e92f-0758-4730-a6cc-1a95774f3f75", "download_url": "http://127.0.0.1:13375/output/d3b9e92f-0758-4730-a6cc-1a95774f3f75.json", "download_hint": "Output truncated. Run: curl -o .ida-mcp/d3b9e92f-0758-4730-a6cc-1a95774f3f75.json http://127.0.0.1:13375/output/d3b9e92f-0758-4730-a6cc-1a95774f3f75.json"}}}, "id": 1}