{
"0x1000": "char *__fastcall sub_1000(char *dst, char *src, unsigned __int64 count)\n{\n char *dst_2; // rax\n unsigned __int64 count_1; // rcx\n char *dst_1; // rdi\n char *src_1; // rsi\n\n dst_2 = dst; /*0x1010*/\n if (src < dst && &src[count - 1] >= dst) /*0x1018*/\n {\n src_1 = &src[count - 1]; /*0x1030*/\n dst_1 = &dst[count - 1]; /*0x1033*/\n }\n else\n {\n count_1 = count; /*0x101a*/\n count &= 7u; /*0x101d*/\n count_1 >>= 3; /*0x1024*/\n qmemcpy(dst, src, 8 * count_1); /*0x1028*/\n src_1 = &src[8 * count_1]; /*0x1028*/\n dst_1 = &dst[8 * count_1]; /*0x1028*/\n }\n qmemcpy(dst_1, src_1, count); /*0x103c*/\n return dst_2; /*0x103f*/\n}",
"0x1050": "char *__fastcall sub_1050(char *buf, unsigned __int64 a2)\n{\n memset(buf, 0, 8 * (a2 >> 3)); /*0x1066*/\n memset(&buf[8 * (a2 >> 3)], 0, a2 & 7); /*0x106b*/\n return buf; /*0x106e*/\n}",
"0x10d0": "void sub_10D0()\n{\n _mm_pause(); /*0x10d0*/\n}",
"0x10e0": "unsigned __int64 sub_10E0()\n{\n return __rdtsc(); /*0x10e9*/\n}",
"0x10f0": "void sub_10F0()\n{\n _enable(); /*0x10f0*/\n}",
"0x1100": "void sub_1100()\n{\n _disable(); /*0x1100*/\n}",
"0x1110": "unsigned __int64 sub_1110()\n{\n return __getcallerseflags(); /*0x1112*/\n}",
"0x1114": "EFI_STATUS ModuleEntryPoint(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)\n{\n signed __int64 v2; // rbx\n\n sub_113C(ImageHandle, SystemTable); /*0x111a*/\n v2 = sub_1B88(); /*0x1124*/\n if (v2 < 0) /*0x112a*/\n sub_1558(); /*0x112c*/\n return v2; /*0x1134*/\n}",
"0x113c": "void __fastcall sub_113C(__int64 ImageHandle, EFI_SYSTEM_TABLE *SystemTable)\n{\n EFI_BOOT_SERVICES *BootServices; // r10\n __int64 BootServices_1; // r10\n __int64 v5; // rax\n __int64 v6; // rax\n __int64 v7; // rbx\n __int64 v8; // rax\n __int64 v9; // rbx\n __int64 v10; // rax\n __int64 v11; // rax\n __int64 v12; // rbx\n __int64 v13; // rax\n _BYTE *v14; // rax\n __int16 callerseflags_w; // bx\n bool v16; // bl\n __int64 v17; // rdi\n int i; // eax\n\n ::ImageHandle = ImageHandle; /*0x1154*/\n if (ImageHandle) /*0x1168*/\n sub_3DDC(/*0x1177*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiBootServicesTableLib\\\\UefiBootServicesTableLib.c\",\n 51,\n \"gImageHandle = ((void *) 0)\");\n ::SystemTable = (__int64)SystemTable; /*0x117c*/\n if (SystemTable) /*0x1186*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiBootServicesTableLib\\\\UefiBootServicesTableLib.c\", 57, \"gST = ((void *) 0)\"); /*0x1195*/\n ::BootServices = (__int64)SystemTable->BootServices; /*0x119e*/\n if (::BootServices) /*0x11a8*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiBootServicesTableLib\\\\UefiBootServicesTableLib.c\", 63, \"gBS = ((void *) 0)\"); /*0x11b7*/\n RuntimeServices = (__int64)SystemTable->RuntimeServices; /*0x11c0*/\n if (RuntimeServices) /*0x11ca*/\n sub_3DDC(/*0x11dd*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeServicesTableLib\\\\UefiRuntimeServicesTableLib.c\",\n 47,\n \"gRT = ((void *) 0)\");\n BootServices = SystemTable->BootServices; /*0x11ed*/\n RuntimeServices_0 = (__int64)SystemTable->RuntimeServices; /*0x11f4*/\n BootServices_0 = (__int64)BootServices; /*0x1207*/\n ((void (__fastcall *)(__int64, __int64, __int64 (__fastcall *)()))BootServices->CreateEvent)(513, 8, sub_3E1C); /*0x1219*/\n (*(void (__fastcall **)(__int64, __int64, __int64 (__fastcall *)(), _QWORD, __int64 *))(BootServices_0 + 80))(/*0x1241*/\n,\n 8,\n sub_3E28,\n 0,\n &qword_70D0);\n sub_3F9C(); /*0x1244*/\n if (RuntimeServices) /*0x1258*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 95, \"gRT = ((void *) 0)\"); /*0x1267*/\n BootServices_1 = ::BootServices; /*0x126c*/\n if (::BootServices) /*0x1276*/\n {\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 96, \"gBS = ((void *) 0)\"); /*0x1286*/\n BootServices_1 = ::BootServices; /*0x128b*/\n }\n RuntimeServices_1 = RuntimeServices; /*0x12a0*/\n v5 = (*(__int64 (__fastcall **)(__int64, __int64, __int64 (__fastcall *)()))(BootServices_1 + 368))(512, 16, sub_4024); /*0x12ce*/\n if (v5 < 0) /*0x12eb*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v5); /*0x12f5*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 111, \"EFI_ERROR (Status)\"); /*0x1305*/\n }\n v6 = (*(__int64 (__fastcall **)(__int64, __int64, __int64 (__fastcall *)(), _QWORD, void *, __int64 *))(::BootServices + 368))(/*0x133b*/\n 512,\n 16,\n nullsub_1,\n 0,\n &unk_7060,\n &qword_7140);\n v7 = v6; /*0x1341*/\n if (v6 < 0) /*0x1347*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v6); /*0x1352*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 122, \"EFI_ERROR (Status)\"); /*0x1362*/\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v7); /*0x1370*/\n sub_3DDC(/*0x1384*/\n \"e:\\\\hs\\\\Build\\\\HR6N0XMLK\\\\DEBUG_VS2015\\\\X64\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru\\\\DEBUG\\\\AutoGen.c\",\n 382,\n \"EFI_ERROR (Status)\");\n }\n v8 = sub_3ED8(&unk_7080, &qword_70F8); /*0x1397*/\n v9 = v8; /*0x139c*/\n if (v8 < 0) /*0x13a2*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v8); /*0x13ad*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeServicesTableLib\\\\DxeServicesTableLib.c\", 64, \"EFI_ERROR (Status)\"); /*0x13c1*/\n }\n if (qword_70F8) /*0x13ce*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeServicesTableLib\\\\DxeServicesTableLib.c\", 65, \"gDS = ((void *) 0)\"); /*0x13e3*/\n if (v9 < 0) /*0x13eb*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v9); /*0x13f6*/\n sub_3DDC(/*0x140a*/\n \"e:\\\\hs\\\\Build\\\\HR6N0XMLK\\\\DEBUG_VS2015\\\\X64\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru\\\\DEBUG\\\\AutoGen.c\",\n 385,\n \"EFI_ERROR (Status)\");\n }\n v10 = sub_35F4(); /*0x140f*/\n qword_7110 = (*(__int64 (__fastcall **)(__int64))(v10 + 32))(5); /*0x141c*/\n v11 = (*(__int64 (__fastcall **)(__int64, __int64, __int64 (__fastcall *)(), _QWORD, void *, __int64 *))(::BootServices + 368))(/*0x1454*/\n 512,\n 16,\n sub_4048,\n 0,\n &unk_7070,\n &qword_7120);\n v12 = v11; /*0x145a*/\n if (v11 < 0) /*0x1460*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v11); /*0x146b*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeRuntimePciExpressLib\\\\PciExpressLib.c\", 141, \"EFI_ERROR (Status)\"); /*0x147f*/\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v12); /*0x148d*/\n sub_3DDC(/*0x14a1*/\n \"e:\\\\hs\\\\Build\\\\HR6N0XMLK\\\\DEBUG_VS2015\\\\X64\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru\\\\DEBUG\\\\AutoGen.c\",\n 388,\n \"EFI_ERROR (Status)\");\n }\n if (*(char *)sub_40B88) >= 0) /*0x14b6*/\n {\n v13 = sub_40B84); /*0x14bb*/\n sub_4348(v13); /*0x14c3*/\n v14 = (_BYTE *)sub_40B88); /*0x14ca*/\n *v14 |= 0x80u; /*0x14d4*/\n }\n callerseflags_w = _getcallerseflags_w(); /*0x14db*/\n disable_w(); /*0x14de*/\n v16 = (callerseflags_w & 0x200) = 0; /*0x14ed*/\n v17 = sub_437C) & 0xFFFFFF; /*0x14f7*/\n _rdtsc_w(); /*0x14fd*/\n for (i = sub_437C); (((_DWORD)v17 + 357 - i) & 0x800000) == 0; i = sub_437C)) /*0x1504*/\n mm_pause_w(); /*0x1510*/\n _rdtsc_w(); /*0x1529*/\n if (v16) /*0x1530*/\n enable_w(); /*0x1532*/\n else\n disable_w(); /*0x1539*/\n}",
"0x1558": "__int64 sub_1558()\n{\n __int64 v0; // rax\n __int64 v1; // rbx\n __int64 BootServices; // rax\n __int64 v3; // rax\n __int64 v4; // rax\n __int64 v5; // rbx\n\n if (qword_7100) /*0x1577*/\n sub_3E94(); /*0x1579*/\n v0 = (*(__int64 (__fastcall **)(__int64))(BootServices + 112))(qword_7120); /*0x158c*/\n v1 = v0; /*0x15a2*/\n if (v0 < 0) /*0x15a8*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v0); /*0x15b2*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeRuntimePciExpressLib\\\\PciExpressLib.c\", 178, \"EFI_ERROR (Status)\"); /*0x15c6*/\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v1); /*0x15d3*/\n sub_3DDC(/*0x15e7*/\n \"e:\\\\hs\\\\Build\\\\HR6N0XMLK\\\\DEBUG_VS2015\\\\X64\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru\\\\DEBUG\\\\AutoGen.c\",\n 428,\n \"EFI_ERROR (Status)\");\n }\n BootServices = BootServices; /*0x15ec*/\n if (BootServices) /*0x15f6*/\n {\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 151, \"gBS = ((void *) 0)\"); /*0x160b*/\n BootServices = BootServices; /*0x1610*/\n }\n v3 = (*(__int64 (__fastcall **)(__int64))(BootServices + 112))(qword_7130); /*0x161e*/\n if (v3 < 0) /*0x1624*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v3); /*0x162f*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 153, \"EFI_ERROR (Status)\"); /*0x1643*/\n }\n v4 = (*(__int64 (__fastcall **)(__int64))(BootServices + 112))(qword_7140); /*0x1656*/\n v5 = v4; /*0x1659*/\n if (v4 < 0) /*0x165f*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v4); /*0x166a*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeLib\\\\RuntimeLib.c\", 156, \"EFI_ERROR (Status)\"); /*0x167e*/\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v5); /*0x168c*/\n sub_3DDC(/*0x16a0*/\n \"e:\\\\hs\\\\Build\\\\HR6N0XMLK\\\\DEBUG_VS2015\\\\X64\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru\\\\DEBUG\\\\AutoGen.c\",\n 431,\n \"!EFI_ERROR (Status)\");\n }\n (*(void (__fastcall **)(__int64))(BootServices_0 + 112))(qword_70C8); /*0x16b3*/\n return (*(__int64 (__fastcall **)(__int64))(BootServices_0 + 112))(qword_70D0);\n}",
"0x16e0": "__int64 sub_16E0()\n{\n (*(void (__fastcall **)(_QWORD, __int64))(RuntimeServices + 64))(0, qword_7148 + 479); /*0x16fb*/\n (*(void (__fastcall **)(_QWORD, __int64))(RuntimeServices + 64))(0, qword_7148 + 487); /*0x1715*/\n (*(void (__fastcall **)(_QWORD, __int64))(RuntimeServices + 64))(0, qword_7148 + 495); /*0x172f*/\n return (*(__int64 (__fastcall **)(_QWORD, __int64))(RuntimeServices + 64))(0, qword_7148 + 503);\n}",
"0x1754": "unsigned __int64 __fastcall sub_1754(__int64 a1, __int64 a2, char *dst, _QWORD *a4, _QWORD *a5)\n{\n bool v5; // zf\n __int64 v9; // rbx\n _DWORD src[4]; // [rsp+20h] [rbp-10h] BYREF\n\n src[0] = 892468678; /*0x1776*/\n v5 = *(_QWORD *)(a1 - 479) == 2020766310; /*0x177d*/\n src[1] = 1288834734; /*0x178a*/\n src[2] = 1214228144; /*0x1794*/\n v9 = a1; /*0x179b*/\n src[3] = 149151648; /*0x179e*/\n if (v5) /*0x17a5*/\n v9 = a1 - 479; /*0x17c1*/\n else\n sub_3DDC(\"e:\\\\hs\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru.c\", 129, \"CR has Bad Signature\"); /*0x17ba*/\n if (a2 + 1 > (unsigned __int64)*(unsigned __int8 *)(v9 + 9)) /*0x17cf*/\n return 0x8000000000000011uLL; /*0x17d1*/\n sub_36FC(dst, (char *)src, 0x10u); /*0x17ea*/\n *a4 = 1; /*0x17f3*/\n *a5 = 0; /*0x17fa*/\n return 0; /*0x1814*/\n}",
"0x181c": "__int64 __fastcall sub_181C(__int64 a1, char *dst, _QWORD *a3, _QWORD *a4)\n{\n bool v4; // zf\n __int64 v8; // rbx\n _DWORD src[4]; // [rsp+20h] [rbp-10h] BYREF\n\n src[0] = -1431216104; /*0x183e*/\n v4 = *(_QWORD *)(a1 - 479) == 2020766310; /*0x1845*/\n src[1] = 1147234205; /*0x1852*/\n src[2] = 216473786; /*0x185c*/\n v8 = a1; /*0x1863*/\n src[3] = -1687517449; /*0x1866*/\n if (v4) /*0x186d*/\n v8 = a1 - 479; /*0x1889*/\n else\n sub_3DDC(\"e:\\\\hs\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\IpmiRedirFru.c\", 169, \"CR has Bad Signature\"); /*0x1882*/\n sub_36FC(dst, (char *)src, 0x10u); /*0x1899*/\n *a3 = 0; /*0x189e*/\n *a4 = *(unsigned __int8 *)(v8 + 9); /*0x18b5*/\n return 0; /*0x18bf*/\n}",
"0x18c8": "__int64 __fastcall sub_18C8(__int64 a1, __int64 n127_1, __int16 a3, unsigned __int8 *a4, __int64 a5)\n{\n unsigned __int8 *v5; // rbx\n unsigned __int16 v6; // r14\n char n3; // si\n __int64 v8; // rdi\n bool v9; // zf\n __int64 result; // rax\n __int16 v12; // ax\n int v13; // [rsp+28h] [rbp-D8h]\n char n127_3; // [rsp+40h] [rbp-C0h] BYREF\n __int16 v15; // [rsp+41h] [rbp-BFh]\n unsigned __int8 n127; // [rsp+43h] [rbp-BDh]\n unsigned __int8 n127_2; // [rsp+50h] [rbp-B0h] BYREF\n char src[255]; // [rsp+51h] [rbp-AFh] BYREF\n char v19; // [rsp+188h] [rbp+88h] BYREF\n\n v5 = a4; /*0x18ec*/\n n127_3 = 0; /*0x18ef*/\n v6 = 0; /*0x18f4*/\n v15 = 0; /*0x18f8*/\n n3 = 3; /*0x18fd*/\n n127 = 0; /*0x1900*/\n v8 = 0; /*0x1904*/\n if (*(_QWORD *)a4 && a5) /*0x1917*/\n {\n v9 = *(_QWORD *)a4 == 0; /*0x191d*/\n n127_3 = n127_1; /*0x1920*/\n v15 = a3; /*0x1924*/\n while (v9) /*0x192a*/\n {\n if (*(_QWORD *)v5 <= 0x7Fu) /*0x1934*/\n n127 = *v5; /*0x193f*/\n else\n n127 = 127; /*0x1936*/\n while (1) /*0x194a*/\n {\n v19 = -1; /*0x194a*/\n LOBYTE(a4) = 17; /*0x1956*/\n LOBYTE(n127_1) = 10; /*0x1966*/\n LOBYTE(v13) = 4; /*0x196d*/\n result = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, unsigned __int8 *, char *, int, unsigned __int8 *, char *))(qword_7090 + 16))(/*0x1981*/\n qword_7090,\n n127_1,\n 0,\n a4,\n &n127_3,\n v13,\n &n127_2,\n &v19);\n if (result < 0) /*0x1987*/\n goto LABEL_18; /*0x1987*/\n if (*(_BYTE *)(qword_7090 + 8) = 0x81) /*0x1998*/\n break; /*0x1998*/\n if (!n3--) /*0x199a*/\n {\n result = 0x8000000000000006uLL; /*0x1a0e*/\nLABEL_18:\n *(_QWORD *)v5 = v8; /*0x1a18*/\n return result; /*0x1a1b*/\n }\n sub_417C); /*0x19aa*/\n }\n n127_1 = n127_2; /*0x19b5*/\n if (n127_2 > n127) /*0x19be*/\n n127_1 = n127; /*0x19c0*/\n v12 = *(_WORD *)v5; /*0x19c3*/\n v15 += (unsigned __int8)n127_1; /*0x19c9*/\n v8 += (unsigned __int8)n127_1; /*0x19d5*/\n *(_QWORD *)v5 = (unsigned __int16)(v12 - (unsigned __int8)n127_1); /*0x19db*/\n n127_2 = n127_1; /*0x19de*/\n if ((_BYTE)n127_1) /*0x19e4*/\n {\n sub_36FC((char *)(a5 + v6), src, (unsigned __int8)n127_1); /*0x19f6*/\n LOBYTE(n127_1) = n127_2; /*0x19fb*/\n }\n v6 += (unsigned __int8)n127_1; /*0x1a02*/\n v9 = *(_QWORD *)v5 == 0; /*0x1a06*/\n }\n *(_QWORD *)v5 = v8; /*0x1a1d*/\n return 0; /*0x1a20*/\n }\n else\n {\n *(_QWORD *)a4 = 0; /*0x1a24*/\n return 0x8000000000000002uLL; /*0x1a27*/\n }\n}",
"0x1a50": "__int64 __fastcall sub_1A50(__int64 a1, __int64 a2, __int16 a3, unsigned __int8 *a4, __int64 a5)\n{\n unsigned __int8 *v5; // rbx\n unsigned __int16 v6; // r14\n char n3; // si\n __int64 v8; // rbp\n unsigned __int8 n127; // di\n char v10; // di\n __int64 result; // rax\n unsigned __int8 v13; // al\n unsigned __int8 v14; // al\n int v15; // [rsp+28h] [rbp-140h]\n char v16; // [rsp+40h] [rbp-128h] BYREF\n __int16 v17; // [rsp+41h] [rbp-127h]\n char dst[293]; // [rsp+43h] [rbp-125h] BYREF\n char v19; // [rsp+178h] [rbp+10h] BYREF\n unsigned __int8 v20; // [rsp+180h] [rbp+18h] BYREF\n\n v16 = a2; /*0x1a66*/\n v5 = a4; /*0x1a6a*/\n v6 = 0; /*0x1a6d*/\n n3 = 3; /*0x1a71*/\n v8 = 0; /*0x1a74*/\n v17 = a3; /*0x1a77*/\n if (*(_QWORD *)a4) /*0x1a7d*/\n {\nLABEL_2:\n n127 = 127; /*0x1a86*/\n if (*(_QWORD *)v5 <= 0x7Fu) /*0x1a8d*/\n n127 = *v5; /*0x1a8f*/\n if (n127) /*0x1a99*/\n sub_36FC(dst, (char *)(a5 + v6), n127); /*0x1aac*/\n v10 = n127 + 3; /*0x1ab1*/\n while (1) /*0x1abd*/\n {\n v19 = 1; /*0x1abd*/\n LOBYTE(a4) = 18; /*0x1aca*/\n LOBYTE(a2) = 10; /*0x1add*/\n LOBYTE(v15) = v10; /*0x1ae4*/\n result = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, unsigned __int8 *, char *, int, unsigned __int8 *, char *))(qword_7090 + 16))(/*0x1af8*/\n qword_7090,\n a2,\n 0,\n a4,\n &v16,\n v15,\n &v20,\n &v19);\n if (result < 0) /*0x1afe*/\n break; /*0x1afe*/\n if (*(_BYTE *)(qword_7090 + 8) == 0x80) /*0x1b07*/\n {\n result = 0x8000000000000008uLL; /*0x1b79*/\n break; /*0x1b83*/\n }\n if (*(_BYTE *)(qword_7090 + 8) = 0x81) /*0x1b11*/\n {\n v13 = *v5; /*0x1b32*/\n v8 += v20; /*0x1b34*/\n v17 += v20; /*0x1b37*/\n v14 = v13 - v20; /*0x1b3c*/\n v6 += v20; /*0x1b3e*/\n a2 = v14; /*0x1b42*/\n *(_QWORD *)v5 = v14; /*0x1b45*/\n if (v14) /*0x1b4a*/\n goto LABEL_2; /*0x1b4a*/\n goto LABEL_13; /*0x1b4a*/\n }\n if (n3--) /*0x1b13*/\n {\n result = 0x8000000000000006uLL; /*0x1b6d*/\n break; /*0x1b77*/\n }\n sub_417C); /*0x1b23*/\n }\n }\n else\n {\nLABEL_13:\n result = 0; /*0x1b50*/\n }\n *(_QWORD *)v5 = v8; /*0x1b53*/\n return result; /*0x1b5e*/\n}",
"0x1b88": "unsigned __int64 __fastcall sub_1B88(__int64 a1, __int64 a2)\n{\n __int64 v2; // rax\n __int64 v4; // rdx\n __int64 v5; // rdi\n __int64 v6; // r9\n char v7; // bl\n _QWORD v8[2]; // [rsp+48h] [rbp-30h] BYREF\n char v9; // [rsp+58h] [rbp-20h] BYREF\n __int64 v10; // [rsp+59h] [rbp-1Fh]\n int v11; // [rsp+61h] [rbp-17h]\n __int16 v12; // [rsp+65h] [rbp-13h]\n __int64 v13; // [rsp+A8h] [rbp+30h] BYREF\n char v14; // [rsp+B0h] [rbp+38h]\n __int16 v15; // [rsp+B8h] [rbp+40h]\n\n v13 = a2; /*0x1b88*/\n v15 = 0; /*0x1ba5*/\n v14 = -1; /*0x1bb8*/\n v9 = 0; /*0x1bbc*/\n v10 = 0; /*0x1bc0*/\n v11 = 0; /*0x1bc4*/\n v12 = 0; /*0x1bc7*/\n LOBYTE(v13) = 15; /*0x1bcb*/\n v8[1] = 0; /*0x1bcf*/\n v2 = sub_3E50(6, 511); /*0x1bd3*/\n qword_7148 = v2; /*0x1bd8*/\n if (!v2) /*0x1be2*/\n return 0x8000000000000009uLL; /*0x1be4*/\n *(_WORD *)(v2 + 8) = 67; /*0x1bfa*/\n *(_QWORD *)(v2 + 479) = sub_1754; /*0x1c00*/\n *(_QWORD *)v2 = 2020766310; /*0x1c15*/\n *(_QWORD *)(v2 + 487) = sub_181C; /*0x1c1c*/\n *(_QWORD *)(v2 + 495) = sub_18C8; /*0x1c2c*/\n *(_QWORD *)(v2 + 503) = sub_1A50; /*0x1c3a*/\n v5 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(BootServices + 320))(&unk_7040, 0, &qword_7090); /*0x1c55*/\n v7 = 1; /*0x1c58*/\n if (v5 >= 0) /*0x1c5d*/\n {\n LOBYTE(v6) = 1; /*0x1c63*/\n LOBYTE(v4) = 6; /*0x1c72*/\n v5 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _QWORD, _BYTE, char *, __int64 *))(qword_7090 + 16))(/*0x1c90*/\n qword_7090,\n v4,\n 0,\n v6,\n 0,\n 0,\n &v9,\n &v13);\n if (v5 >= 0) /*0x1c96*/\n {\n v7 = 0; /*0x1c98*/\n v8[0] = 0; /*0x1cbb*/\n v5 = (*(__int64 (__fastcall **)(_QWORD *, void *, _QWORD, __int64))(BootServices + 128))(/*0x1cc8*/\n v8,\n &unk_7030,\n 0,\n qword_7148 + 479);\n }\n }\n LOBYTE(v4) = v7; /*0x1cd2*/\n sub_2990(qword_7148 + 479, v4); /*0x1cdb*/\n if (v5 >= 0) /*0x1ce3*/\n (*(void (__fastcall **)(__int64, __int64, __int64 (*)()))(BootServices + 368))(512, 16, sub_16E0); /*0x1d22*/\n else\n sub_3E94(qword_7148); /*0x1cec*/\n sub_2724(); /*0x1d28*/\n return 0; /*0x1d2f*/\n}",
"0x2724": "__int64 sub_2724()\n{\n __int64 v0; // rax\n __int64 v1; // rax\n __int64 v3; // [rsp+40h] [rbp+8h]\n char v4; // [rsp+48h] [rbp+10h] BYREF\n\n v0 = (*(__int64 (__fastcall **)(__int64, __int64, __int64 (__fastcall *)()))(BootServices + 80))(512, 8, sub_1D38); /*0x274e*/\n if (v0 < 0) /*0x2759*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v0); /*0x2767*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiLib\\\\UefiLib.c\", 167, \"EFI_ERROR (Status)\"); /*0x277f*/\n }\n v1 = (*(__int64 (__fastcall **)(void *, __int64, char *))(BootServices + 168))(&unk_7020, v3, &v4); /*0x279c*/\n if (v1 < 0) /*0x27a5*/\n {\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v1); /*0x27b4*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiLib\\\\UefiLib.c\", 179, \"EFI_ERROR (Status)\"); /*0x27cc*/\n }\n (*(void (__fastcall **)(__int64))(BootServices + 104))(v3); /*0x27dd*/\n return 0; /*0x27e2*/\n}",
"0x27e8": "_WORD *__fastcall sub_27E8(_WORD *a1, unsigned int *a2, unsigned __int64 i)\n{000000\n000004unsigned __int64 v4; // r10\n000005_WORD *v5; // r11\n000006unsigned int *v6; // rbx\n000007unsigned __int64 v7; // rdi\n000008unsigned int v8; // edx\n000009__int64 n4; // rbp\n00000Achar v10; // al\n00000Bunsigned __int64 v11; // rbx\n00000Cunsigned int v12; // r11d\n00000Dunsigned __int64 v13; // r8\n00000E_WORD *v14; // rdx\n00000Fchar v15; // al\n000000\n000001 000003v4 000002= 000004 0 ;000001\nif ( 00004Bi 00004A/ 00004C 3 )000005\n{000006\n000009v5 000008= 00000Aa1;000007\n00000Dv6 00000C= 00000Ea2;00000B\n000011v7 000010= 000013i 000012/ 000014 3 ;00000F\n000017v4 000016= 000019i 000018/ 00001A 3 ;000015\ndo 00001B\n{00001C\n00001Fv8 00001E= 000020*000021v6;00001D\n000024n4 000023= 000025 4 ;000022\ndo 000026\n{000027\n00002Av10 000029= 00002Bv8;000028\n00002Ev8 00002D>>= 00002F 6 ;00002C\n000032*000034v5000033++ 000031= (000037v10 000036& 000038 0x3F ) 000035+ 000039 32 ;000030\n00003B--00003Cn4;00003A\n}000027\nwhile ( 00003Dn4 );000026\n000040v6 00003F= 000041(unsigned int *)(000043(char *)000044v6 000042+ 000045 3 );00003E\n000047--000048v7;000046\n}00001C\nwhile ( 000049v7 );00001B\n}000006\n00004Fv11 00004E= 000050 0 ;00004D\n000053v12 000052= 000054*000055(unsigned int *)(000057(char *)000058a2 000056+ 00005B 2 00005A* 00005Cv4 000059+ 00005Dv4);000051\n000060v13 00005F= 000062i 000061% 000063 3 ;00005E\nif ( 00008Bv13 )000064\n{000065\n000068v14 000067= 000069&00006Ba100006A[00006D 4 00006C* 00006Ev4];000066\n000071v11 000070= 000072v13;00006F\ndo 000073\n{000074\n000077v15 000076= 000078v12;000075\n00007Bv12 00007A>>= 00007C 6 ;000079\n00007F*000081v14000080++ 00007E= (000084v15 000083& 000085 0x3F ) 000082+ 000086 32 ;00007D\n000088--000089v13;000087\n}000074\nwhile ( 00008Av13 );000073\n}000065\n00008Fa100008E[000092 4 000091* 000093v4 000090+ 000094v11] 00008D= 000095 0 ;00008C\nreturn 000097a1;000096\n}000000",
"0x28b8": "unsigned __int64 __fastcall sub_28B8(__int64 a1, __int64 *a2, char n2, unsigned __int8 i_1)\n{\n __int64 v7; // rbx\n __int64 v9; // rax\n unsigned __int64 i; // rcx\n unsigned int v11; // eax\n _WORD *v12; // rax\n\n if (n2 == 2) /*0x28d8*/\n {\n v11 = (unsigned __int64)8LL * i_1) >> 32; /*0x2943*/\n v12 = (_WORD *)sub_3E50(6, (int)(v11 + 2 + (v11 >> 31))); /*0x2950*/\n *a2 = (__int64)v12; /*0x2955*/\n v7 = 0; /*0x2958*/\n if (v12) /*0x295d*/\n {\n sub_27E8(v12, (unsigned int *)(a1 + 1), i_1); /*0x296a*/\n return v7; /*0x296f*/\n }\n return 0x8000000000000009uLL; /*0x295d*/\n }\n if (n2 = 3) /*0x28de*/\n return 0x8000000000000003uLL; /*0x28ea*/\n v9 = sub_3E50(6, 2LL * i_1 + 2); /*0x2900*/\n *a2 = v9; /*0x2905*/\n v7 = 0; /*0x290b*/\n if (v9) /*0x2910*/\n return 0x8000000000000009uLL; /*0x2971*/\n for (i = 0; i < i_1; ++i) /*0x2917*/\n *(_WORD *)(v9 + 2 * i) = *(unsigned __int8 *)(a1 + i + 1); /*0x291e*/\n *(_WORD *)(v9 + 2 * i) = 0; /*0x292a*/\n return v7; /*0x2988*/\n}",
"0x35f4": "__int64 sub_35F4()\n{000000\n000000__int64 result; // rax\n000001__int64 v1; // rax\n000000\n000001 000003result 000002= 000004qword_70B8;000001\nif ( 000036!000037qword_70B8 )000005\n{000006\n000009v1 000008= 00000B(*00000C(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(00000EBootServices 00000D+ 00000F 320 ))00000A(000010&000011unk_7010, 000012 0 , 000013&000014qword_70B8);000007\nif ( 000024v1 000023< 000025 0 )000015\n{000016\n000019sub_3D5C000018(00001A 0x80000000LL , 00001B\"\\nASSERT_EFI_ERROR (Status = %r)\\n\", 00001Cv1);000017\n00001Fsub_3DDC00001E(000020\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxePcdLib\\\\DxePcdLib.c\", 000021 78 , 000022\"!EFI_ERROR (Status)\");00001D\n}000016\n000028result 000027= 000029qword_70B8;000026\nif ( 000034!000035qword_70B8 )00002A\n{00002B\n00002Esub_3DDC00002D(00002F\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxePcdLib\\\\DxePcdLib.c\", 000030 79 , 000031\"mPcd != ((void *) 0)\");00002C\nreturn 000033qword_70B8;000032\n}00002B\n}000006\nreturn 000039result;000038\n}000000",
"0x3680": "__int64 __fastcall sub_3680(__int64 a1, _QWORD *a2, __int64 a3)\n{\n __int64 v6; // rax\n\n if (a2) /*0x369b*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxePcdLib\\\\DxePcdLib.c\", 1000, \"SizeOfBuffer = ((void *) 0)\"); /*0x36b0*/\n if (*a2 && a3) /*0x36be*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxePcdLib\\\\DxePcdLib.c\", 1003, \"Buffer = ((void *) 0)\"); /*0x36d3*/\n v6 = sub_35F4(); /*0x36d8*/\n return (*(__int64 (__fastcall **)(__int64, _QWORD *, __int64))(v6 + 152))(a1, a2, a3);\n}",
"0x36fc": "char *__fastcall sub_36FC(char *dst, char *src, unsigned __int64 count)\n{000000\n000003unsigned __int64 v3; // rbp\n000000\n000001 000003v3 000002= 000005count 000004- 000006 1 ;000001\nif ( 000011count 000010- 000012 1 00000F> 000014 -1 000013- 000015(__int64)000016dst )000007\n000009 00000Bsub_3DDC00000A(00000A\n00000C\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\CopyMemWrapper.c\",00000100000A\n00000D 56 ,00000200000A\n00000E\"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)DestinationBuffer)\");000009\nif ( 000020v3 00001F> 000022 -1 000021- 000023(__int64)000024src )000017\n000019 00001Bsub_3DDC00001A(00001A\n00001C\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\CopyMemWrapper.c\",00000100001A\n00001D 57 ,00000200001A\n00001E\"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)SourceBuffer)\");000019\nif ( 000031dst 000030== 000032src )000025\n000027 return 000028dst;000027\nelse 000025\n00002A return 00002Csub_100000002B(00002Ddst, 00002Esrc, 00002Fcount);00002A\n}000000",
"0x379c": "char *__fastcall sub_379C(char *buf, unsigned __int64 a2)\n{\n if (a2) /*0x37af*/\n return buf; /*0x37b1*/\n if (buf) /*0x37b9*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\ZeroMemWrapper.c\", 53, \"Buffer != ((void *) 0)\"); /*0x37cc*/\n if (a2 > -(__int64)buf) /*0x37da*/\n sub_3DDC(/*0x37ef*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseMemoryLibRepStr\\\\ZeroMemWrapper.c\",\n 54,\n \"Length <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)Buffer + 1)\");\n return sub_1050(buf, a2); /*0x3804*/\n}",
"0x380c": "bool __fastcall sub_380C(char *src, __int64 a2)\n{\n __int128 v4; // rdi\n __int64 v5; // rbx\n\n *((_QWORD *)&v4 + 1) = ((__int64 (*)(void))sub_3CA4)(); /*0x382e*/\n v5 = sub_3CA4(a2); /*0x383a*/\n *(_QWORD *)&v4 = sub_3CA4(src + 8); /*0x3846*/\n return v4 == __PAIR128__(v5, sub_3CA4(a2 + 8)); /*0x386d*/\n}",
"0x3874": "__int64 __fastcall sub_3874(_WORD *ThinkSystem_, __int16 *a2)\n{\n __int64 ThinkSystem__1; // rbx\n __int64 ThinkSystem__2; // rax\n\n ThinkSystem__1 = (__int64)ThinkSystem_; /*0x3888*/\n if (ThinkSystem_) /*0x388e*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 56, \"Destination = ((void *) 0)\"); /*0x38a1*/\n if ((ThinkSystem__1 & 1) != 0) /*0x38a9*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 57, \"((UINTN) Destination & 0x00000001) == 0\"); /*0x38be*/\n if ((ThinkSystem__1 - (__int64)a2) >> 1 <= (unsigned __int64)sub_394C(a2)) /*0x38d7*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 62, \"(UINTN)(Destination - Source) > StrLen (Source)\"); /*0x38ec*/\n if (((__int64)a2 - ThinkSystem__1) >> 1 <= (unsigned __int64)sub_394C(a2)) /*0x3905*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 63, \"(UINTN)(Source - Destination) > StrLen (Source)\"); /*0x391a*/\n ThinkSystem__2 = ThinkSystem__1; /*0x391f*/\n while (*a2) /*0x3935*/\n {\n *(_WORD *)ThinkSystem__1 = *a2++; /*0x3924*/\n ThinkSystem__1 += 2; /*0x392b*/\n }\n *(_WORD *)ThinkSystem__1 = 0; /*0x3937*/\n return ThinkSystem__2; /*0x3944*/\n}",
"0x394c": "unsigned __int64 __fastcall sub_394C(_WORD *a1)\n{\n _WORD *v1; // rbx\n unsigned __int64 n0xF4240; // rdi\n\n v1 = a1; /*0x395d*/\n if (a1) /*0x3963*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 172, \"String = ((void *) 0)\"); /*0x3978*/\n if (((unsigned __int8)v1 & 1) != 0) /*0x3980*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 173, \"((UINTN) String & 0x00000001) == 0\"); /*0x3995*/\n n0xF4240 = 0; /*0x399a*/\n while (*v1) /*0x39ca*/\n {\n if (n0xF4240 >= 0xF4240) /*0x39a6*/\n sub_3DDC(/*0x39bb*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\",\n 181,\n \"Length < _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength\");\n ++v1; /*0x39c0*/\n ++n0xF4240; /*0x39c4*/\n }\n return n0xF4240; /*0x39d9*/\n}",
"0x39e0": "__int64 __fastcall sub_39E0(_WORD *a1, _WORD *a2)\n{\n _WORD *v3; // rbx\n\n v3 = a1; /*0x39f2*/\n if (2 * sub_394C(a1) == -2) /*0x3a05*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 252, \"StrSize (FirstString) = 0\"); /*0x3a1a*/\n if (2 * sub_394C(a2) == -2) /*0x3a32*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 253, \"StrSize (SecondString) = 0\"); /*0x3a47*/\n while (*v3 && *v3 == *a2) /*0x3a51*/\n {\n ++v3; /*0x3a53*/\n ++a2; /*0x3a57*/\n }\n return (unsigned __int16)*v3 - (unsigned __int16)*a2; /*0x3a78*/\n}",
"0x3a80": "_BYTE *__fastcall sub_3A80(_WORD *a1, _BYTE *a2)\n{\n _BYTE *v2; // rdi\n _BYTE *v4; // rsi\n\n v2 = a2; /*0x3aa3*/\n if (a2) /*0x3aac*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 900, \"Destination = ((void *) 0)\"); /*0x3abd*/\n if (2 * sub_394C(a1) == -2) /*0x3ad5*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 906, \"StrSize (Source) = 0\"); /*0x3ae6*/\n if (v2 - (_BYTE *)a1 < 2 * sub_394C(a1) + 2) /*0x3b04*/\n sub_3DDC(/*0x3b15*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\",\n 911,\n \"(UINTN) (Destination - (CHAR8 *) Source) >= StrSize (Source)\");\n if ((char *)a1 - v2 <= sub_394C(a1)) /*0x3b2b*/\n sub_3DDC(/*0x3b3c*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\",\n 912,\n \"(UINTN) ((CHAR8 *) Source - Destination) > StrLen (Source)\");\n v4 = v2; /*0x3b41*/\n while (*a1) /*0x3b75*/\n {\n if (*a1 >= 0x100u) /*0x3b4e*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 921, \"*Source < 0x100\"); /*0x3b5f*/\n *v2++ = *(_BYTE *)a1++; /*0x3b66*/\n }\n *v2 = 0; /*0x3b7a*/\n if (sub_3BBC(v4) == -1) /*0x3b86*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 931, \"AsciiStrSize (ReturnValue) = 0\"); /*0x3b97*/\n return v4; /*0x3bb3*/\n}",
"0x3bbc": "unsigned __int64 __fastcall sub_3BBC(_BYTE *a1)\n{\n _BYTE *v1; // rbx\n unsigned __int64 i; // rdi\n\n v1 = a1; /*0x3bc6*/\n if (a1) /*0x3bcc*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 1082, \"String = ((void *) 0)\"); /*0x3be1*/\n for (i = 0; *v1; ++i) /*0x3be8*/\n {\n if (i >= 0xF4240) /*0x3bf4*/\n sub_3DDC(/*0x3c09*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\",\n 1090,\n \"Length < _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength\");\n ++v1; /*0x3c0e*/\n }\n return i; /*0x3c21*/\n}",
"0x3c28": "char __fastcall sub_3C28(__int64 p_n3, unsigned __int64 n8)\n{\n char v2; // bl\n unsigned __int64 i; // rax\n\n v2 = 0; /*0x3c37*/\n if (p_n3) /*0x3c42*/\n sub_3DDC(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\CheckSum.c\", 46, \"Buffer = ((void *) 0)\"); /*0x3c55*/\n if (n8 > -p_n3) /*0x3c63*/\n sub_3DDC(/*0x3c78*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\CheckSum.c\",\n 47,\n \"Length <= (0xFFFFFFFFFFFFFFFFULL - ((UINTN) Buffer) + 1)\");\n for (i = 0; i < n8; ++i) /*0x3c83*/\n v2 += *(_BYTE *)(i + p_n3); /*0x3c85*/\n return -v2; /*0x3c9e*/\n}",
"0x3ca4": "__int64 __fastcall sub_3CA4(__int64 a1)\n{000000\n000001 if ( 000009!00000Aa1 )000001\n000003 000005sub_3DDC000004(000006\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\Unaligned.c\", 000007 192 , 000008\"Buffer != ((void *) 0)\");000003\nreturn 00000C*00000D(_QWORD *)00000Ea1;00000B\n}000000",
"0x3cd4": "__int64 sub_3CD4()\n{\n __int64 result; // rax\n unsigned __int64 n0x10; // rbx\n __int64 v2; // rax\n __int64 v3; // rcx\n\n result = qword_70E0; /*0x3cde*/\n if (!qword_70E0) /*0x3cea*/\n {\n if (BootServices_0 /*0x3d18*/\n && (n0x10 = (*(__int64 (__fastcall **)(__int64))(BootServices_0 + 24))(31),\n (*(void (__fastcall **)(unsigned __int64))(BootServices_0 + 32))(n0x10),\n n0x10 <= 0x10))\n {\n v2 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(BootServices_0 + 320))(&unk_7000, 0, &qword_70E0); /*0x3d31*/\n v3 = qword_70E0; /*0x3d37*/\n if (v2 < 0) /*0x3d41*/\n v3 = 0; /*0x3d41*/\n qword_70E0 = v3; /*0x3d45*/\n return v3; /*0x3d4c*/\n }\n else\n {\n return 0; /*0x3cf8*/\n }\n }\n return result; /*0x3d54*/\n}",
"0x3d5c": "__int64 sub_3D5C(__int64 a1, const char *a2, ...)\n{\n __int64 result; // rax\n __int64 v4; // r8\n __int64 (__fastcall **v5)(__int64, const char *, __int64 *); // r9\n unsigned __int8 v6; // al\n unsigned __int8 n3; // al\n int n113; // edx\n va_list va; // [rsp+40h] [rbp+18h] BYREF\n\n va_start(va, a2);\n result = sub_3CD4(); /*0x3d73*/\n v4 = 0; /*0x3d78*/\n v5 = (__int64 (__fastcall **)(__int64, const char *, __int64 *))result; /*0x3d7b*/\n if (result) /*0x3d81*/\n {\n v6 = __inbyte(0x70u); /*0x3d87*/\n __outbyte(0x70u, v6 & 0x80 | 0x4B); /*0x3d8c*/\n n113 = 113; /*0x3d8d*/\n n3 = __inbyte(0x71u); /*0x3d91*/\n LOBYTE(n113) = n3; /*0x3d92*/\n if (n3 > 3u) /*0x3d96*/\n {\n n113 = 3; /*0x3d9f*/\n if (n113) /*0x3da5*/\n n113 = (unsigned __int8)n113; /*0x3da5*/\n }\n result = (unsigned int)(n113 - 1); /*0x3da8*/\n if ((unsigned __int8)(n113 - 1) <= 0xFDu) /*0x3dad*/\n {\n result = 2147483652LL; /*0x3db2*/\n v4 = 2147483718LL; /*0x3db7*/\n if ((_BYTE)n113 == 1) /*0x3dbd*/\n v4 = 2147483652LL; /*0x3dbd*/\n }\n if ((v4 & a1) != 0) /*0x3dc4*/\n return (*v5)(a1, a2, (__int64 *)va); /*0x3dd3*/\n }\n return result; /*0x3dd6*/\n}",
"0x3ddc": "__int64 __fastcall sub_3DDC(__int64 a1, __int64 a2, __int64 a3)\n{000000\n000006__int64 result; // rax\n000000\n000001 000003result 000002= 000005sub_3CD4000004();000001\nif ( 000012result )000006\n000008 return 00000A(*00000B(__int64 (__fastcall **)(__int64, __int64, __int64))(00000Dresult 00000C+ 00000E 8 ))000009(00000Fa1, 000010a2, 000011a3);000008\nreturn 000014result;000013\n}000000",
"0x3e1c": "void sub_3E1C()\n{\n BootServices_0 = 0; /*0x3e1c*/\n}",
"0x3e28": "__int64 sub_3E28()\n{\n __int64 result; // rax\n\n if (qword_70E0) /*0x3e34*/\n return (*(__int64 (__fastcall **)(_QWORD, __int64 *))(RuntimeServices_0 + 64))(0, &qword_70E0); /*0x3e46*/\n return result; /*0x3e49*/\n}",
"0x3e50": "char *__fastcall sub_3E50(__int64 a1, unsigned __int64 a2)\n{\n __int64 v3; // rax\n char *buf; // rcx\n char *buf_1; // [rsp+40h] [rbp+18h] BYREF\n\n v3 = (*(__int64 (__fastcall **)(__int64, unsigned __int64, char **))(BootServices + 64))(a1, a2, &buf_1); /*0x3e65*/\n buf = buf_1; /*0x3e68*/\n if (v3 < 0) /*0x3e72*/\n buf = 0; /*0x3e72*/\n buf_1 = buf; /*0x3e76*/\n if (buf) /*0x3e7e*/\n return sub_379C(buf, a2); /*0x3e88*/\n return buf; /*0x3e8e*/\n}",
"0x3e94": "__int64 sub_3E94()\n{000000\n000000__int64 result; // rax\n000000\n000001 000003result 000002= 000005(*000006(__int64 (**)(void))(000008BootServices 000007+ 000009 72 ))000004();000001\nif ( 00001Bresult 00001A< 00001C 0 )00000A\n{00000B\n00000Esub_3D5C00000D(00000F 0x80000000LL , 000010\"\\nASSERT_EFI_ERROR (Status = %r)\\n\", 000011result);00000C\nreturn 000014sub_3DDC000013(000013\n000015(__int64)000016\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiMemoryAllocationLib\\\\MemoryAllocationLib.c\",000001000013\n000017 819 ,000002000013\n000018(__int64)000019\"!EFI_ERROR (Status)\");000012\n}00000B\nreturn 00001Eresult;00001D\n}000000",
"0x3ed8": "unsigned __int64 __fastcall sub_3ED8(char *src, _QWORD *a2)\n{\n __int64 SystemTable; // rdi\n __int64 v5; // rbx\n __int64 i; // r14\n\n if (src) /*0x3efa*/\n sub_3DDC((__int64)\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiLib\\\\UefiLib.c\", 97, (__int64)\"TableGuid = ((void *) 0)\"); /*0x3f0d*/\n if (a2) /*0x3f15*/\n sub_3DDC((__int64)\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiLib\\\\UefiLib.c\", 98, (__int64)\"Table = ((void *) 0)\"); /*0x3f28*/\n SystemTable = SystemTable; /*0x3f2d*/\n v5 = 0; /*0x3f34*/\n *a2 = 0; /*0x3f36*/\n if (*(_QWORD *)(SystemTable + 104)) /*0x3f3a*/\n return 0x800000000000000EuLL; /*0x3f63*/\n for (i = 0; sub_380C(src, i + *(_QWORD *)(SystemTable + 112)); i += 24) /*0x3f40*/\n {\n if ((unsigned __int64)++v5 >= *(_QWORD *)(SystemTable + 104)) /*0x3f61*/\n return 0x800000000000000EuLL; /*0x3f61*/\n }\n *a2 = *(_QWORD *)(*(_QWORD *)(SystemTable + 112) + 24 * v5 + 16); /*0x3f97*/\n return 0; /*0x3f81*/\n}",
"0x3f9c": "__int64 sub_3F9C()\n{000000\n000000__int64 result; // rax\n000001signed __int64 v1; // rax\n000000\n000001 000003result 000002= 000004qword_70E8;000001\nif ( 000035!000036qword_70E8 )000005\n{000006\n000009v1 000008= 00000Bsub_3ED800000A(00000C&00000Dasc_7050, 00000E&00000Fqword_70E8);000007 // \"L\"\nif ( 000021v1 000020< 000022 0 )000010\n{000011\n000014sub_3D5C000013(000015 0x80000000LL , 000016\"\\nASSERT_EFI_ERROR (Status = %r)\\n\", 000017v1);000012\n00001Asub_3DDC000019(00001B(__int64)00001C\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeHobLib\\\\HobLib.c\", 00001D 54 , 00001E(__int64)00001F\"!EFI_ERROR (Status)\");000018\n}000011\n000025result 000024= 000026qword_70E8;000023\nif ( 000033!000034qword_70E8 )000027\n{000028\n00002Bsub_3DDC00002A(00002C(__int64)00002D\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeHobLib\\\\HobLib.c\", 00002E 55 , 00002F(__int64)000030\"mHobList != ((void *) 0)\");000029\nreturn 000032qword_70E8;000031\n}000028\n}000006\nreturn 000038result;000037\n}000000",
"0x4020": "void nullsub_1()\n{\n ; /*0x4020*/\n}",
"0x4024": "__int64 sub_4024()\n{\n __int64 result; // rax\n\n result = (*(__int64 (__fastcall **)(_QWORD, __int64 *))(RuntimeServices + 64))(0, &RuntimeServices_1); /*0x4038*/\n byte_70F0 = 1; /*0x403b*/\n return result; /*0x4042*/\n}",
"0x4048": "__int64 sub_4048()\n{\n __int64 result; // rax\n unsigned __int64 v1; // rbx\n __int64 v2; // rdi\n\n result = qword_7100; /*0x4052*/\n v1 = 0; /*0x4059*/\n if (qword_7100) /*0x405e*/\n {\n if (qword_7108) /*0x4067*/\n {\n v2 = 0; /*0x4069*/\n while (1) /*0x407b*/\n {\n (*(void (__fastcall **)(_QWORD, __int64))(RuntimeServices + 64))(0, v2 + result + 8); /*0x407b*/\n ++v1; /*0x407e*/\n v2 += 16; /*0x4081*/\n if (v1 >= qword_7108) /*0x408c*/\n break; /*0x408c*/\n result = qword_7100; /*0x408e*/\n }\n }\n return (*(__int64 (__fastcall **)(_QWORD, __int64 *))(RuntimeServices + 64))(0, &qword_7100); /*0x40a7*/\n }\n return result; /*0x40af*/\n}",
"0x40b8": "__int64 __fastcall sub_40B8(__int64 n1024064)\n{\n __int64 v2; // rbx\n unsigned __int64 v3; // rax\n _QWORD *v4; // rcx\n\n if ((n1024064 & 0xFFFFFFFFF0000000uLL) = 0) /*0x40c8*/\n sub_3DDC(/*0x40dd*/\n (__int64)\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeRuntimePciExpressLib\\\\PciExpressLib.c\",\n 203,\n (__int64)\"((Address) & ~0xfffffff) == 0\");\n v2 = qword_7110 + n1024064; /*0x40e2*/\n v3 = 0; /*0x40e9*/\n if (byte_70F0) /*0x40f1*/\n {\n if (*(_QWORD *)(qword_7100 + 16 * qword_7118) == (v2 & 0xFFFFFFFFFFFFF000uLL)) /*0x4112*/\n {\n return *(_QWORD *)(qword_7100 + 16 * qword_7118 + 8) + (v2 & 0xFFF); /*0x411a*/\n }\n else\n {\n if (qword_7108) /*0x412b*/\n {\nLABEL_10:\n sub_3DDC(/*0x4141*/\n (__int64)\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeRuntimePciExpressLib\\\\PciExpressLib.c\",\n 246,\n (__int64)\"((BOOLEAN)(0==1))\");\n __debugbreak(); /*0x4159*/\n }\n v4 = (_QWORD *)qword_7100; /*0x412d*/\n while (*v4 != (v2 & 0xFFFFFFFFFFFFF000uLL)) /*0x4133*/\n {\n ++v3; /*0x4135*/\n v4 += 2; /*0x4138*/\n if (v3 >= qword_7108) /*0x413f*/\n goto LABEL_10; /*0x413f*/\n }\n qword_7118 = v3; /*0x4163*/\n return *(_QWORD *)(qword_7100 + 16 * v3 + 8) + (v2 & 0xFFF); /*0x4173*/\n }\n }\n return v2; /*0x415d*/\n}",
"0x417c": "__int64 __fastcall sub_417C(unsigned int n107386)\n{\n unsigned int v1; // ebx\n int n0x400000; // edi\n int v3; // esi\n __int64 result; // rax\n\n v1 = n107386 >> 22; /*0x4194*/\n n0x400000 = n107386 & 0x3FFFFF; /*0x419c*/\n do /*0x41d8*/\n {\n v3 = n0x400000 + (sub_437C) & 0xFFFFFF); /*0x41b2*/\n n0x400000 = 0x400000; /*0x41b4*/\n while (((v3 - (unsigned int)sub_437C)) & 0x800000) == 0) /*0x41d0*/\n mm_pause_w(); /*0x41bb*/\n result = v1--; /*0x41d2*/\n }\n while ((_DWORD)result); /*0x41d8*/\n return result; /*0x41e9*/\n}",
"0x41f0": "__int64 __fastcall sub_41F0(unsigned __int16 a1, __int64 a2, double a3)\n{\n __int64 v4; // rax\n __int64 v5; // rdi\n __int64 n62; // rdx\n __int64 v7; // rax\n __int64 v8; // rax\n char v10; // [rsp+58h] [rbp+10h] BYREF\n char v11; // [rsp+59h] [rbp+11h]\n unsigned __int8 v12; // [rsp+5Ah] [rbp+12h]\n __int64 v13; // [rsp+60h] [rbp+18h] BYREF\n __int64 n5; // [rsp+68h] [rbp+20h] BYREF\n\n v13 = 0; /*0x41f8*/\n sub_3D5C(64, \"%a: Start\\n\", a3);\n v4 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(BootServices + 320))(&unk_7030, 0, &v13); /*0x422e*/\n v5 = v4; /*0x4234*/\n if (v4 >= 0)\n {\n n5 = 5; /*0x4279*/\n while (1)\n {\n v7 = (*(__int64 (__fastcall **)(__int64, _QWORD, _QWORD, __int64 *, char *))(v13 + 16))(v13, 0, a1, &n5, &v10); /*0x429b*/\n v5 = v7; /*0x429e*/\n if (v7 < 0) /*0x42a4*/\n break; /*0x42a4*/\n if (v10 == -64)\n {\n v8 = sub_35F4(); /*0x42c1*/\n (*(void (__fastcall **)(__int64, _QWORD))(v8 + 128))(189, a1); /*0x42ce*/\n v5 = a1; /*0x42e4*/\n sub_3D5C(64, \"Misc Area offset: %x \\n\", a1);\n return v5; /*0x42ec*/\n }\n a1 += v12 + 5; /*0x42b5*/\n if (v11 < 0) /*0x42bd*/\n return v5; /*0x42bd*/\n }\n sub_3D5C(0x80000000LL, \"%a: Failed to get FRU data[0x%x]. Status = %r\\n\", \"UpdateMiscOffsetPcd\", a1, v7);\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v5); /*0x431d*/\n n62 = 62; /*0x4322*/\n }\n else\n {\n sub_3D5C(0x80000000LL, \"%a: Failed to locate EfiRedirFruProtocol. Status = %r\\n\", \"UpdateMiscOffsetPcd\", v4);\n sub_3D5C(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v5); /*0x4265*/\n n62 = 47; /*0x426a*/\n }\n sub_3DDC(/*0x4335*/\n (__int64)\"e:\\\\hs\\\\LenovoPlatformPkg\\\\Library\\\\OemMiscOffsetDxeLib\\\\OemMiscOffsetDxeLib.c\",\n n62,\n (__int64)\"!EFI_ERROR (Status)\");\n return v5; /*0x433d*/\n}",
"0x4348": "__int64 __fastcall sub_4348(_WORD *a1)\n{\n if (((unsigned __int8)a1 & 1) != 0) /*0x4354*/\n sub_3DDC((__int64)\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseIoLibIntrinsic\\\\IoLib.c\", 183, (__int64)\"(Address & 1) == 0\"); /*0x4369*/\n *a1 = 1280; /*0x4373*/\n return 1280; /*0x4376*/\n}",
"0x437c": "unsigned __int32 __fastcall sub_437C(unsigned __int16 n1288)\n{000000\n000001 if ( (00000Dn1288 00000C& 00000E 3 ) 00000B!= 00000F 0 )000001\n000003 000005sub_3DDC000004(000006(__int64)000007\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseIoLibIntrinsic\\\\IoLibMsc.c\", 000008 193 , 000009(__int64)00000A\"(Port & 3) == 0\");000003\nreturn 000012__indword000011(000013n1288);000010\n}000000",
"0x1d38": "char __fastcall sub_1D38(__int64 a1)\n{000000\n000002__int64 v2; // rbx\n000003__int64 v3; // rax\n000004__int64 v4; // rbx\n000005__int64 v5; // rdi\n000006__int64 v6; // rax\n000007char *src; // rbx\n000008__int64 v8; // rax\n000009__int64 LENOVO_2; // rbx\n00000Aconst __int16 *LENOVO; // rsi\n00000Bconst __int16 *LENOVO_1; // r14\n00000C__int64 v12; // rax\n00000Dconst __int16 *ThinkSystem_; // rbx\n00000Eunsigned __int8 n16; // al\n00000F__int64 v15; // rax\n000010__int64 v16; // rax\n000011__int64 LENOVO_4; // rbx\n000012const __int16 *LENOVO_3; // r14\n000013__int64 v19; // rax\n000014__int64 LENOVO_6; // rbx\n000015const __int16 *LENOVO_5; // r14\n000016__int64 v22; // rbx\n000017_BYTE *v23; // rdi\n000018__int16 v24; // ax\n000019__int64 v25; // rax\n00001A__int64 LENOVO_8; // rbx\n00001Bconst __int16 *LENOVO_7; // r14\n00001C__int64 v28; // rax\n00001D__int64 LENOVO_10; // rbx\n00001Econst __int16 *LENOVO_9; // r14\n00001F__int64 v31; // rax\n000020__int64 LENOVO_12; // rbx\n000021const __int16 *LENOVO_11; // r14\n000022__int64 v34; // rax\n000023__int64 LENOVO_14; // rbx\n000024const __int16 *LENOVO_13; // r14\n000025__int64 v37; // rax\n000026__int64 LENOVO_16; // rbx\n000027const __int16 *LENOVO_15; // r14\n000028__int64 v40; // rbx\n000029__int64 v41; // rdi\n00002A__int64 v42; // rax\n00002B__int64 v43; // rax\n00002C__int64 LENOVO_18; // rbx\n00002Dconst __int16 *LENOVO_17; // r14\n00002E__int64 v46; // rax\n00002F__int64 LENOVO_20; // rbx\n000030const __int16 *LENOVO_19; // r14\n000031__int64 v49; // rax\n000032__int64 LENOVO_22; // rbx\n000033const __int16 *LENOVO_21; // r14\n000034__int64 v52; // rax\n000035__int64 LENOVO_23; // rbx\n000037__int64 v55; // [rsp+30h] [rbp-D0h] BYREF\n000038__int64 v56; // [rsp+38h] [rbp-C8h] BYREF\n000039__int64 v57; // [rsp+40h] [rbp-C0h] BYREF\n00003Aint v58; // [rsp+48h] [rbp-B8h] BYREF\n00003B__int64 v59; // [rsp+4Ch] [rbp-B4h]\n00003Cint v60; // [rsp+54h] [rbp-ACh]\n00003D_BYTE v61[256]; // [rsp+60h] [rbp-A0h] BYREF\n00003E_WORD ThinkSystem__1[88]; // [rsp+160h] [rbp+60h] BYREF\n00003Fchar n2; // [rsp+230h] [rbp+130h] BYREF\n000040__int16 v64; // [rsp+238h] [rbp+138h] BYREF\n000000\n000001 000003v59 000002= 000004 0 ;000001\n000007v60 000006= 000008 0 ;000005\n00000Bv58 00000A= 00000C 0 ;000009\n00000Fv2 00000E= 000011(*000012(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(000014BootServices 000013+ 000015 320 ))000010(000016&000017unk_7020, 000018 0 , 000019&00001Av56);00000D\n00001ELOBYTE00001D(00001Fv3) 00001C= 000021sub_3D5C000020(000022 64 , 000023\"Locate SmbiosProtocol Status:%r \\n\", 000024v2);00001B\nif ( 000599v2 000598>= 00059A 0 )000025\n{000026\n000029(*00002A(void (__fastcall **)(__int64))(00002CBootServices 00002B+ 00002D 112 ))000028(00002Ea1);000027\n000031n2 000030= 000032 1 ;00002F\n000035v64 000034= 000036 -2 ;000033\nif ( 00003C(*00003D(__int64 (__fastcall **)(__int64, __int16 *, char *, __int64 *, _QWORD))(00003Fv56 00003E+ 000040 24 ))00003B(000041v56, 000042&000043v64, 000044&000045n2, 000046&000047v57, 000048 0 ) 00003A>= 000049 0 )000037\n000039 goto LABEL_6 ;000039\n00004Cv3 00004B= 00004Esub_3E5000004D(00004F 4 , 000050 29 );00004A\n000053v4 000052= 000054v3;000051\nif ( 000597v3 )000055\n{000056\n000059*00005A(_DWORD *)00005Bv3 000058= 00005C -58623 ;000057\n00005Fv64 00005E= 000060 -2 ;00005D\n000063v3 000062= 000065(*000066(__int64 (__fastcall **)(__int64, _QWORD, __int16 *, __int64))000067v56)000064(000068v56, 000069 0 , 00006A&00006Bv64, 00006Cv3);000061\nif ( 000595v3 000594>= 000596 0 )00006D\n{00006E\n000071sub_3E94000070(000072v4);00006F\n000075v64 000074= 000076 -2 ;000073\n000079v3 000078= 00007B(*00007C(__int64 (__fastcall **)(__int64, __int16 *, char *, __int64 *, _QWORD))(00007Ev56 00007D+ 00007F 24 ))00007A(00007A\n000080v56,00000100007A\n000081&000082v64,00000200007A\n000083&000084n2,00000300007A\n000085&000086v57,00000400007A\n000087 0 );000077\nif ( 000592v3 000591>= 000593 0 )000088\n{000089\n00008ALABEL_6 :00008A\n00008Cv5 00008B= 00008Dv57;00008A\n000090*000091(_DWORD *)(000093v57 000092+ 000094 4 ) 00008F= 000095 0 ;00008E\n000098v6 000097= 00009Asub_35F4000099();000096\n00009Dsrc 00009C= 00009E(char *)0000A0(*0000A1(__int64 (__fastcall **)(__int64))(0000A3v6 0000A2+ 0000A4 40 ))00009F(0000A5 187 );00009B\nif ( 0000B1!0000B2(unsigned __int8)0000B4sub_380C0000B3(0000B5src, 0000B6&0000B7v58) )0000A6\n0000A8 0000AAsub_36FC0000A9(0000AB(char *)(0000ADv5 0000AC+ 0000AE 8 ), 0000AFsrc, 0000B0 0x10u );0000A8\n0000BAv64 0000B9= 0000BB*0000BC(_WORD *)(0000BEv5 0000BD+ 0000BF 2 );0000B8\n0000C2v55 0000C1= 0000C3 1 ;0000C0\n0000C6v8 0000C5= 0000C8sub_35F40000C7();0000C4\n0000CBLENOVO_2 0000CA= 0000CD(*0000CE(__int64 (__fastcall **)(__int64))(0000D0v8 0000CF+ 0000D1 40 ))0000CC(0000D2 118 );0000C9\n0000D5LENOVO 0000D4= 0000D6L\"LENOVO\";0000D3\n0000D9LENOVO_1 0000D8= 0000DAL\"LENOVO\";0000D7\nif ( 0000E3sub_39E00000E2(0000E4LENOVO_2, 0000E5L\"To be filled by O.E.M. \") )0000DB\n0000DD 0000DFLENOVO_1 0000DE= 0000E0(const __int16 *)0000E1LENOVO_2;0000DD\nif ( 000107sub_39E0000106(000108LENOVO_1, 000109&00010Aunk_51BC) )0000E6\n{0000E7\n0000EAsub_3A800000E9(0000EBLENOVO_1, 0000ECv61);0000E8\nif ( 0000FA(*0000FB(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0000FDv56 0000FC+ 0000FE 8 ))0000F9(0000FFv56, 000100&000101v64, 000102&000103v55, 000104v61) 0000F8>= 000105 0 )0000ED\n0000EF 0000F1*0000F2(_BYTE *)(0000F4v5 0000F3+ 0000F5 4 ) 0000F0= 0000F7v550000F6++;0000EF\n}0000E7\n00010Dv12 00010C= 00010Fsub_35F400010E();00010B\n000112ThinkSystem_ 000111= 000113(const __int16 *)000115(*000116(__int64 (__fastcall **)(__int64))(000118v12 000117+ 000119 40 ))000114(00011A 117 );000110\nif ( 000159sub_39E0000158(00015AThinkSystem_, 00015BL\"To be filled by O.E.M. \") )00011B\n{00011C\n00011F__outbyte00011E(000120 0x72u , 000121 0x5Cu );00011D\n000124n16 000123= 000126__inbyte000125(000127 0x73u );000122\nif ( 000151n16 000150== 000152 16 )000128\n{000129\n00012Csub_387400012B(00012DThinkSystem__1, 00012EL\"ThinkSystem \");00012A\n000131v15 000130= 000133sub_394C000132(000134ThinkSystem__1);00012F\n000137sub_3874000136(000138&00013AThinkSystem__1000139[00013Bv15], 00013CThinkSystem_);000135\nif ( 000147 2 000146* 000149sub_394C000148(00014AThinkSystem__1) 000145== 00014B -2 )00013D\n00013F 000141sub_3DDC000140(000142\"e:\\\\hs\\\\MdePkg\\\\Library\\\\BaseLib\\\\String.c\", 000143 378 , 000144\"StrSize (Destination) != 0\");00013F\n00014EThinkSystem_ 00014D= 00014FThinkSystem__1;00014C\n}000129\n}00011C\nelse 00011B\n{000153\n000156ThinkSystem_ 000155= 000157L\"LENOVO\";000154\n}000153\nif ( 00017Dsub_39E000017C(00017EThinkSystem_, 00017F&000180unk_51BC) )00015C\n{00015D\n000160sub_3A8000015F(000161ThinkSystem_, 000162v61);00015E\nif ( 000170(*000171(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(000173v56 000172+ 000174 8 ))00016F(000175v56, 000176&000177v64, 000178&000179v55, 00017Av61) 00016E>= 00017B 0 )000163\n000165 000167*000168(_BYTE *)(00016Av5 000169+ 00016B 5 ) 000166= 00016Dv5500016C++;000165\n}00015D\n000183v16 000182= 000185sub_35F4000184();000181\n000188LENOVO_4 000187= 00018A(*00018B(__int64 (__fastcall **)(__int64))(00018Dv16 00018C+ 00018E 40 ))000189(00018F 119 );000186\n000192LENOVO_3 000191= 000193L\"LENOVO\";000190\nif ( 00019Csub_39E000019B(00019DLENOVO_4, 00019EL\"To be filled by O.E.M. \") )000194\n000196 000198LENOVO_3 000197= 000199(const __int16 *)00019ALENOVO_4;000196\nif ( 0001C0sub_39E00001BF(0001C1LENOVO_3, 0001C2&0001C3unk_51BC) )00019F\n{0001A0\n0001A3sub_3A800001A2(0001A4LENOVO_3, 0001A5v61);0001A1\nif ( 0001B3(*0001B4(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0001B6v56 0001B5+ 0001B7 8 ))0001B2(0001B8v56, 0001B9&0001BAv64, 0001BB&0001BCv55, 0001BDv61) 0001B1>= 0001BE 0 )0001A6\n0001A8 0001AA*0001AB(_BYTE *)(0001ADv5 0001AC+ 0001AE 6 ) 0001A9= 0001B0v550001AF++;0001A8\n}0001A0\n0001C6v19 0001C5= 0001C8sub_35F40001C7();0001C4\n0001CBLENOVO_6 0001CA= 0001CD(*0001CE(__int64 (__fastcall **)(__int64))(0001D0v19 0001CF+ 0001D1 40 ))0001CC(0001D2 120 );0001C9\n0001D5LENOVO_5 0001D4= 0001D6L\"LENOVO\";0001D3\nif ( 0001DFsub_39E00001DE(0001E0LENOVO_6, 0001E1L\"To be filled by O.E.M. \") )0001D7\n0001D9 0001DBLENOVO_5 0001DA= 0001DC(const __int16 *)0001DDLENOVO_6;0001D9\nif ( 000202sub_39E0000201(000203LENOVO_5, 000204&000205unk_51BC) )0001E2\n{0001E3\n0001E6sub_3A800001E5(0001E7LENOVO_5, 0001E8v61);0001E4\nif ( 0001F5(*0001F6(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0001F8v56 0001F7+ 0001F9 8 ))0001F4(0001FAv56, 0001FB&0001FCv64, 0001FD&0001FEv55, 0001FFv61) 0001F3>= 000200 0 )0001E9\n0001EB 0001ED*0001EE(_BYTE *)(0001F0v5 0001EF+ 0001F1 7 ) 0001EC= 0001F2v55;0001EB\n}0001E3\n000208v64 000207= 000209 -2 ;000206\n00020Cn2 00020B= 00020D 2 ;00020A\nif ( 000213(*000214(__int64 (__fastcall **)(__int64, __int16 *, char *, __int64 *, _QWORD))(000216v56 000215+ 000217 24 ))000212(000212\n000218v56,000001000212\n000219&00021Av64,000002000212\n00021B&00021Cn2,000003000212\n00021D&00021Ev57,000004000212\n00021F 0 ) 000211>= 000220 0 )00020E\n000210 goto LABEL_36 ;000210\n000223v3 000222= 000225sub_3E50000224(000226 4 , 000227 19 );000221\n00022Av22 000229= 00022Bv3;000228\nif ( 000590v3 )00022C\n{00022D\n000230*000231(_WORD *)000232v3 00022F= 000233 4354 ;00022E\n000236*000237(_WORD *)(000239v3 000238+ 00023A 2 ) 000235= 00023B -1 ;000234\n00023Ev64 00023D= 00023F -2 ;00023C\n000242v3 000241= 000244(*000245(__int64 (__fastcall **)(__int64, _QWORD, __int16 *, __int64))000246v56)000243(000247v56, 000248 0 , 000249&00024Av64, 00024Bv3);000240\nif ( 00058Ev3 00058D>= 00058F 0 )00024C\n{00024D\n000250sub_3E9400024F(000251v22);00024E\n000254v64 000253= 000255 -2 ;000252\n000258v3 000257= 00025A(*00025B(__int64 (__fastcall **)(__int64, __int16 *, char *, __int64 *, _QWORD))(00025Dv56 00025C+ 00025E 24 ))000259(000259\n00025Fv56,000001000259\n000260&000261v64,000002000259\n000262&000263n2,000003000259\n000264&000265v57,000004000259\n000266 0 );000256\nif ( 00058Bv3 00058A>= 00058C 0 )000267\n{000268\n000269LABEL_36 :000269\n00026Bv23 00026A= 00026C(_BYTE *)00026Dv57;000269\n000270v24 00026F= 000271*000272(_WORD *)(000274v57 000273+ 000275 2 );00026E\n000278*000279(_DWORD *)(00027Bv57 00027A+ 00027C 4 ) 000277= 00027D 0 ;000276\n000281v23000280[000282 8 ] 00027F= 000283 0 ;00027E\n000286v64 000285= 000287v24;000284\n00028Av55 000289= 00028B 1 ;000288\n00028Ev25 00028D= 000290sub_35F400028F();00028C\n000293LENOVO_8 000292= 000295(*000296(__int64 (__fastcall **)(__int64))(000298v25 000297+ 000299 40 ))000294(00029A 121 );000291\n00029DLENOVO_7 00029C= 00029EL\"LENOVO\";00029B\nif ( 0002A7sub_39E00002A6(0002A8LENOVO_8, 0002A9L\"To be filled by O.E.M. \") )00029F\n0002A1 0002A3LENOVO_7 0002A2= 0002A4(const __int16 *)0002A5LENOVO_8;0002A1\nif ( 0002C9sub_39E00002C8(0002CALENOVO_7, 0002CB&0002CCunk_51BC) )0002AA\n{0002AB\n0002AEsub_3A800002AD(0002AFLENOVO_7, 0002B0v61);0002AC\nif ( 0002BC(*0002BD(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0002BFv56 0002BE+ 0002C0 8 ))0002BB(0002BB\n0002C1v56,0000010002BB\n0002C2&0002C3v64,0000020002BB\n0002C4&0002C5v55,0000030002BB\n0002C6v61) 0002BA>= 0002C7 0 )0002B1\n0002B3 0002B6v230002B5[0002B7 4 ] 0002B4= 0002B9v550002B8++;0002B3\n}0002AB\n0002CFv28 0002CE= 0002D1sub_35F40002D0();0002CD\n0002D4LENOVO_10 0002D3= 0002D6(*0002D7(__int64 (__fastcall **)(__int64))(0002D9v28 0002D8+ 0002DA 40 ))0002D5(0002DB 122 );0002D2\n0002DELENOVO_9 0002DD= 0002DFL\"LENOVO\";0002DC\nif ( 0002E8sub_39E00002E7(0002E9LENOVO_10, 0002EAL\"To be filled by O.E.M. \") )0002E0\n0002E2 0002E4LENOVO_9 0002E3= 0002E5(const __int16 *)0002E6LENOVO_10;0002E2\nif ( 00030Asub_39E0000309(00030BLENOVO_9, 00030C&00030Dunk_51BC) )0002EB\n{0002EC\n0002EFsub_3A800002EE(0002F0LENOVO_9, 0002F1v61);0002ED\nif ( 0002FD(*0002FE(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(000300v56 0002FF+ 000301 8 ))0002FC(0002FC\n000302v56,0000010002FC\n000303&000304v64,0000020002FC\n000305&000306v55,0000030002FC\n000307v61) 0002FB>= 000308 0 )0002F2\n0002F4 0002F7v230002F6[0002F8 5 ] 0002F5= 0002FAv550002F9++;0002F4\n}0002EC\n000310v31 00030F= 000312sub_35F4000311();00030E\n000315LENOVO_12 000314= 000317(*000318(__int64 (__fastcall **)(__int64))(00031Av31 000319+ 00031B 40 ))000316(00031C 123 );000313\n00031FLENOVO_11 00031E= 000320L\"LENOVO\";00031D\nif ( 000329sub_39E0000328(00032ALENOVO_12, 00032BL\"To be filled by O.E.M. \") )000321\n000323 000325LENOVO_11 000324= 000326(const __int16 *)000327LENOVO_12;000323\nif ( 00034Bsub_39E000034A(00034CLENOVO_11, 00034D&00034Eunk_51BC) )00032C\n{00032D\n000330sub_3A8000032F(000331LENOVO_11, 000332v61);00032E\nif ( 00033E(*00033F(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(000341v56 000340+ 000342 8 ))00033D(00033D\n000343v56,00000100033D\n000344&000345v64,00000200033D\n000346&000347v55,00000300033D\n000348v61) 00033C>= 000349 0 )000333\n000335 000338v23000337[000339 6 ] 000336= 00033Bv5500033A++;000335\n}00032D\n000351v34 000350= 000353sub_35F4000352();00034F\n000356LENOVO_14 000355= 000358(*000359(__int64 (__fastcall **)(__int64))(00035Bv34 00035A+ 00035C 40 ))000357(00035D 124 );000354\n000360LENOVO_13 00035F= 000361L\"LENOVO\";00035E\nif ( 00036Asub_39E0000369(00036BLENOVO_14, 00036CL\"To be filled by O.E.M. \") )000362\n000364 000366LENOVO_13 000365= 000367(const __int16 *)000368LENOVO_14;000364\nif ( 00038Csub_39E000038B(00038DLENOVO_13, 00038E&00038Funk_51BC) )00036D\n{00036E\n000371sub_3A80000370(000372LENOVO_13, 000373v61);00036F\nif ( 00037F(*000380(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(000382v56 000381+ 000383 8 ))00037E(00037E\n000384v56,00000100037E\n000385&000386v64,00000200037E\n000387&000388v55,00000300037E\n000389v61) 00037D>= 00038A 0 )000374\n000376 000379v23000378[00037A 7 ] 000377= 00037Cv5500037B++;000376\n}00036E\n000392v37 000391= 000394sub_35F4000393();000390\n000397LENOVO_16 000396= 000399(*00039A(__int64 (__fastcall **)(__int64))(00039Cv37 00039B+ 00039D 40 ))000398(00039E 125 );000395\n0003A1LENOVO_15 0003A0= 0003A2L\"LENOVO\";00039F\nif ( 0003ABsub_39E00003AA(0003ACLENOVO_16, 0003ADL\"To be filled by O.E.M. \") )0003A3\n0003A5 0003A7LENOVO_15 0003A6= 0003A8(const __int16 *)0003A9LENOVO_16;0003A5\nif ( 0003CCsub_39E00003CB(0003CDLENOVO_15, 0003CE&0003CFunk_51BC) )0003AE\n{0003AF\n0003B2sub_3A800003B1(0003B3LENOVO_15, 0003B4v61);0003B0\nif ( 0003BF(*0003C0(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0003C2v56 0003C1+ 0003C3 8 ))0003BE(0003BE\n0003C4v56,0000010003BE\n0003C5&0003C6v64,0000020003BE\n0003C7&0003C8v55,0000030003BE\n0003C9v61) 0003BD>= 0003CA 0 )0003B5\n0003B7 0003BAv230003B9[0003BB 8 ] 0003B8= 0003BCv55;0003B7\n}0003AF\n0003D2v64 0003D1= 0003D3 -2 ;0003D0\n0003D6n2 0003D5= 0003D7 3 ;0003D4\nif ( 0003DD(*0003DE(__int64 (__fastcall **)(__int64, __int16 *, char *, __int64 *, _QWORD))(0003E0v56 0003DF+ 0003E1 24 ))0003DC(0003DC\n0003E2v56,0000010003DC\n0003E3&0003E4v64,0000020003DC\n0003E5&0003E6n2,0000030003DC\n0003E7&0003E8v57,0000040003DC\n0003E9 0 ) 0003DB>= 0003EA 0 )0003D8\n0003DA goto LABEL_65 ;0003DA\n0003EDv3 0003EC= 0003EFsub_3E500003EE(0003F0 4 , 0003F1 26 );0003EB\n0003F4v40 0003F3= 0003F5v3;0003F2\nif ( 000589v3 )0003F6\n{0003F7\n0003FA*0003FB(_WORD *)0003FCv3 0003F9= 0003FD 6147 ;0003F8\n000400*000401(_WORD *)(000403v3 000402+ 000404 2 ) 0003FF= 000405 -1 ;0003FE\n000408v64 000407= 000409 -2 ;000406\n00040Cv3 00040B= 00040E(*00040F(__int64 (__fastcall **)(__int64, _QWORD, __int16 *, __int64))000410v56)00040D(000411v56, 000412 0 , 000413&000414v64, 000415v3);00040A\nif ( 000587v3 000586>= 000588 0 )000416\n{000417\n00041Asub_3E94000419(00041Bv40);000418\n00041Ev64 00041D= 00041F -2 ;00041C\n000422v3 000421= 000424(*000425(__int64 (__fastcall **)(__int64, __int16 *, char *, __int64 *, _QWORD))(000427v56 000426+ 000428 24 ))000423(000423\n000429v56,000001000423\n00042A&00042Bv64,000002000423\n00042C&00042Dn2,000003000423\n00042E&00042Fv57,000004000423\n000430 0 );000420\nif ( 000584v3 000583>= 000585 0 )000431\n{000432\n000433LABEL_65 :000433\n000435v41 000434= 000436v57;000433\n000439*00043A(_BYTE *)(00043Cv57 00043B+ 00043D 4 ) 000438= 00043E 0 ;000437\n000441*000442(_WORD *)(000444v41 000443+ 000445 6 ) 000440= 000446 0 ;00043F\n000449*00044A(_BYTE *)(00044Cv41 00044B+ 00044D 8 ) 000448= 00044E 0 ;000447\n000451v42 000450= 000453sub_35F4000452();00044F\n000456*000457(_BYTE *)(000459v41 000458+ 00045A 5 ) 000455= 00045C(*00045D(__int64 (__fastcall **)(__int64))(00045Fv42 00045E+ 000460 8 ))00045B(000461 188 );000454\n000464v64 000463= 000465*000466(_WORD *)(000468v41 000467+ 000469 2 );000462\n00046Cv55 00046B= 00046D 1 ;00046A\n000470v43 00046F= 000472sub_35F4000471();00046E\n000475LENOVO_18 000474= 000477(*000478(__int64 (__fastcall **)(__int64))(00047Av43 000479+ 00047B 40 ))000476(00047C 126 );000473\n00047FLENOVO_17 00047E= 000480L\"LENOVO\";00047D\nif ( 000489sub_39E0000488(00048ALENOVO_18, 00048BL\"To be filled by O.E.M. \") )000481\n000483 000485LENOVO_17 000484= 000486(const __int16 *)000487LENOVO_18;000483\nif ( 0004ADsub_39E00004AC(0004AELENOVO_17, 0004AF&0004B0unk_51BC) )00048C\n{00048D\n000490sub_3A8000048F(000491LENOVO_17, 000492v61);00048E\nif ( 0004A0(*0004A1(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0004A3v56 0004A2+ 0004A4 8 ))00049F(00049F\n0004A5v56,00000100049F\n0004A6&0004A7v64,00000200049F\n0004A8&0004A9v55,00000300049F\n0004AAv61) 00049E>= 0004AB 0 )000493\n000495 000497*000498(_BYTE *)(00049Av41 000499+ 00049B 4 ) 000496= 00049Dv5500049C++;000495\n}00048D\n0004B3v46 0004B2= 0004B5sub_35F40004B4();0004B1\n0004B8LENOVO_20 0004B7= 0004BA(*0004BB(__int64 (__fastcall **)(__int64))(0004BDv46 0004BC+ 0004BE 40 ))0004B9(0004BF 127 );0004B6\n0004C2LENOVO_19 0004C1= 0004C3L\"LENOVO\";0004C0\nif ( 0004CCsub_39E00004CB(0004CDLENOVO_20, 0004CEL\"To be filled by O.E.M. \") )0004C4\n0004C6 0004C8LENOVO_19 0004C7= 0004C9(const __int16 *)0004CALENOVO_20;0004C6\nif ( 0004F0sub_39E00004EF(0004F1LENOVO_19, 0004F2&0004F3unk_51BC) )0004CF\n{0004D0\n0004D3sub_3A800004D2(0004D4LENOVO_19, 0004D5v61);0004D1\nif ( 0004E3(*0004E4(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(0004E6v56 0004E5+ 0004E7 8 ))0004E2(0004E2\n0004E8v56,0000010004E2\n0004E9&0004EAv64,0000020004E2\n0004EB&0004ECv55,0000030004E2\n0004EDv61) 0004E1>= 0004EE 0 )0004D6\n0004D8 0004DA*0004DB(_BYTE *)(0004DDv41 0004DC+ 0004DE 6 ) 0004D9= 0004E0v550004DF++;0004D8\n}0004D0\n0004F6v49 0004F5= 0004F8sub_35F40004F7();0004F4\n0004FBLENOVO_22 0004FA= 0004FD(*0004FE(__int64 (__fastcall **)(__int64))(000500v49 0004FF+ 000501 40 ))0004FC(000502 128 );0004F9\n000505LENOVO_21 000504= 000506L\"LENOVO\";000503\nif ( 00050Fsub_39E000050E(000510LENOVO_22, 000511L\"To be filled by O.E.M. \") )000507\n000509 00050BLENOVO_21 00050A= 00050C(const __int16 *)00050DLENOVO_22;000509\nif ( 000533sub_39E0000532(000534LENOVO_21, 000535&000536unk_51BC) )000512\n{000513\n000516sub_3A80000515(000517LENOVO_21, 000518v61);000514\nif ( 000526(*000527(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(000529v56 000528+ 00052A 8 ))000525(000525\n00052Bv56,000001000525\n00052C&00052Dv64,000002000525\n00052E&00052Fv55,000003000525\n000530v61) 000524>= 000531 0 )000519\n00051B 00051D*00051E(_BYTE *)(000520v41 00051F+ 000521 7 ) 00051C= 000523v55000522++;00051B\n}000513\n000539v52 000538= 00053Bsub_35F400053A();000537\n00053ELENOVO_23 00053D= 000540(*000541(__int64 (__fastcall **)(__int64))(000543v52 000542+ 000544 40 ))00053F(000545 129 );00053C\nif ( 00054Esub_39E000054D(00054FLENOVO_23, 000550L\"To be filled by O.E.M. \") )000546\n000548 00054ALENOVO 000549= 00054B(const __int16 *)00054CLENOVO_23;000548\n000553v3 000552= 000555sub_39E0000554(000556LENOVO, 000557&000558unk_51BC);000551\nif ( 000582v3 )000559\n{00055A\n00055Dsub_3A8000055C(00055ELENOVO, 00055Fv61);00055B\n000562v3 000561= 000564(*000565(__int64 (__fastcall **)(__int64, __int16 *, __int64 *, _BYTE *))(000567v56 000566+ 000568 8 ))000563(000563\n000569v56,000001000563\n00056A&00056Bv64,000002000563\n00056C&00056Dv55,000003000563\n00056Ev61);000560\nif ( 000580v3 00057F>= 000581 0 )00056F\n{000570\n000574LOBYTE000573(000575v3) 000572= 000576v55;000571\n000579*00057A(_BYTE *)(00057Cv41 00057B+ 00057D 8 ) 000578= 00057Ev55;000577\n}000570\n}00055A\n}000432\n}000417\n}0003F7\n}000268\n}00024D\n}00022D\n}000089\n}00006E\n}000056\n}000026\nreturn 00059Cv3;00059B\n}000000",
"0x2990": "__int64 __fastcall sub_2990 ( __int64 a1, char a2 )\n{ 000000\n000002__int64 v2 ; // r14\n000003__int64 v3 ; // r12\n000004__int64 v4 ; // r13\n000005__int64 v5 ; // rdi\n000006__int64 result ; // rax\n000007__int64 v7 ; // r15\n000008int v8 ; // eax\n000009__int16 v9 ; // bx\n00000A__int64 v10 ; // rax\n00000B__int64 v11 ; // rsi\n00000C__int64 v12 ; // rax\n00000D__int64 v13 ; // rax\n00000Eunsigned __int8 n16_2 ; // bl\n00000F__int64 v15 ; // rbx\n000010_BYTE *v16 ; // rcx\n000011__int64 v17 ; // rax\n000012unsigned __int64 v18 ; // rax\n000013__int64 v19 ; // rdx\n000014__int64 v20 ; // r14\n000015_BYTE *v21 ; // rcx\n000016signed __int64 v22 ; // rax\n000017__int64 v23 ; // rax\n000018unsigned __int8 n16_3 ; // bl\n000019__int64 v25 ; // r14\n00001A__int64 v26 ; // rax\n00001B__int64 v27 ; // rdi\n00001C__int64 v28 ; // rax\n00001Dunsigned __int8 n16_4 ; // bl\n00001E__int64 v30 ; // r14\n00001F__int64 v31 ; // rax\n000020__int64 v32 ; // rax\n000021unsigned __int8 n16_5 ; // bl\n000022_BYTE *v34 ; // rcx\n000023__int64 v35 ; // rax\n000024char v36 ; // cl\n000025int v37 ; // eax\n000026__int16 v38 ; // bx\n000027__int64 v39 ; // rax\n000028__int64 v40 ; // r14\n000029__int64 v41 ; // rax\n00002Aunsigned __int8 n16_6 ; // bl\n00002B__int64 v43 ; // rax\n00002C__int64 v44 ; // rax\n00002Dunsigned __int8 n16_7 ; // bl\n00002E__int64 v46 ; // rsi\n00002F_BYTE *v47 ; // rcx\n000030__int64 v48 ; // rax\n000031__int64 v49 ; // rax\n000032unsigned __int8 n16_8 ; // bl\n000033__int64 v51 ; // rsi\n000034__int64 v52 ; // rax\n000035__int64 v53 ; // rax\n000036unsigned __int8 n16_9 ; // bl\n000037_BYTE *v55 ; // rcx\n000038__int64 v56 ; // rax\n000039__int64 v57 ; // rax\n00003Aunsigned __int8 n16_10 ; // bl\n00003Bint v59 ; // eax\n00003C__int16 v60 ; // bx\n00003D__int64 v61 ; // rax\n00003E__int64 v62 ; // rsi\n00003Fchar v63 ; // bl\n000040__int64 v64 ; // rax\n000041__int64 v65 ; // rdx\n000042__int64 v66 ; // rax\n000043__int64 v67 ; // rax\n000044unsigned __int8 n16_11 ; // bl\n000045_BYTE *v69 ; // rcx\n000046unsigned __int64 v70 ; // rax\n000047__int64 v71 ; // rax\n000048unsigned __int8 n16_12 ; // bl\n000049__int64 v73 ; // rax\n00004Aunsigned __int8 n16_13 ; // bl\n00004B__int64 v75 ; // rax\n00004Cunsigned __int8 n16_14 ; // bl\n00004D__int16 v77 ; // bx\n00004E__int64 v78 ; // rdi\n00004F__int64 v79 ; // rbx\n000050__int64 v80 ; // rax\n000051unsigned __int8 n16_1 ; // bl\n000052unsigned __int64 n16 ; // [rsp+30h] [rbp-39h] BYREF\n000053unsigned __int8 v83[8] ; // [rsp+38h] [rbp-31h] BYREF\n000054__int64 v84 ; // [rsp+40h] [rbp-29h] BYREF\n000055unsigned __int8 v85[8] ; // [rsp+48h] [rbp-21h] BYREF\n000056char n3_2 ; // [rsp+50h] [rbp-19h] BYREF\n000057int v87 ; // [rsp+51h] [rbp-18h]\n000058__int16 v88 ; // [rsp+55h] [rbp-14h]\n000059char v89 ; // [rsp+57h] [rbp-12h]\n00005A__int64 v90 ; // [rsp+58h] [rbp-11h] BYREF\n00005B__int64 v91 ; // [rsp+60h] [rbp-9h] BYREF\n00005Cchar n3_1 ; // [rsp+68h] [rbp-1h] BYREF\n00005D__int64 v93[10] ; // [rsp+69h] [rbp+0h] BYREF\n00005Fchar v95 ; // [rsp+D8h] [rbp+6Fh]\n000060__int64 n7 ; // [rsp+E0h] [rbp+77h] BYREF\n000061char n3 ; // [rsp+E8h] [rbp+7Fh] BYREF\n000062int v98 ; // [rsp+E9h] [rbp+80h]\n000000000000\n000000000001 000003v95 000002 = 000004a2 ; 000001\n000005 000007n3_2 000006 = 000008 0 ; 000005\n000009 00000Bv2 00000A = 00000Ca1 ; 000009\n00000D 00000Fv87 00000E = 000010 0 ; 00000D\n000011 000013v3 000012 = 000014 0 ; 000011\n000015 000017v88 000016 = 000018 0 ; 000015\n000019 00001Bv4 00001A = 00001C 0 ; 000019\n00001D 00001Fv89 00001E = 000020 0 ; 00001D\n000021 000023v5 000022 = 000024 0 ; 000021\n000025 000027v91 000026 = 000028 0 ; 000025\n000029 00002Bv84 00002A = 00002C 0 ; 000029\n00002D 00002Fv90 00002E = 000030 0 ; 00002D\n000031 000033n3 000032 = 000034 0 ; 000031\n000035 000037v98 000036 = 000038 0 ; 000035\n000039 00003CLOBYTE00003B ( 00003Dn7 ) 00003A = 00003E 0 ; 000039\n00003F if ( 000074 ! 000075a2 ) 00003F\n{ 000040\n000041 000043 * 000044 ( _QWORD * ) 000045v85 000042 = 000046 8 ; 000041\n000047 000049result 000048 = 00004Bsub_18C800004A ( 00004Ca1 , 00004D 0 , 00004E 0 , 00004Fv85 , 000050 ( __int64 ) 000051 & 000052n3_2 ) ; 000047\n000053 if ( 000058result 000057 < 000059 0 ) 000053\n000054000055 return 000056result ; 000055\n00005A if ( 00006E ( unsigned __int8 ) 000070sub_3C2800006F ( 000071 & 000072n3_2 , 000073 8 ) ) 00005A\n{ 00005B\n00005C 00005Esub_3D5C00005D ( 00005F 0x80000000LL , 000060\"FRU header invalid.\\n\" ) ; 00005C\n000061 000063a2 000062 = 000064 1 ; 000061\n000065 000067v95 000066 = 000068 1 ; 000065\n} 00005B\nelse 00005A\n{ 000069\n00006A 00006Ca2 00006B = 00006D 0 ; 00006A\n} 000069\n} 000040\n000076 000078v7 000077 = 000079 0x800000000000000EuLL ; 000076\n00007A 00007Cv8 00007B = 00007E 8 00007D * 000080HIBYTE00007F ( 000081v87 ) ; 00007A\n000082 000084v9 000083 = 000086 8 000085 * 000088HIBYTE000087 ( 000089v87 ) ; 000082\n00008A if ( 00030Cv800000000030B\n00030B && 00030E ! 00030Fa200000000030D\n00030D && ( 000313 * 000314 ( _QWORD * ) 000315v83 000312 = 000316 0 000311 , 000319 * 00031A ( _QWORD * ) 00031Bv85 000318 = 00031C 1 000317 , 00031Fsub_18C800031E ( 000320v2 , 000321 0 , 000323v8 000322 + 000324 1 , 000325v85 , 000326 ( __int64 ) 000327v83 ) 00031D , 000328 * 000329 ( _QWORD * ) 00032Av83 ) 000310\n000310 && ( 00032D * 00032E ( _QWORD * ) 00032Fv83 00032C *= 000330 8LL 00032B , 000333v10 000332 = 000335sub_3E50000334 ( 000336 6 , 000337 * 000338 ( _QWORD * ) 000339v83 ) 000331 , ( 00033Cv11 00033B = 00033Dv10 ) 00033A != 00033E 0 ) ) 00008A\n{ 00008B\n00008C if ( 0002FBsub_18C80002FA ( 0002FCv2 , 0002FD 0 , 0002FEv9 , 0002FFv83 , 000300v10 ) 0002F9 < 000301 0 ) 00008C\n{ 00008D\n00008E 000090v27 00008F = 000091v84 ; 00008E\n} 00008D\nelse 00008C\n{ 000092\n000093 000095 * 000096 ( _QWORD * ) 000097v83 000094 = 000099 * 00009A ( _BYTE * ) ( 00009Cv11 00009B + 00009D 3 ) 000098 & 00009E 0x3F ; 000093\n00009F if ( ( 0000C4 * 0000C5 ( _BYTE * ) ( 0000C7v11 0000C6 + 0000C8 3 ) 0000C3 & 0000C9 0x3F ) 0000C2 != 0000CA 0 ) 00009F\n{ 0000A0\n0000A1 0000A3v12 0000A2 = 0000A5sub_28B80000A4 ( 0000A7v11 0000A6 + 0000A8 3 , 0000A9 & 0000AAv84 , 0000AC * 0000AD ( _BYTE * ) ( 0000AFv11 0000AE + 0000B0 3 ) 0000AB >> 0000B1 6 , 0000B3 * 0000B4 ( _BYTE * ) ( 0000B6v11 0000B5 + 0000B7 3 ) 0000B2 & 0000B8 0x3F ) ; 0000A1\n0000B9 0000BBv4 0000BA = 0000BCv84 ; 0000B9\n} 0000A0\nelse 00009F\n{ 0000BD\n0000BE 0000C0v12 0000BF = 0000C1 0x800000000000000EuLL ; 0000BE\n} 0000BD\n0000CB if ( 0000FEv12 0000FD >= 0000FF 0 ) 0000CB\n{ 0000CC\n0000CD 0000CFn16 0000CE = 0000D2 2 0000D1 * 0000D4sub_394C0000D3 ( 0000D5v4 ) 0000D0 + 0000D6 2 ; 0000CD\n0000D7 0000D9v13 0000D8 = 0000DBsub_35F40000DA ( ) ; 0000D7\n0000DC 0000DEn16_2 0000DD = 0000E0 ( * 0000E1 ( __int64 (__fastcall **)(__int64) ) ( 0000E3v13 0000E2 + 0000E4 56 ) ) 0000DF ( 0000E5 118 ) ; 0000DC\n0000E6 if ( 0000F4n16 0000F3 > 0000F5n16_2 ) 0000E6\n{ 0000E7\n0000E8 0000EAsub_3D5C0000E9 ( 0000EB 64 , 0000EC\"PcdSystemManufacturer:SizeofBuffer > PcdSize so truncating the string\\n\" ) ; 0000E8\n0000ED 0000EFn16 0000EE = 0000F1n16_2 0000F0 - 0000F2 2 ; 0000ED\n} 0000E7\n0000F6 0000F8sub_36800000F7 ( 0000F9 118 , 0000FA & 0000FBn16 , 0000FCv4 ) ; 0000F6\n} 0000CC\n000100 000102v15 000101 = 000103 * 000104 ( _QWORD * ) 000105v83 ; 000100\n000106 000108v16 000107 = 000109 ( _BYTE * ) ( 00010Bv11 00010A + 00010D * 00010E ( _QWORD * ) 00010Fv83 00010C + 000110 4LL ) ; 000106\n000111 000113v17 000112 = 000115 * 000116v16 000114 & 000117 0x3F ; 000111\n000118 00011A * 00011B ( _QWORD * ) 00011Cv83 000119 = 00011Dv17 ; 000118\n00011E if ( ( 000146 * 000147v16 000145 & 000148 0x3F ) 000144 != 000149 0 ) 00011E\n{ 00011F\n000120 000122v18 000121 = 000124sub_28B8000123 ( 000125 ( __int64 ) 000126v16 , 000127 & 000128v90 , 00012A * 00012Bv16 000129 >> 00012C 6 , 00012E * 00012Fv16 00012D & 000130 0x3F ) ; 000120\n000131 000133v5 000132 = 000134v90 ; 000131\n000135 000137v19 000136 = 000138v18 ; 000135\n000139 00013Bv17 00013A = 00013C * 00013D ( _QWORD * ) 00013Ev83 ; 000139\n} 00011F\nelse 00011E\n{ 00013F\n000140 000142v19 000141 = 000143 0x800000000000000EuLL ; 000140\n} 00013F\n00014A 00014Cv20 00014B = 00014Ev17 00014D + 000150v15 00014F + 000151 5 ; 00014A\n000152 000154v21 000153 = 000155 ( _BYTE * ) ( 000157v11 000156 + 000158v20 ) ; 000152\n000159 00015B * 00015C ( _QWORD * ) 00015Dv83 00015A = 00015F * 000160 ( _BYTE * ) ( 000162v11 000161 + 000163v20 ) 00015E & 000164 0x3F ; 000159\n000165 if ( 0001BAv19 0001B9 >= 0001BB 0 ) 000165\n{ 000166\n000167 000169v22 000168 = ( 00016D * 00016Ev21 00016C & 00016F 0x3F ) 00016B != 000170 0 00016A ? 000172sub_28B8000171 ( 000173 ( __int64 ) 000174v21 , 000175 & 000176v84 , 000178 * 000179v21 000177 >> 00017A 6 , 00017C * 00017Dv21 00017B & 00017E 0x3F ) : 00017F 0x800000000000000EuLL ; 000167\n000180 if ( 0001B7v22 0001B6 >= 0001B8 0 ) 000180\n{ 000181\n000182 000184n16 000183 = 000187 2 000186 * 000189sub_394C000188 ( 00018Av5 ) 000185 + 00018B 2 ; 000182\n00018C 00018Ev23 00018D = 000190sub_35F400018F ( ) ; 00018C\n000191 000193n16_3 000192 = 000195 ( * 000196 ( __int64 (__fastcall **)(__int64) ) ( 000198v23 000197 + 000199 56 ) ) 000194 ( 00019A 117 ) ; 000191\n00019B if ( 0001A9n16 0001A8 > 0001AAn16_3 ) 00019B\n{ 00019C\n00019D 00019Fsub_3D5C00019E ( 0001A0 64 , 0001A1\"PcdSystemProductName:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 00019D\n0001A2 0001A4n16 0001A3 = 0001A6n16_3 0001A5 - 0001A7 2 ; 0001A2\n} 00019C\n0001AB 0001ADsub_36800001AC ( 0001AE 117 , 0001AF & 0001B0n16 , 0001B1v5 ) ; 0001AB\n0001B2 0001B4sub_3E940001B3 ( 0001B5v5 ) ; 0001B2\n} 000181\n} 000166\n0001BC 0001BEv25 0001BD = 0001C1 * 0001C2 ( _QWORD * ) 0001C3v83 0001C0 + 0001C4 1LL 0001BF + 0001C5v20 ; 0001BC\n0001C6 0001C8 * 0001C9 ( _QWORD * ) 0001CAv83 0001C7 = 0001CC * 0001CD ( _BYTE * ) ( 0001CFv11 0001CE + 0001D0v25 ) 0001CB & 0001D1 0x3F ; 0001C6\n0001D2 if ( ( 0001F3 * 0001F4 ( _BYTE * ) ( 0001F6v11 0001F5 + 0001F7v25 ) 0001F2 & 0001F8 0x3F ) 0001F1 != 0001F9 0 ) 0001D2\n0001D30001D4 0001D6v26 0001D5 = 0001D8sub_28B80001D7 ( 0001DAv11 0001D9 + 0001DBv25 , 0001DC & 0001DDv84 , 0001DF * 0001E0 ( _BYTE * ) ( 0001E2v11 0001E1 + 0001E3v25 ) 0001DE >> 0001E4 6 , 0001E6 * 0001E7 ( _BYTE * ) ( 0001E9v11 0001E8 + 0001EAv25 ) 0001E5 & 0001EB 0x3F ) ; 0001D4\nelse 0001D2\n0001EC0001ED 0001EFv26 0001EE = 0001F0 0x800000000000000EuLL ; 0001ED\n0001FA 0001FCv27 0001FB = 0001FDv84 ; 0001FA\n0001FE if ( 000235v26 000234 >= 000236 0 ) 0001FE\n{ 0001FF\n000200 000202n16 000201 = 000205 2 000204 * 000207sub_394C000206 ( 000208v84 ) 000203 + 000209 2 ; 000200\n00020A 00020Cv28 00020B = 00020Esub_35F400020D ( ) ; 00020A\n00020F 000211n16_4 000210 = 000213 ( * 000214 ( __int64 (__fastcall **)(__int64) ) ( 000216v28 000215 + 000217 56 ) ) 000212 ( 000218 119 ) ; 00020F\n000219 if ( 000227n16 000226 > 000228n16_4 ) 000219\n{ 00021A\n00021B 00021Dsub_3D5C00021C ( 00021E 64 , 00021F\"PcdSystemVersion:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 00021B\n000220 000222n16 000221 = 000224n16_4 000223 - 000225 2 ; 000220\n} 00021A\n000229 00022Bsub_368000022A ( 00022C 119 , 00022D & 00022En16 , 00022Fv27 ) ; 000229\n000230 000232sub_3E94000231 ( 000233v27 ) ; 000230\n} 0001FF\n000237 000239v30 000238 = 00023C * 00023D ( _QWORD * ) 00023Ev83 00023B + 00023F 1LL 00023A + 000240v25 ; 000237\n000241 000243 * 000244 ( _QWORD * ) 000245v83 000242 = 000247 * 000248 ( _BYTE * ) ( 00024Av11 000249 + 00024Bv30 ) 000246 & 00024C 0x3F ; 000241\n00024D if ( ( 000272 * 000273 ( _BYTE * ) ( 000275v11 000274 + 000276v30 ) 000271 & 000277 0x3F ) 000270 != 000278 0 ) 00024D\n{ 00024E\n00024F 000251v31 000250 = 000253sub_28B8000252 ( 000255v11 000254 + 000256v30 , 000257 & 000258v84 , 00025A * 00025B ( _BYTE * ) ( 00025Dv11 00025C + 00025Ev30 ) 000259 >> 00025F 6 , 000261 * 000262 ( _BYTE * ) ( 000264v11 000263 + 000265v30 ) 000260 & 000266 0x3F ) ; 00024F\n000267 000269v27 000268 = 00026Av84 ; 000267\n} 00024E\nelse 00024D\n{ 00026B\n00026C 00026Ev31 00026D = 00026F 0x800000000000000EuLL ; 00026C\n} 00026B\n000279 if ( 0002B0v31 0002AF >= 0002B1 0 ) 000279\n{ 00027A\n00027B 00027Dn16 00027C = 000280 2 00027F * 000282sub_394C000281 ( 000283v27 ) 00027E + 000284 2 ; 00027B\n000285 000287v32 000286 = 000289sub_35F4000288 ( ) ; 000285\n00028A 00028Cn16_5 00028B = 00028E ( * 00028F ( __int64 (__fastcall **)(__int64) ) ( 000291v32 000290 + 000292 56 ) ) 00028D ( 000293 120 ) ; 00028A\n000294 if ( 0002A2n16 0002A1 > 0002A3n16_5 ) 000294\n{ 000295\n000296 000298sub_3D5C000297 ( 000299 64 , 00029A\"PcdSystemSerialNumber:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 000296\n00029B 00029Dn16 00029C = 00029Fn16_5 00029E - 0002A0 2 ; 00029B\n} 000295\n0002A4 0002A6sub_36800002A5 ( 0002A7 120 , 0002A8 & 0002A9n16 , 0002AAv27 ) ; 0002A4\n0002AB 0002ADsub_3E940002AC ( 0002AEv27 ) ; 0002AB\n} 00027A\n0002B2 0002B4v34 0002B3 = 0002B5 ( _BYTE * ) ( 0002B7v11 0002B6 + 0002B9v30 0002B8 + 0002BB * 0002BC ( _QWORD * ) 0002BDv83 0002BA + 0002BE 1LL ) ; 0002B2\n0002BF 0002C1 * 0002C2 ( _QWORD * ) 0002C3v83 0002C0 = 0002C5 * 0002C6v34 0002C4 & 0002C7 0x3F ; 0002BF\n0002C8 if ( ( 0002E6 * 0002E7v34 0002E5 & 0002E8 0x3F ) 0002E4 != 0002E9 0 ) 0002C8\n{ 0002C9\n0002CA 0002CCv35 0002CB = 0002CEsub_28B80002CD ( 0002CF ( __int64 ) 0002D0v34 , 0002D1 & 0002D2v91 , 0002D4 * 0002D5v34 0002D3 >> 0002D6 6 , 0002D8 * 0002D9v34 0002D7 & 0002DA 0x3F ) ; 0002CA\n0002DB 0002DDv3 0002DC = 0002DEv91 ; 0002DB\n} 0002C9\nelse 0002C8\n{ 0002DF\n0002E0 0002E2v35 0002E1 = 0002E3 0x800000000000000EuLL ; 0002E0\n} 0002DF\n0002EA if ( 0002F3v35 0002F2 < 0002F4 0 ) 0002EA\n0002EB0002EC 0002EEsub_3D5C0002ED ( 0002EF 0x80000000LL , 0002F0\"GetFRUData :AssetTagString: Status %r\\n\" , 0002F1v35 ) ; 0002EC\n0002F5 0002F7v2 0002F6 = 0002F8a1 ; 0002F5\n} 000092\n000302 000304sub_3E94000303 ( 000305v11 ) ; 000302\n} 00008B\nelse 00008A\n{ 000306\n000307 000309v27 000308 = 00030Av84 ; 000307\n} 000306\n00033F 000341v36 000340 = 000342v95 ; 00033F\n000343 000345v37 000344 = 000347 8 000346 * 000349BYTE2000348 ( 00034Av87 ) ; 000343\n00034B 00034Dv38 00034C = 00034F 8 00034E * 000351BYTE2000350 ( 000352v87 ) ; 00034B\n000353 if ( 0005A0v37 00059F && 0005A1 ! 0005A2v95 ) 000353\n{ 000354\n000355 000357 * 000358 ( _QWORD * ) 000359v83 000356 = 00035A 0 ; 000355\n00035B 00035D * 00035E ( _QWORD * ) 00035Fv85 00035C = 000360 1 ; 00035B\n000361 000363sub_18C8000362 ( 000364v2 , 000365 0 , 000367v37 000366 + 000368 1 , 000369v85 , 00036A ( __int64 ) 00036Bv83 ) ; 000361\n00036C if ( 000598 * 000599 ( _QWORD * ) 00059Av83 ) 00036C\n{ 00036D\n00036E 000370 * 000371 ( _QWORD * ) 000372v83 00036F *= 000373 8LL ; 00036E\n000374 000376v39 000375 = 000378sub_3E50000377 ( 000379 6 , 00037A * 00037B ( _QWORD * ) 00037Cv83 ) ; 000374\n00037D 00037Fv40 00037E = 000380v39 ; 00037D\n000381 if ( 000597v39 ) 000381\n{ 000382\n000383 if ( 00058Csub_18C800058B ( 00058Da1 , 00058E 0 , 00058Fv38 , 000590v83 , 000591v39 ) 00058A >= 000592 0 ) 000383\n{ 000384\n000385 if ( 0003B7v3 ) 000385\n{ 000386\n000387 000389n16 000388 = 00038C 2 00038B * 00038Esub_394C00038D ( 00038Fv3 ) 00038A + 000390 2 ; 000387\n000391 000393v41 000392 = 000395sub_35F4000394 ( ) ; 000391\n000396 000398n16_6 000397 = 00039A ( * 00039B ( __int64 (__fastcall **)(__int64) ) ( 00039Dv41 00039C + 00039E 56 ) ) 000399 ( 00039F 125 ) ; 000396\n0003A0 if ( 0003AEn16 0003AD > 0003AFn16_6 ) 0003A0\n{ 0003A1\n0003A2 0003A4sub_3D5C0003A3 ( 0003A5 64 , 0003A6\"PcdBaseBoardAssetTag:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 0003A2\n0003A7 0003A9n16 0003A8 = 0003ABn16_6 0003AA - 0003AC 2 ; 0003A7\n} 0003A1\n0003B0 0003B2sub_36800003B1 ( 0003B3 125 , 0003B4 & 0003B5n16 , 0003B6v3 ) ; 0003B0\n} 000386\n0003B8 0003BA * 0003BB ( _QWORD * ) 0003BCv83 0003B9 = 0003BE * 0003BF ( _BYTE * ) ( 0003C1v40 0003C0 + 0003C2 6 ) 0003BD & 0003C3 0x3F ; 0003B8\n0003C4 if ( ( 0003E9 * 0003EA ( _BYTE * ) ( 0003ECv40 0003EB + 0003ED 6 ) 0003E8 & 0003EE 0x3F ) 0003E7 != 0003EF 0 ) 0003C4\n{ 0003C5\n0003C6 0003C8v43 0003C7 = 0003CAsub_28B80003C9 ( 0003CCv40 0003CB + 0003CD 6 , 0003CE & 0003CFv84 , 0003D1 * 0003D2 ( _BYTE * ) ( 0003D4v40 0003D3 + 0003D5 6 ) 0003D0 >> 0003D6 6 , 0003D8 * 0003D9 ( _BYTE * ) ( 0003DBv40 0003DA + 0003DC 6 ) 0003D7 & 0003DD 0x3F ) ; 0003C6\n0003DE 0003E0v27 0003DF = 0003E1v84 ; 0003DE\n} 0003C5\nelse 0003C4\n{ 0003E2\n0003E3 0003E5v43 0003E4 = 0003E6 0x800000000000000EuLL ; 0003E3\n} 0003E2\n0003F0 if ( 000427v43 000426 >= 000428 0 ) 0003F0\n{ 0003F1\n0003F2 0003F4n16 0003F3 = 0003F7 2 0003F6 * 0003F9sub_394C0003F8 ( 0003FAv27 ) 0003F5 + 0003FB 2 ; 0003F2\n0003FC 0003FEv44 0003FD = 000400sub_35F40003FF ( ) ; 0003FC\n000401 000403n16_7 000402 = 000405 ( * 000406 ( __int64 (__fastcall **)(__int64) ) ( 000408v44 000407 + 000409 56 ) ) 000404 ( 00040A 121 ) ; 000401\n00040B if ( 000419n16 000418 > 00041An16_7 ) 00040B\n{ 00040C\n00040D 00040Fsub_3D5C00040E ( 000410 64 , 000411\"PcdBaseBoardManufacturer:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 00040D\n000412 000414n16 000413 = 000416n16_7 000415 - 000417 2 ; 000412\n} 00040C\n00041B 00041Dsub_368000041C ( 00041E 121 , 00041F & 000420n16 , 000421v27 ) ; 00041B\n000422 000424sub_3E94000423 ( 000425v27 ) ; 000422\n} 0003F1\n000429 00042Bv46 00042A = 00042C * 00042D ( _QWORD * ) 00042Ev83 ; 000429\n00042F 000431v47 000430 = 000432 ( _BYTE * ) ( 000434v40 000433 + 000436 * 000437 ( _QWORD * ) 000438v83 000435 + 000439 7LL ) ; 00042F\n00043A 00043C * 00043D ( _QWORD * ) 00043Ev83 00043B = 000440 * 000441v47 00043F & 000442 0x3F ; 00043A\n000443 if ( ( 000461 * 000462v47 000460 & 000463 0x3F ) 00045F != 000464 0 ) 000443\n{ 000444\n000445 000447v48 000446 = 000449sub_28B8000448 ( 00044A ( __int64 ) 00044Bv47 , 00044C & 00044Dv84 , 00044F * 000450v47 00044E >> 000451 6 , 000453 * 000454v47 000452 & 000455 0x3F ) ; 000445\n000456 000458v27 000457 = 000459v84 ; 000456\n} 000444\nelse 000443\n{ 00045A\n00045B 00045Dv48 00045C = 00045E 0x800000000000000EuLL ; 00045B\n} 00045A\n000465 if ( 00049Cv48 00049B >= 00049D 0 ) 000465\n{ 000466\n000467 000469n16 000468 = 00046C 2 00046B * 00046Esub_394C00046D ( 00046Fv27 ) 00046A + 000470 2 ; 000467\n000471 000473v49 000472 = 000475sub_35F4000474 ( ) ; 000471\n000476 000478n16_8 000477 = 00047A ( * 00047B ( __int64 (__fastcall **)(__int64) ) ( 00047Dv49 00047C + 00047E 56 ) ) 000479 ( 00047F 122 ) ; 000476\n000480 if ( 00048En16 00048D > 00048Fn16_8 ) 000480\n{ 000481\n000482 000484sub_3D5C000483 ( 000485 64 , 000486\"PcdBaseBoardProductName:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 000482\n000487 000489n16 000488 = 00048Bn16_8 00048A - 00048C 2 ; 000487\n} 000481\n000490 000492sub_3680000491 ( 000493 122 , 000494 & 000495n16 , 000496v27 ) ; 000490\n000497 000499sub_3E94000498 ( 00049Av27 ) ; 000497\n} 000466\n00049E 0004A0v51 00049F = 0004A3 * 0004A4 ( _QWORD * ) 0004A5v83 0004A2 + 0004A6 8LL 0004A1 + 0004A7v46 ; 00049E\n0004A8 0004AA * 0004AB ( _QWORD * ) 0004ACv83 0004A9 = 0004AE * 0004AF ( _BYTE * ) ( 0004B1v40 0004B0 + 0004B2v51 ) 0004AD & 0004B3 0x3F ; 0004A8\n0004B4 if ( ( 0004D9 * 0004DA ( _BYTE * ) ( 0004DCv40 0004DB + 0004DDv51 ) 0004D8 & 0004DE 0x3F ) 0004D7 != 0004DF 0 ) 0004B4\n{ 0004B5\n0004B6 0004B8v52 0004B7 = 0004BAsub_28B80004B9 ( 0004BCv40 0004BB + 0004BDv51 , 0004BE & 0004BFv84 , 0004C1 * 0004C2 ( _BYTE * ) ( 0004C4v40 0004C3 + 0004C5v51 ) 0004C0 >> 0004C6 6 , 0004C8 * 0004C9 ( _BYTE * ) ( 0004CBv40 0004CA + 0004CCv51 ) 0004C7 & 0004CD 0x3F ) ; 0004B6\n0004CE 0004D0v27 0004CF = 0004D1v84 ; 0004CE\n} 0004B5\nelse 0004B4\n{ 0004D2\n0004D3 0004D5v52 0004D4 = 0004D6 0x800000000000000EuLL ; 0004D3\n} 0004D2\n0004E0 if ( 000517v52 000516 >= 000518 0 ) 0004E0\n{ 0004E1\n0004E2 0004E4n16 0004E3 = 0004E7 2 0004E6 * 0004E9sub_394C0004E8 ( 0004EAv27 ) 0004E5 + 0004EB 2 ; 0004E2\n0004EC 0004EEv53 0004ED = 0004F0sub_35F40004EF ( ) ; 0004EC\n0004F1 0004F3n16_9 0004F2 = 0004F5 ( * 0004F6 ( __int64 (__fastcall **)(__int64) ) ( 0004F8v53 0004F7 + 0004F9 56 ) ) 0004F4 ( 0004FA 124 ) ; 0004F1\n0004FB if ( 000509n16 000508 > 00050An16_9 ) 0004FB\n{ 0004FC\n0004FD 0004FFsub_3D5C0004FE ( 000500 64 , 000501\"PcdBaseBoardSerialNumber:SizeofBuffer > PcdSize so truncating the string\\n\" ) ; 0004FD\n000502 000504n16 000503 = 000506n16_9 000505 - 000507 2 ; 000502\n} 0004FC\n00050B 00050Dsub_368000050C ( 00050E 124 , 00050F & 000510n16 , 000511v27 ) ; 00050B\n000512 000514sub_3E94000513 ( 000515v27 ) ; 000512\n} 0004E1\n000519 00051Bv55 00051A = 00051C ( _BYTE * ) ( 00051Ev40 00051D + 000520v51 00051F + 000522 * 000523 ( _QWORD * ) 000524v83 000521 + 000525 1LL ) ; 000519\n000526 000528 * 000529 ( _QWORD * ) 00052Av83 000527 = 00052C * 00052Dv55 00052B & 00052E 0x3F ; 000526\n00052F if ( ( 00054D * 00054Ev55 00054C & 00054F 0x3F ) 00054B != 000550 0 ) 00052F\n{ 000530\n000531 000533v56 000532 = 000535sub_28B8000534 ( 000536 ( __int64 ) 000537v55 , 000538 & 000539v84 , 00053B * 00053Cv55 00053A >> 00053D 6 , 00053F * 000540v55 00053E & 000541 0x3F ) ; 000531\n000542 000544v27 000543 = 000545v84 ; 000542\n} 000530\nelse 00052F\n{ 000546\n000547 000549v56 000548 = 00054A 0x800000000000000EuLL ; 000547\n} 000546\n000551 if ( 000588v56 000587 >= 000589 0 ) 000551\n{ 000552\n000553 000555n16 000554 = 000558 2 000557 * 00055Asub_394C000559 ( 00055Bv27 ) 000556 + 00055C 2 ; 000553\n00055D 00055Fv57 00055E = 000561sub_35F4000560 ( ) ; 00055D\n000562 000564n16_10 000563 = 000566 ( * 000567 ( __int64 (__fastcall **)(__int64) ) ( 000569v57 000568 + 00056A 56 ) ) 000565 ( 00056B 123 ) ; 000562\n00056C if ( 00057An16 000579 > 00057Bn16_10 ) 00056C\n{ 00056D\n00056E 000570sub_3D5C00056F ( 000571 64 , 000572\"PcdBaseBoardVersion:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 00056E\n000573 000575n16 000574 = 000577n16_10 000576 - 000578 2 ; 000573\n} 00056D\n00057C 00057Esub_368000057D ( 00057F 123 , 000580 & 000581n16 , 000582v27 ) ; 00057C\n000583 000585sub_3E94000584 ( 000586v27 ) ; 000583\n} 000552\n} 000384\n000593 000595sub_3E94000594 ( 000596v40 ) ; 000593\n} 000382\n} 00036D\n00059B 00059Dv36 00059C = 00059E 0 ; 00059B\n} 000354\n0005A3 0005A5v59 0005A4 = 0005A7 8 0005A6 * 0005A9BYTE10005A8 ( 0005AAv87 ) ; 0005A3\n0005AB 0005ADv60 0005AC = 0005AF 8 0005AE * 0005B1BYTE10005B0 ( 0005B2v87 ) ; 0005AB\n0005B3 if ( 00075Bv59 ) 0005B3\n{ 0005B4\n0005B5 if ( 000759 ! 00075Av36 ) 0005B5\n{ 0005B6\n0005B7 0005B9 * 0005BA ( _QWORD * ) 0005BBv83 0005B8 = 0005BC 0 ; 0005B7\n0005BD 0005BF * 0005C0 ( _QWORD * ) 0005C1v85 0005BE = 0005C2 1 ; 0005BD\n0005C3 0005C5sub_18C80005C4 ( 0005C6a1 , 0005C7 0 , 0005C9v59 0005C8 + 0005CA 1 , 0005CBv85 , 0005CC ( __int64 ) 0005CDv83 ) ; 0005C3\n0005CE if ( 000756 * 000757 ( _QWORD * ) 000758v83 ) 0005CE\n{ 0005CF\n0005D0 0005D2 * 0005D3 ( _QWORD * ) 0005D4v83 0005D1 *= 0005D5 8LL ; 0005D0\n0005D6 0005D8v61 0005D7 = 0005DAsub_3E500005D9 ( 0005DB 6 , 0005DC * 0005DD ( _QWORD * ) 0005DEv83 ) ; 0005D6\n0005DF 0005E1v62 0005E0 = 0005E2v61 ; 0005DF\n0005E3 if ( 000755v61 ) 0005E3\n{ 0005E4\n0005E5 if ( 00074Asub_18C8000749 ( 00074Ba1 , 00074C 0 , 00074Dv60 , 00074Ev83 , 00074Fv61 ) 000748 >= 000750 0 ) 0005E5\n{ 0005E6\n0005E7 0005E9v63 0005E8 = 0005EA * 0005EB ( _BYTE * ) ( 0005EDv62 0005EC + 0005EE 2 ) ; 0005E7\n0005EF 0005F1v64 0005F0 = 0005F3sub_35F40005F2 ( ) ; 0005EF\n0005F4 0005F7LOBYTE0005F6 ( 0005F8v65 ) 0005F5 = 0005F9v63 ; 0005F4\n0005FA 0005FC ( * 0005FD ( void (__fastcall **)(__int64, __int64) ) ( 0005FFv64 0005FE + 000600 120 ) ) 0005FB ( 000601 188 , 000602\rv65\r ) ; 0005FA\n000603 000605 * 000606 ( _QWORD * ) 000607v83 000604 = 000609 * 00060A ( _BYTE * ) ( 00060Cv62 00060B + 00060D 3 ) 000608 & 00060E 0x3F ; 000603\n00060F if ( ( 000634 * 000635 ( _BYTE * ) ( 000637v62 000636 + 000638 3 ) 000633 & 000639 0x3F ) 000632 != 00063A 0 ) 00060F\n{ 000610\n000611 000613v66 000612 = 000615sub_28B8000614 ( 000617v62 000616 + 000618 3 , 000619 & 00061Av84 , 00061C * 00061D ( _BYTE * ) ( 00061Fv62 00061E + 000620 3 ) 00061B >> 000621 6 , 000623 * 000624 ( _BYTE * ) ( 000626v62 000625 + 000627 3 ) 000622 & 000628 0x3F ) ; 000611\n000629 00062Bv27 00062A = 00062Cv84 ; 000629\n} 000610\nelse 00060F\n{ 00062D\n00062E 000630v66 00062F = 000631 0x800000000000000EuLL ; 00062E\n} 00062D\n00063B if ( 000672v66 000671 >= 000673 0 ) 00063B\n{ 00063C\n00063D 00063Fn16 00063E = 000642 2 000641 * 000644sub_394C000643 ( 000645v27 ) 000640 + 000646 2 ; 00063D\n000647 000649v67 000648 = 00064Bsub_35F400064A ( ) ; 000647\n00064C 00064En16_11 00064D = 000650 ( * 000651 ( __int64 (__fastcall **)(__int64) ) ( 000653v67 000652 + 000654 56 ) ) 00064F ( 000655 127 ) ; 00064C\n000656 if ( 000664n16 000663 > 000665n16_11 ) 000656\n{ 000657\n000658 00065Asub_3D5C000659 ( 00065B 64 , 00065C\"PcdChassisVersion:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 000658\n00065D 00065Fn16 00065E = 000661n16_11 000660 - 000662 2 ; 00065D\n} 000657\n000666 000668sub_3680000667 ( 000669 127 , 00066A & 00066Bn16 , 00066Cv27 ) ; 000666\n00066D 00066Fsub_3E9400066E ( 000670v27 ) ; 00066D\n} 00063C\n000674 000676v69 000675 = 000677 ( _BYTE * ) ( 000679v62 000678 + 00067B * 00067C ( _QWORD * ) 00067Dv83 00067A + 00067E 4LL ) ; 000674\n00067F 000681 * 000682 ( _QWORD * ) 000683v83 000680 = 000685 * 000686v69 000684 & 000687 0x3F ; 00067F\n000688 if ( ( 0006A5 * 0006A6v69 0006A4 & 0006A7 0x3F ) 0006A3 != 0006A8 0 ) 000688\n{ 000689\n00068A 00068Cv70 00068B = 00068Esub_28B800068D ( 00068F ( __int64 ) 000690v69 , 000691 & 000692v84 , 000694 * 000695v69 000693 >> 000696 6 , 000698 * 000699v69 000697 & 00069A 0x3F ) ; 00068A\n00069B 00069Dv27 00069C = 00069Ev84 ; 00069B\n00069F 0006A1v7 0006A0 = 0006A2v70 ; 00069F\n} 000689\n0006A9 if ( 0006E0v7 0006DF >= 0006E1 0 ) 0006A9\n{ 0006AA\n0006AB 0006ADn16 0006AC = 0006B0 2 0006AF * 0006B2sub_394C0006B1 ( 0006B3v27 ) 0006AE + 0006B4 2 ; 0006AB\n0006B5 0006B7v71 0006B6 = 0006B9sub_35F40006B8 ( ) ; 0006B5\n0006BA 0006BCn16_12 0006BB = 0006BE ( * 0006BF ( __int64 (__fastcall **)(__int64) ) ( 0006C1v71 0006C0 + 0006C2 56 ) ) 0006BD ( 0006C3 128 ) ; 0006BA\n0006C4 if ( 0006D2n16 0006D1 > 0006D3n16_12 ) 0006C4\n{ 0006C5\n0006C6 0006C8sub_3D5C0006C7 ( 0006C9 64 , 0006CA\"PcdChassisSerialNumber:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 0006C6\n0006CB 0006CDn16 0006CC = 0006CFn16_12 0006CE - 0006D0 2 ; 0006CB\n} 0006C5\n0006D4 0006D6sub_36800006D5 ( 0006D7 128 , 0006D8 & 0006D9n16 , 0006DAv27 ) ; 0006D4\n0006DB 0006DDsub_3E940006DC ( 0006DEv27 ) ; 0006DB\n} 0006AA\n0006E2 if ( 000714v4 ) 0006E2\n{ 0006E3\n0006E4 0006E6n16 0006E5 = 0006E9 2 0006E8 * 0006EBsub_394C0006EA ( 0006ECv4 ) 0006E7 + 0006ED 2 ; 0006E4\n0006EE 0006F0v73 0006EF = 0006F2sub_35F40006F1 ( ) ; 0006EE\n0006F3 0006F5n16_13 0006F4 = 0006F7 ( * 0006F8 ( __int64 (__fastcall **)(__int64) ) ( 0006FAv73 0006F9 + 0006FB 56 ) ) 0006F6 ( 0006FC 126 ) ; 0006F3\n0006FD if ( 00070Bn16 00070A > 00070Cn16_13 ) 0006FD\n{ 0006FE\n0006FF 000701sub_3D5C000700 ( 000702 64 , 000703\"PcdChassisManufacturer:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 0006FF\n000704 000706n16 000705 = 000708n16_13 000707 - 000709 2 ; 000704\n} 0006FE\n00070D 00070Fsub_368000070E ( 000710 126 , 000711 & 000712n16 , 000713v4 ) ; 00070D\n} 0006E3\n000715 if ( 000747v3 ) 000715\n{ 000716\n000717 000719n16 000718 = 00071C 2 00071B * 00071Esub_394C00071D ( 00071Fv3 ) 00071A + 000720 2 ; 000717\n000721 000723v75 000722 = 000725sub_35F4000724 ( ) ; 000721\n000726 000728n16_14 000727 = 00072A ( * 00072B ( __int64 (__fastcall **)(__int64) ) ( 00072Dv75 00072C + 00072E 56 ) ) 000729 ( 00072F 129 ) ; 000726\n000730 if ( 00073En16 00073D > 00073Fn16_14 ) 000730\n{ 000731\n000732 000734sub_3D5C000733 ( 000735 64 , 000736\"PcdChassisAssetTag:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 000732\n000737 000739n16 000738 = 00073Bn16_14 00073A - 00073C 2 ; 000737\n} 000731\n000740 000742sub_3680000741 ( 000743 129 , 000744 & 000745n16 , 000746v3 ) ; 000740\n} 000716\n} 0005E6\n000751 000753sub_3E94000752 ( 000754v62 ) ; 000751\n} 0005E4\n} 0005CF\n} 0005B6\n} 0005B4\n00075C if ( 000762v4 ) 00075C\n00075D00075E 000760sub_3E9400075F ( 000761v4 ) ; 00075E\n000763 if ( 000769v3 ) 000763\n000764000765 000767sub_3E94000766 ( 000768v3 ) ; 000765\n00076A 00076Cv77 00076B = 00076E 8 00076D * 00076F ( unsigned __int8 ) 000770v88 ; 00076A\n000771 if ( 000827 8 000826 * 000828 ( unsigned __int8 ) 000829v88 000825 && 00082A ! 00082Bv95 ) 000771\n{ 000772\n000773 while ( 000824 1 ) 000773\n{ 000774\n000775 000777 * 000778 ( _QWORD * ) 000779v85 000776 = 00077A 5 ; 000775\n00077B 00077Dv78 00077C = 00077Fsub_18C800077E ( 000780a1 , 000781 0 , 000782v77 , 000783v85 , 000784 ( __int64 ) 000785 & 000786n3 ) ; 00077B\n000787 if ( 00078Bv78 00078A < 00078C 0 ) 000787\n000788000789 break ; 000789\n00078D if ( 000795 ( unsigned __int8 ) 000797sub_3C28000796 ( 000798 & 000799n3 , 00079A 5 ) ) 00078D\n{ 00078E\n00078F 000791sub_3D5C000790 ( 000792 0x80000000LL , 000793\"FRU MultiRecord Record invalid.\\n\" ) ; 00078F\n000794 break ; 000794\n} 00078E\n00079B if ( 00080Cn3 00080B == 00080D 3 ) 00079B\n{ 00079C\n00079D 00079F * 0007A0 ( _QWORD * ) 0007A1v85 00079E = 0007A2 1 ; 00079D\n0007A3 0007A5v78 0007A4 = 0007A7sub_18C80007A6 ( 0007A8a1 , 0007A9 0 , 0007ABv77 0007AA + 0007AC 5 , 0007ADv85 , 0007AE ( __int64 ) 0007AF & 0007B0n7 ) ; 0007A3\n0007B1 if ( 000805v78 000804 >= 000806 0 000803 && 000808 ( _BYTE ) 000809n7 000807 == 00080A 7 ) 0007B1\n{ 0007B2\n0007B3 0007B5n3_1 0007B4 = 0007B7BYTE20007B6 ( 0007B8v98 ) ; 0007B3\n0007B9 0007BB * 0007BC ( _QWORD * ) 0007BDv85 0007BA = 0007BE 17 ; 0007B9\n0007BF if ( 0007F1sub_18C80007F0 ( 0007F2a1 , 0007F3 0 , 0007F5v77 0007F4 + 0007F6 5 , 0007F7v85 , 0007F8 ( __int64 ) 0007F9v93 ) 0007EF >= 0007FA 0 0007EE && 0007FB ! 0007FC ( unsigned __int8 ) 0007FEsub_3C280007FD ( 0007FF & 000800n3_1 , 000801 18 ) ) 0007BF\n{ 0007C0\n0007C1 0007C3n16 0007C2 = 0007C4 16 ; 0007C1\n0007C5 0007C7v80 0007C6 = 0007C9sub_35F40007C8 ( ) ; 0007C5\n0007CA 0007CCn16_1 0007CB = 0007CE ( * 0007CF ( __int64 (__fastcall **)(__int64) ) ( 0007D1v80 0007D0 + 0007D2 56 ) ) 0007CD ( 0007D3 187 ) ; 0007CA\n0007D4 if ( 0007E2n16 0007E1 > 0007E3n16_1 ) 0007D4\n{ 0007D5\n0007D6 0007D8sub_3D5C0007D7 ( 0007D9 64 , 0007DA\"PcdSystemUuid:SizeofBuffer > PcdSize so truncating the string \\n\" ) ; 0007D6\n0007DB 0007DDn16 0007DC = 0007DFn16_1 0007DE - 0007E0 2 ; 0007DB\n} 0007D5\n0007E4 0007E6sub_36800007E5 ( 0007E7 187 , 0007E8 & 0007E9n16 , 0007EB ( char * ) 0007ECv93 0007EA + 0007ED 1 ) ; 0007E4\n} 0007C0\n000802 break ; 000802\n} 0007B2\n} 00079C\n00080E if ( ( 000820v98 00081F & 000821 0x80u ) 00081E == 000822 0 ) 00080E\n{ 00080F\n000810 000812v77 000811 += 000815BYTE1000814 ( 000816v98 ) 000813 + 000817 5 ; 000810\n000818 if ( 00081Cv78 00081B >= 00081D 0 ) 000818\n00081900081A continue ; 00081A\n} 00080F\n000823 break ; 000823\n} 000774\n} 000772\n00082C 00082Eresult 00082D = 000830sub_41F000082F ( 000831 ( unsigned __int16 ) ( 000833 8 000832 * 000834 ( unsigned __int8 ) 000835v88 ) ) ; 00082C\n000836 000838v79 000837 = 000839result ; 000836\n00083A if ( 000850result 00084F < 000851 0 ) 00083A\n{ 00083B\n00083C 00083Esub_3D5C00083D ( 00083F 0x80000000LL , 000840\"%a: Failed to update PcdLnvMiscAreaOffset. Status = %r\\n\" , 000841\"GenerateFruSmbiosData\" , 000842result ) ; 00083C\n000843 000845sub_3D5C000844 ( 000846 0x80000000LL , 000847\"\\nASSERT_EFI_ERROR (Status = %r)\\n\" , 000848v79 ) ; 000843\n000849 return 00084Bsub_3DDC00084A ( 00084C\"e:\\\\hs\\\\AmiIpmiPkg\\\\Ipmi\\\\IpmiRedirFru\\\\FruSmbios.c\" , 00084D 892 , 00084E\"!EFI_ERROR (Status)\" ) ; 000849\n} 00083B\n000852 return 000853result ; 000852\n} 000000"
}