diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/ModuleEntryPoint.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/ModuleEntryPoint.txt deleted file mode 100644 index 394e6c2..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/ModuleEntryPoint.txt +++ /dev/null @@ -1,7 +0,0 @@ -EFI_STATUS ModuleEntryPoint(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) -{ - __int64 n2; // rcx - - sub_3FC((__int64)ImageHandle, (__int64)SystemTable); /*0x3e9*/ - return sub_1E38(n2, SystemTable); /*0x3f6*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadBmc.c b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadBmc.c new file mode 100644 index 0000000..0d85740 --- /dev/null +++ b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadBmc.c @@ -0,0 +1,172 @@ +char __fastcall sub_7CC(__int64 a1, __int64 a2, __int64 a3, __int64 a4) +{ + __int64 v4; // rax + __int64 v6; // rax + char v7; // cl + char n3; // [rsp+50h] [rbp+8h] BYREF + char v9; // [rsp+58h] [rbp+10h] BYREF + char n2; // [rsp+60h] [rbp+18h] BYREF + + v4 = qword_7920; /*0x7d0*/ + if ( !qword_7920 ) /*0x7da*/ + { + if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920) < 0 ) /*0x7fc*/ + { + qword_7920 = 0; /*0x7fe*/ + return 85; /*0x80b*/ + } + v4 = qword_7920; /*0x80d*/ + } + n2 = 2; /*0x819*/ + LOBYTE(a4) = 69; /*0x823*/ + n3 = 3; /*0x82b*/ + LOBYTE(a2) = 46; /*0x847*/ + v6 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, char, char *, char *))(v4 + 16))( /*0x84c*/ + v4, + a2, + 0, + a4, + &n2, + 1, + &v9, + &n3); + v7 = v9; /*0x84f*/ + if ( v6 < 0 ) /*0x85c*/ + return 85; /*0x85c*/ + return v7; /*0x861*/ +} + +__int64 __fastcall sub_868(char a1, _BYTE *a2, __int64 a3, __int64 a4) +{ + __int64 v4; // rax + _BYTE *v5; // rbx + __int64 result; // rax + _BYTE v8[24]; // [rsp+40h] [rbp-18h] BYREF + char n3; // [rsp+70h] [rbp+18h] BYREF + char v10; // [rsp+78h] [rbp+20h] BYREF + + v4 = qword_7920; /*0x872*/ + v5 = a2; /*0x879*/ + if ( !qword_7920 ) /*0x882*/ + { + result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x89b*/ + if ( result < 0 ) /*0x8a4*/ + { + qword_7920 = 0; /*0x8a6*/ + return result; /*0x8ae*/ + } + v4 = qword_7920; /*0x8b0*/ + } + v8[0] = a1; /*0x8bc*/ + LOBYTE(a4) = 44; /*0x8c6*/ + n3 = 3; /*0x8ce*/ + LOBYTE(a2) = 46; /*0x8ea*/ + result = (*(__int64 (__fastcall **)(__int64, _BYTE *, _QWORD, __int64, _BYTE *, char, char *, char *))(v4 + 16))( /*0x8ef*/ + v4, + a2, + 0, + a4, + v8, + 1, + &v10, + &n3); + if ( result >= 0 ) /*0x8f5*/ + { + *v5 = v10; /*0x8fb*/ + return 0; /*0x8fd*/ + } + return result; /*0x904*/ +} + +__int64 __fastcall sub_90C(char a1, __int64 a2, __int64 a3, __int64 a4) +{ + __int64 v4; // rax + char v5; // bl + __int64 result; // rax + _BYTE v8[24]; // [rsp+40h] [rbp-18h] BYREF + char n3; // [rsp+70h] [rbp+18h] BYREF + char v10; // [rsp+78h] [rbp+20h] BYREF + + v4 = qword_7920; /*0x916*/ + v5 = a2; /*0x91d*/ + if ( !qword_7920 ) /*0x925*/ + { + result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x93e*/ + if ( result < 0 ) /*0x947*/ + { + qword_7920 = 0; /*0x949*/ + return result; /*0x951*/ + } + v4 = qword_7920; /*0x953*/ + } + v8[0] = a1; /*0x95f*/ + LOBYTE(a4) = 43; /*0x969*/ + v8[1] = v5; /*0x971*/ + LOBYTE(a2) = 46; /*0x98c*/ + n3 = 3; /*0x991*/ + return (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _BYTE *, char, char *, char *))(v4 + 16))( /*0x99e*/ + v4, + a2, + 0, + a4, + v8, + 2, + &v10, + &n3); +} + +__int64 __fastcall sub_9A4(char *a1, __int64 a2, __int64 a3, __int64 a4) +{ + __int64 v4; // r10 + __int64 result; // rax + unsigned __int8 v7; // di + int v8; // [rsp+28h] [rbp-20h] + char v9; // [rsp+58h] [rbp+10h] BYREF + char v10; // [rsp+60h] [rbp+18h] BYREF + char v11; // [rsp+68h] [rbp+20h] BYREF + unsigned __int8 v12; // [rsp+69h] [rbp+21h] + char v13; // [rsp+6Ah] [rbp+22h] + char v14; // [rsp+6Bh] [rbp+23h] + + v4 = qword_7920; /*0x9ae*/ + result = 0; /*0x9b5*/ + if ( !qword_7920 ) /*0x9bd*/ + { + result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x9d6*/ + if ( result < 0 ) /*0x9df*/ + { + qword_7920 = 0; /*0x9e1*/ + return result; /*0x9e1*/ + } + v4 = qword_7920; /*0x9f4*/ + } + v7 = 0; /*0x9fb*/ + if ( a1[1] ) /*0x9fe*/ + { + while ( 1 ) /*0xa06*/ + { + LOBYTE(a4) = 18; /*0xa06*/ + v11 = *a1; /*0xa09*/ + LOBYTE(a2) = 56; /*0xa14*/ + v12 = v7; /*0xa16*/ + v14 = 0; /*0xa1b*/ + v9 = 1; /*0xa20*/ + v13 = a1[v7 + 2]; /*0xa42*/ + LOBYTE(v8) = 4; /*0xa49*/ + result = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, int, char *, char *))(v4 + 16))( /*0xa53*/ + v4, + a2, + 0, + a4, + &v11, + v8, + &v10, + &v9); + if ( ++v7 >= (unsigned __int8)a1[1] ) /*0xa5e*/ + break; /*0xa5e*/ + v4 = qword_7920; /*0xa60*/ + } + } + return result; /*0x9ee*/ +} + diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadEntry.c b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadEntry.c new file mode 100644 index 0000000..000791e --- /dev/null +++ b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadEntry.c @@ -0,0 +1,2422 @@ +__int64 __fastcall sub_3FC(__int64 ImageHandle, __int64 a2) +{ + __int64 v3; // rax + __int64 v4; // rbx + __int64 v5; // rax + __int64 v6; // rax + __int64 v7; // rax + __int64 v8; // rbx + __int64 v9; // rax + __int64 v10; // rax + __int64 v11; // rax + __int64 v12; // rcx + __int64 v13; // rax + __int64 v14; // rax + __int64 v15; // rax + __int64 v16; // rax + _BYTE *v17; // rax + __int16 v18; // bx + bool v19; // bl + __int64 v20; // rdi + int i; // eax + + ::ImageHandle = ImageHandle; /*0x415*/ + if ( !ImageHandle ) /*0x429*/ + sub_5450( /*0x438*/ + "e:\\hs\\MdePkg\\Library\\UefiBootServicesTableLib\\UefiBootServicesTableLib.c", + 51, + "gImageHandle != ((void *) 0)"); + qword_7928 = a2; /*0x43d*/ + if ( !a2 ) /*0x447*/ + sub_5450("e:\\hs\\MdePkg\\Library\\UefiBootServicesTableLib\\UefiBootServicesTableLib.c", 57, "gST != ((void *) 0)"); /*0x456*/ + qword_7930 = *(_QWORD *)(a2 + 96); /*0x45f*/ + if ( !qword_7930 ) /*0x469*/ + sub_5450("e:\\hs\\MdePkg\\Library\\UefiBootServicesTableLib\\UefiBootServicesTableLib.c", 63, "gBS != ((void *) 0)"); /*0x478*/ + qword_7940 = *(_QWORD *)(a2 + 88); /*0x481*/ + if ( !qword_7940 ) /*0x48b*/ + sub_5450( /*0x49e*/ + "e:\\hs\\MdePkg\\Library\\UefiRuntimeServicesTableLib\\UefiRuntimeServicesTableLib.c", + 47, + "gRT != ((void *) 0)"); + v3 = sub_54E0(&unk_7490, &qword_7950); /*0x4b1*/ + v4 = v3; /*0x4bd*/ + if ( v3 < 0 ) /*0x4cf*/ + { + sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v3); /*0x4d9*/ + sub_5450("e:\\hs\\MdePkg\\Library\\DxeServicesTableLib\\DxeServicesTableLib.c", 64, "!EFI_ERROR (Status)"); /*0x4ed*/ + } + if ( !qword_7950 ) /*0x4fa*/ + sub_5450("e:\\hs\\MdePkg\\Library\\DxeServicesTableLib\\DxeServicesTableLib.c", 65, "gDS != ((void *) 0)"); /*0x50f*/ + if ( v4 < 0 ) /*0x517*/ + { + sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v4); /*0x522*/ + sub_5450( /*0x536*/ + "e:\\hs\\Build\\HR6N0XMLK\\DEBUG_VS2015\\X64\\LenovoServerPkg\\SetupDefaults\\SetupDefaultLoad\\DEBUG\\AutoGen.c", + 450, + "!EFI_ERROR (Status)"); + } + if ( !qword_7958 ) /*0x543*/ + { + v5 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_7930 + 320))(&unk_73C0, 0, &qword_7958); /*0x55c*/ + if ( v5 < 0 ) /*0x565*/ + { + sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v5); /*0x570*/ + sub_5450("e:\\hs\\CpRcPkg\\Library\\DxeMmPciBaseLib\\DxeMmPciBaseLib.c", 52, "!EFI_ERROR (Status)"); /*0x584*/ + } + if ( !qword_7958 ) /*0x591*/ + sub_5450("e:\\hs\\CpRcPkg\\Library\\DxeMmPciBaseLib\\DxeMmPciBaseLib.c", 53, "mPciUsra != ((void *) 0)"); /*0x5a6*/ + } + sub_55D4(); /*0x5ab*/ + v6 = sub_5DF0(); /*0x5b0*/ + qword_7968 = (*(__int64 (__fastcall **)(__int64))(v6 + 32))(5); /*0x5bd*/ + v7 = sub_5DF0(); /*0x5c4*/ + v8 = (*(__int64 (__fastcall **)(__int64))(v7 + 40))(7); /*0x5d5*/ + v9 = sub_5DF0(); /*0x5d8*/ + if ( (unsigned __int64)(*(__int64 (__fastcall **)(__int64))(v9 + 56))(7) > 0x48 ) /*0x5e7*/ + sub_5450( /*0x5fb*/ + "e:\\hs\\AmiCRBPkg\\Library\\AmiPcieSegBusLib\\AmiPcieSegBusDxeSmm.c", + 60, + "sizeof (PCIE_SEG_BUS_TABLE) >= LibPcdGetSize(7U)"); + v10 = sub_5DF0(); + v11 = sub_5DF0(); + v12 = 0; + v13 = v10; + v14 = v11; + v15 = v13; + v16 = v14; + sub_5EAC(v12, (char *)v15, (unsigned __int64)v16); /*0x611*/ + v17 = (_BYTE *)GetSetupDataSize(1024068); /*0x73b*/ + if ( *(char *)GetSetupDataSize(1024068) >= 0 ) /*0x727*/ + { + v18 = (_WORD *)GetSetupDataSize(1024064); /*0x72c*/ + GetStringHeight(v18); /*0x734*/ + *v17 |= 0x80u; /*0x745*/ + } + v19 = (_getcallerseflags_w() & 0x200) != 0; /*0x75e*/ + v20 = 0; + (void)v19; + (void)v20; + return 0; +} + + + +EFI_STATUS __fastcall sub_1E38(__int64 n2_22, EFI_SYSTEM_TABLE *SystemTable) +{ + unsigned __int8 v2; // bl + char v3; // r13 + EFI_BOOT_SERVICES *BootServices; // rdi + __int64 v5; // rax + __int64 v6; // rcx + __int64 v7; // rdx + __int64 v8; // rcx + __int64 v9; // r8 + __int64 v10; // r9 + char n85; // al + char n85_1; // r8 + __int64 n115; // rdx + unsigned __int8 n33; // cl + char v15; // al + __int64 n5; // r9 + char v17; // al + int v18; // ecx + int v19; // ecx + int v20; // ecx + int v21; // ecx + int v22; // ecx + __int16 n2000; // ax + int v24; // ecx + int v25; // ecx + int v26; // ecx + int v27; // ecx + int v28; // ecx + __int64 v29; // rax + __int64 v30; // rax + char n256_1; // cl + unsigned __int64 n22; // rax + unsigned __int64 i; // rax + unsigned __int64 n22_1; // rax + unsigned __int64 j; // rax + char v36; // r15 + char v37; // di + unsigned __int64 n3_4; // rax + unsigned __int64 k; // rax + unsigned __int64 m; // rax + unsigned __int64 n; // rax + unsigned __int64 ii; // rax + unsigned __int64 jj; // rax + __int64 v44; // rdi + unsigned __int64 kk; // rdi + unsigned __int64 n22_2; // r14 + unsigned __int64 mm; // rdi + __int64 n8; // rdi + __int64 n12; // rsi + unsigned __int64 n30; // r12 + __int64 n20; // rdi + __int64 v52; // rdx + __int64 v53; // r9 + char v54; // di + unsigned __int64 nn; // rbx + __int64 v56; // rax + __int64 v57; // rax + bool v58; // bl + __int64 v59; // rdx + __int64 v60; // r8 + __int64 v61; // r9 + __int64 v62; // r8 + __int64 v63; // r9 + __int64 v64; // r8 + __int64 v65; // r9 + char n2_7; // dl + __int64 n2_9; // r8 + __int64 v68; // r9 + __int64 v69; // r8 + __int64 v70; // r9 + char n2_11; // dl + __int64 n2_13; // r8 + __int64 v73; // r9 + __int64 n257_5; // r8 + __int64 v75; // r9 + __int64 v76; // r8 + __int64 v77; // r9 + __int64 v78; // r8 + __int64 v79; // r9 + __int64 v80; // r8 + __int64 v81; // r9 + __int64 v82; // r8 + __int64 v83; // r9 + __int64 v84; // rdx + __int64 v85; // r9 + __int64 v86; // rax + unsigned __int8 nn_1; // cl + char n2_15; // al + __int64 v89; // r8 + __int64 v90; // r9 + char n257_6; // dl + __int64 n2_16; // r8 + __int64 v93; // r9 + __int64 n2_17; // r8 + __int64 v95; // r9 + __int64 v96; // r8 + __int64 v97; // r9 + char n2_18; // dl + __int64 v99; // r8 + __int64 v100; // r9 + char n2_20; // dl + __int64 v102; // r8 + __int64 v103; // r9 + __int64 v104; // r8 + _BYTE *v105; // r9 + __int64 v106; // r8 + __int64 v107; // r9 + __int64 v108; // rdx + __int64 v109; // r8 + __int64 v110; // r9 + __int64 v111; // rdx + __int64 v112; // r8 + __int64 v113; // r9 + __int64 v114; // rdx + __int64 v115; // r8 + __int64 v116; // r9 + __int64 v117; // rdx + __int64 v118; // r8 + __int64 v119; // r9 + __int64 v120; // rdx + __int64 v121; // r8 + __int64 v122; // r9 + __int64 v123; // rdx + __int64 v124; // r8 + __int64 v125; // r9 + __int64 v126; // rdx + __int64 v127; // r8 + __int64 v128; // r9 + __int64 v129; // rdx + __int64 v130; // r8 + __int64 v131; // r9 + __int64 v132; // rdx + __int64 v133; // r8 + __int64 v134; // r9 + __int64 v135; // rdx + __int64 v136; // r8 + __int64 v137; // r9 + __int64 v138; // rdx + __int64 v139; // r8 + __int64 v140; // r9 + __int64 v141; // rdx + __int64 v142; // r8 + __int64 v143; // r9 + __int64 v144; // rdx + __int64 v145; // r8 + __int64 v146; // r9 + __int64 v147; // rdx + __int64 v148; // r8 + __int64 v149; // r9 + __int64 v150; // rdx + __int64 v151; // r8 + __int64 v152; // r9 + __int64 v153; // r8 + __int64 v154; // r9 + int v156; // [rsp+28h] [rbp-D8h] + __int16 n257_2; // [rsp+40h] [rbp-C0h] BYREF + char v158; // [rsp+42h] [rbp-BEh] + int n3276800; // [rsp+46h] [rbp-BAh] + _WORD v160[2]; // [rsp+50h] [rbp-B0h] BYREF + _BYTE v161[4]; // [rsp+54h] [rbp-ACh] BYREF + char v162; // [rsp+58h] [rbp-A8h] BYREF + char n10_1; // [rsp+59h] [rbp-A7h] BYREF + char n10_2; // [rsp+5Ah] [rbp-A6h] BYREF + char v165; // [rsp+5Bh] [rbp-A5h] BYREF + __int16 n257_3; // [rsp+5Ch] [rbp-A4h] BYREF + _BYTE v167[4]; // [rsp+60h] [rbp-A0h] BYREF + _BYTE v168[4]; // [rsp+64h] [rbp-9Ch] BYREF + unsigned int v169; // [rsp+68h] [rbp-98h] BYREF + unsigned int v170; // [rsp+6Ch] [rbp-94h] BYREF + _DWORD v171[4]; // [rsp+70h] [rbp-90h] BYREF + unsigned int v172; // [rsp+80h] [rbp-80h] BYREF + unsigned int v173; // [rsp+84h] [rbp-7Ch] BYREF + unsigned int v174; // [rsp+88h] [rbp-78h] BYREF + unsigned int v175; // [rsp+8Ch] [rbp-74h] BYREF + __int64 v176; // [rsp+90h] [rbp-70h] + char v177[8]; // [rsp+98h] [rbp-68h] BYREF + __int64 n814; // [rsp+A0h] [rbp-60h] BYREF + unsigned int v179; // [rsp+A8h] [rbp-58h] BYREF + unsigned int v180; // [rsp+ACh] [rbp-54h] BYREF + unsigned int v181; // [rsp+B0h] [rbp-50h] BYREF + unsigned int v182; // [rsp+B4h] [rbp-4Ch] BYREF + unsigned int v183; // [rsp+B8h] [rbp-48h] BYREF + int v184; // [rsp+BCh] [rbp-44h] BYREF + char v185[4]; // [rsp+C0h] [rbp-40h] BYREF + char v186[4]; // [rsp+C4h] [rbp-3Ch] BYREF + char v187[8]; // [rsp+C8h] [rbp-38h] BYREF + __int64 n301; // [rsp+D0h] [rbp-30h] BYREF + __int64 n224; // [rsp+D8h] [rbp-28h] BYREF + __int64 n462; // [rsp+E0h] [rbp-20h] BYREF + unsigned int v191; // [rsp+E8h] [rbp-18h] BYREF + unsigned int v192; // [rsp+ECh] [rbp-14h] BYREF + unsigned int v193; // [rsp+F0h] [rbp-10h] BYREF + __int64 n676; // [rsp+F8h] [rbp-8h] BYREF + __int64 n81; // [rsp+100h] [rbp+0h] BYREF + __int64 n3; // [rsp+108h] [rbp+8h] BYREF + __int64 n1072; // [rsp+110h] [rbp+10h] BYREF + __int64 n2; // [rsp+118h] [rbp+18h] BYREF + __int64 n341; // [rsp+120h] [rbp+20h] BYREF + __int64 n514; // [rsp+128h] [rbp+28h] BYREF + __int64 n1495; // [rsp+130h] [rbp+30h] BYREF + __int64 n6668; // [rsp+138h] [rbp+38h] BYREF + __int64 n10; // [rsp+140h] [rbp+40h] BYREF + _BYTE v204[80]; // [rsp+150h] [rbp+50h] BYREF + char v205; // [rsp+1A0h] [rbp+A0h] + _BYTE v206[211]; // [rsp+1B0h] [rbp+B0h] BYREF + char v207; // [rsp+283h] [rbp+183h] + _WORD v208[420]; // [rsp+D6Ah] [rbp+C6Ah] + __int64 v209; // [rsp+10B2h] [rbp+FB2h] + __int64 v210; // [rsp+10BAh] [rbp+FBAh] + __int64 v211; // [rsp+10C2h] [rbp+FC2h] + __int64 v212; // [rsp+10CAh] [rbp+FCAh] + char v213; // [rsp+125Ah] [rbp+115Ah] + char v214; // [rsp+125Ch] [rbp+115Ch] + char v215; // [rsp+125Dh] [rbp+115Dh] + char v216; // [rsp+125Fh] [rbp+115Fh] + _DWORD v217[2]; // [rsp+1266h] [rbp+1166h] + __int16 n257_4; // [rsp+126Eh] [rbp+116Eh] + int n16843009_1; // [rsp+1272h] [rbp+1172h] + int n16843009_2; // [rsp+127Ah] [rbp+117Ah] + char v221; // [rsp+1296h] [rbp+1196h] + char v222; // [rsp+1298h] [rbp+1198h] + char v223; // [rsp+1299h] [rbp+1199h] + char v224; // [rsp+129Bh] [rbp+119Bh] + char v225; // [rsp+1338h] [rbp+1238h] + char v226; // [rsp+1347h] [rbp+1247h] + char v227; // [rsp+1A93h] [rbp+1993h] + char v228; // [rsp+1A94h] [rbp+1994h] + __int16 n256; // [rsp+1A95h] [rbp+1995h] + _BYTE v230[9]; // [rsp+1BBCh] [rbp+1ABCh] BYREF + unsigned __int8 n2_10; // [rsp+1BC5h] [rbp+1AC5h] + __int16 v232; // [rsp+1BC6h] [rbp+1AC6h] + _BYTE v233[11]; // [rsp+1C9Ch] [rbp+1B9Ch] BYREF + _WORD v234[5]; // [rsp+1CA7h] [rbp+1BA7h] BYREF + char v235; // [rsp+1CB1h] [rbp+1BB1h] + char v236; // [rsp+1CB4h] [rbp+1BB4h] + _BYTE v237[10]; // [rsp+1DF1h] [rbp+1CF1h] BYREF + __int16 v238; // [rsp+1DFBh] [rbp+1CFBh] + char v239; // [rsp+1DFDh] [rbp+1CFDh] + __int16 n2000_2; // [rsp+1E0Ah] [rbp+1D0Ah] + __int16 n257_1; // [rsp+1E31h] [rbp+1D31h] + __int16 v242; // [rsp+1E35h] [rbp+1D35h] + __int16 v243; // [rsp+1E39h] [rbp+1D39h] + char n2_1; // [rsp+1E4Ch] [rbp+1D4Ch] + char v245; // [rsp+1E99h] [rbp+1D99h] + _BYTE v246[2]; // [rsp+1FF3h] [rbp+1EF3h] BYREF + char v247; // [rsp+1FF5h] [rbp+1EF5h] + char n2_14; // [rsp+1FF7h] [rbp+1EF7h] + __int16 n257; // [rsp+1FFDh] [rbp+1EFDh] + char v250; // [rsp+2007h] [rbp+1F07h] + char v251; // [rsp+200Ah] [rbp+1F0Ah] + char n2_23; // [rsp+200Bh] [rbp+1F0Bh] + char n3_3; // [rsp+2021h] [rbp+1F21h] + _BYTE v254[3]; // [rsp+2022h] [rbp+1F22h] BYREF + char n2_19; // [rsp+2025h] [rbp+1F25h] + char v256; // [rsp+2032h] [rbp+1F32h] + char v257; // [rsp+2038h] [rbp+1F38h] + __int16 v258; // [rsp+203Ah] [rbp+1F3Ah] + char v259; // [rsp+20F0h] [rbp+1FF0h] + char n3_1; // [rsp+20F2h] [rbp+1FF2h] + char v261; // [rsp+21C1h] [rbp+20C1h] BYREF + char v262; // [rsp+21C2h] [rbp+20C2h] + char n2_8; // [rsp+21C6h] [rbp+20C6h] + char n2_12; // [rsp+21C8h] [rbp+20C8h] + int n16843009; // [rsp+21CFh] [rbp+20CFh] + char v266; // [rsp+21D4h] [rbp+20D4h] + char n2_21; // [rsp+2220h] [rbp+2120h] + _BYTE v268[74]; // [rsp+22F0h] [rbp+21F0h] BYREF + char v269; // [rsp+233Ah] [rbp+223Ah] + char v270; // [rsp+2373h] [rbp+2273h] + __int16 n2000_1; // [rsp+239Fh] [rbp+229Fh] + char v272; // [rsp+23AAh] [rbp+22AAh] + char v273; // [rsp+23F6h] [rbp+22F6h] + char v274; // [rsp+24C0h] [rbp+23C0h] + unsigned __int8 n33_1; // [rsp+24C1h] [rbp+23C1h] + unsigned __int8 v276[2]; // [rsp+25A0h] [rbp+24A0h] BYREF + _BYTE v277[270]; // [rsp+25A2h] [rbp+24A2h] BYREF + _BYTE v278[10]; // [rsp+26B0h] [rbp+25B0h] BYREF + char n3_2; // [rsp+26BAh] [rbp+25BAh] + char n2_2; // [rsp+26C2h] [rbp+25C2h] + char n2_4; // [rsp+2742h] [rbp+2642h] + char n2_3; // [rsp+2814h] [rbp+2714h] + char v283; // [rsp+2866h] [rbp+2766h] + unsigned __int8 n33_2; // [rsp+2867h] [rbp+2767h] + char n2_5; // [rsp+28BAh] [rbp+27BAh] + _BYTE v286[279]; // [rsp+2AE0h] [rbp+29E0h] BYREF + char v287; // [rsp+2BF7h] [rbp+2AF7h] + char v288; // [rsp+30C0h] [rbp+2FC0h] BYREF + unsigned __int8 v289; // [rsp+30C1h] [rbp+2FC1h] + char v290[318]; // [rsp+30C2h] [rbp+2FC2h] BYREF + __int64 n2_6; // [rsp+3210h] [rbp+3110h] BYREF + char v292; // [rsp+3220h] [rbp+3120h] BYREF + char v293; // [rsp+3228h] [rbp+3128h] BYREF + + n2_6 = n2_22; /*0x1e3d*/ + n814 = 814; /*0x1e5f*/ + v2 = 0; /*0x1e6e*/ + n676 = 676; /*0x1e71*/ + v3 = 0; /*0x1e79*/ + v171[0] = -938345928; /*0x1e7c*/ + v171[1] = 1165574856; /*0x1e84*/ + v171[2] = -379536471; /*0x1e8c*/ + v171[3] = 888921422; /*0x1e94*/ + LOBYTE(n2_6) = 0; /*0x1e9c*/ + if ( ::SystemTable ) /*0x1ea3*/ + { + BootServices = (EFI_BOOT_SERVICES *)::BootServices; /*0x1ec4*/ + } + else + { + ::SystemTable = (__int64)SystemTable; /*0x1ea5*/ + BootServices = SystemTable->BootServices; /*0x1eac*/ + ::BootServices = (__int64)BootServices; /*0x1eb0*/ + RuntimeServices = (__int64)SystemTable->RuntimeServices; /*0x1ebb*/ + } + if ( (unsigned int)sub_5710() == 32 ) /*0x1ed7*/ + return 0; /*0x1ed7*/ + v5 = ((__int64 (__fastcall *)(void *, _QWORD, __int64 *))BootServices->LocateProtocol)(&unk_7450, 0, &qword_7920); /*0x1eed*/ + v6 = qword_7920; /*0x1ef3*/ + if ( v5 < 0 ) /*0x1efd*/ + v6 = 0; /*0x1efd*/ + qword_7920 = v6; /*0x1f01*/ + sub_101C(); /*0x1f08*/ + n301 = 301; /*0x1f14*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, char *))(RuntimeServices + 72))( /*0x1f3e*/ + L"SocketProcessorCoreConfig", + &unk_7410, + &v173, + &n301, + &v261); + n341 = 341; /*0x1f48*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x1f72*/ + L"SocketMpLinkConfig", + &unk_74A0, + &v191, + &n341, + v233); + n462 = 462; /*0x1f7c*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x1fa6*/ + L"SocketPowerManagementConfig", + &unk_7430, + &v175, + &n462, + v246); + n6668 = 6668; /*0x1fb0*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x1fdb*/ + L"SocketIioConfig", + &unk_7470, + &v170, + &n6668, + v206); + n224 = 224; /*0x1fe5*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x200f*/ + L"SocketCommonRcConfig", + &unk_74B0, + &v174, + &n224, + v230); + n514 = 514; /*0x2019*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2043*/ + L"SocketMemoryConfig", + &unk_73E0, + &v192, + &n514, + v237); + n1495 = 1495; /*0x204d*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2077*/ + L"PchRcConfiguration", + &unk_73B0, + &v193, + &n1495, + v286); + if ( (*(__int64 (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, char *))(RuntimeServices + 72))( /*0x20bc*/ + L"Setup", + &unk_7568, + &v169, + &n814, + &byte_7A20) >= 0 + && (n19533 != 77 || n19276 != 19276) ) + { + n19533 = 19533; /*0x20e5*/ + HIBYTE(n19276) = 75; /*0x20ee*/ + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x20fa*/ + L"Setup", + &unk_7568, + v169, + n814, + &byte_7A20); + } + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2126*/ + L"IntelSetup", + &unk_75D8, + &v179, + &n676, + v268); + n81 = 81; /*0x212d*/ + (*(void (__fastcall **)(const __int16 *, _DWORD *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2155*/ + L"AMITSESetup", + v171, + &v180, + &n81, + v204); + n3 = 3; /*0x2161*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2188*/ + L"PNP0501_1_NV", + &unk_74E0, + &v181, + &n3, + v161); + n10 = 10; /*0x2194*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, __int16 *))(RuntimeServices + 72))( /*0x21bb*/ + L"NetworkStackVar", + &unk_74C0, + &v172, + &n10, + &n257_2); + n2 = 2; /*0x21e4*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _WORD *))(RuntimeServices + 72))( /*0x21ef*/ + L"Timeout", + &unk_75C8, + &v183, + &n2, + v160); + n1072 = 1072; /*0x21f9*/ + (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2223*/ + L"ServerSetup", + &unk_7460, + &v182, + &n1072, + v278); + n85 = sub_7CC(v8, v7, v9, v10); /*0x2226*/ + n85_1 = n85; /*0x222b*/ + __outbyte(0x72u, 0x5Cu); /*0x2234*/ + n115 = 115; /*0x2235*/ + __outbyte(0x73u, n85); /*0x223c*/ + n33 = n33; /*0x223d*/ + if ( n33 == n85 || n85 == 85 ) /*0x224f*/ + { + v15 = 0; /*0x225f*/ + } + else + { + n33 = n85; /*0x2251*/ + v15 = 1; /*0x2254*/ + n33 = n85_1; /*0x2257*/ + } + n33_1 = n33; /*0x226d*/ + n33_2 = n33; /*0x227d*/ + n5 = 5; /*0x228b*/ + if ( byte_7B3B && (byte_7B3B != 1 || !v15) ) /*0x229a*/ + { + if ( (unsigned __int8)(n33 - 2) <= 1u || n33 == 33 ) /*0x22a9*/ + v3 = 1; /*0x22af*/ + goto LABEL_69; /*0x22b2*/ + } + v17 = byte_7B49; /*0x22b7*/ + if ( n33 != 85 ) /*0x22c4*/ + v17 = 0; /*0x22c4*/ + byte_7B3B = 1; /*0x22c8*/ + byte_7B49 = v17; /*0x22cf*/ + if ( n33 > 7u ) + { + v24 = n33 - 12; /*0x2b7d*/ + if ( !v24 ) /*0x2b7f*/ + { + n2_1 = 0; /*0x3543*/ + n131073 = 131073; /*0x354a*/ + n458758 = 458758; /*0x3554*/ + n2 = 2; /*0x355e*/ + *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x356a*/ + n10 = 10; /*0x3572*/ + LOWORD(n33686016) = 513; /*0x3579*/ + v266 = 0; /*0x3582*/ + n3_1 = 3; /*0x3589*/ + n2_14 = 1; /*0x3590*/ + v254[2] = 0; /*0x3597*/ + v205 = 0; /*0x359e*/ + n3276800 = 3276800; /*0x35a5*/ + goto LABEL_57; /*0x35a5*/ + } + v25 = v24 - 4; /*0x2b85*/ + if ( v25 ) /*0x2b88*/ + { + v26 = v25 - 17; /*0x2b8e*/ + if ( !v26 ) /*0x2b91*/ + { + n2_1 = 0; /*0x30f0*/ + v2 = 1; /*0x30f7*/ + n196608 = 196608; /*0x30fa*/ + n131073_0 = 131073; /*0x3104*/ + n327684 = 327684; /*0x310e*/ + n196608_0 = 196608; /*0x311b*/ + n10 = 10; /*0x3125*/ + n2000 = 2000; /*0x312c*/ + n2000_1 = 2000; /*0x3131*/ + n131073_1 = 131073; /*0x3138*/ + n327684_0 = 327684; /*0x3142*/ + n196608_1 = 196608; /*0x314c*/ + n524293 = 524293; /*0x3156*/ + n131073 = 131073; /*0x3160*/ + n458758 = 458758; /*0x316a*/ + n589828 = 589828; /*0x3174*/ + n2 = 0; /*0x317e*/ + n2_5 = 1; /*0x3185*/ + byte_7A20 = 1; /*0x318c*/ + n33686016 = 33686016; /*0x3193*/ + n2_0 = 2; /*0x319d*/ + n2_8 = 0; /*0x31a4*/ + n16843009 = 16843009; /*0x31ab*/ + v262 = 1; /*0x31b5*/ + v266 = 0; /*0x31bc*/ + n2_12 = 1; /*0x31c3*/ + n2_21 = 1; /*0x31ca*/ + v209 = 0x101010101010101LL; /*0x31d1*/ + v210 = 0x101010101010101LL; /*0x31d8*/ + v211 = 0x101010101010101LL; /*0x31df*/ + v212 = 0x101010101010101LL; /*0x31e6*/ + v206[0] = 1; /*0x31ed*/ + n256 = 256; /*0x31f4*/ + v226 = 0; /*0x31fd*/ + v225 = 1; /*0x3204*/ + n3_1 = 2; /*0x320b*/ + n2_14 = 1; /*0x3212*/ + n2_23 = 1; /*0x3219*/ + *(_WORD *)v254 = 256; /*0x3220*/ + n3_3 = 0; /*0x3229*/ + v258 = 0; /*0x3230*/ + v254[2] = 1; /*0x3238*/ + n257 = 257; /*0x323f*/ + v247 = 1; /*0x3248*/ + v257 = 1; /*0x324f*/ + v234[0] = 2; /*0x3256*/ + LOBYTE(v234[1]) = 0; /*0x325e*/ + n257_1 = 257; /*0x3265*/ + v242 = 0; /*0x326e*/ + v243 = 0; /*0x3276*/ + n2_10 = 1; /*0x327e*/ + v274 = 1; /*0x3285*/ + v205 = 1; /*0x328c*/ + n3276800 = 3276800; /*0x3293*/ + v269 = 0; /*0x329b*/ + v161[0] = 1; /*0x32a2*/ + n257 = 257; /*0x32a7*/ + n1028 = 1028; /*0x32b1*/ + word_7A74 = 1; /*0x32ba*/ + v160[0] = 1; /*0x32c1*/ + n257_2 = 257; /*0x32c6*/ + v158 = 0; /*0x32cd*/ + v283 = 0; /*0x32d2*/ + n3_2 = 3; /*0x32d9*/ + v270 = 1; /*0x32df*/ + v236 = 1; /*0x32e6*/ + v272 = 1; /*0x32ed*/ + v207 = 0; /*0x32f4*/ + v287 = 0; /*0x32fb*/ +LABEL_67: + n2_1 = 2; /*0x36b9*/ + n2000_2 = n2000; /*0x36c0*/ + v286[197] = 0; /*0x36c7*/ + v286[83] = 0; /*0x36ce*/ + v235 = 0; /*0x36d5*/ + goto LABEL_68; /*0x36d5*/ + } + v27 = v26 - 48; /*0x2b97*/ + if ( !v27 ) /*0x2b9a*/ + { + n2_1 = 0; /*0x2f59*/ + v2 = 1; /*0x2f60*/ + n196608 = 3; /*0x2f63*/ + n131073_0 = 131073; /*0x2f69*/ + n327684 = 327684; /*0x2f73*/ + n196608_0 = 196608; /*0x2f80*/ + n10 = 10; /*0x2f8a*/ + n2000 = 2560; /*0x2f91*/ + n131073_1 = 131073; /*0x2f96*/ + n327684_0 = 327684; /*0x2fa0*/ + n196608_1 = 196608; /*0x2faa*/ + n524293 = 524293; /*0x2fb4*/ + n131073 = 131073; /*0x2fbe*/ + n458758 = 458758; /*0x2fc8*/ + n589828 = 589828; /*0x2fd2*/ + n2 = 2; /*0x2fdc*/ + *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2fe3*/ + byte_7A20 = 0; /*0x2fec*/ + LOWORD(n33686016) = 513; /*0x2ff3*/ + BYTE2(n33686016) = 2; /*0x2ffc*/ + n2_0 = 2; /*0x3003*/ + n2_8 = 0; /*0x300a*/ + n16843009 = 16843009; /*0x3011*/ + v262 = 1; /*0x301b*/ + v266 = 0; /*0x3022*/ + v209 = 0x101010101010101LL; /*0x3029*/ + v210 = 0x101010101010101LL; /*0x3030*/ + v211 = 0x101010101010101LL; /*0x3037*/ + v212 = 0x101010101010101LL; /*0x303e*/ + n256 = 256; /*0x3045*/ + n3_1 = 2; /*0x304e*/ + n2_14 = 1; /*0x3055*/ + n2_23 = 1; /*0x305c*/ + *(_WORD *)v254 = 256; /*0x3063*/ + n3_3 = 3; /*0x306c*/ + HIBYTE(v258) = 0; /*0x3072*/ + v254[2] = 1; /*0x3079*/ + LOBYTE(n257) = 1; /*0x3080*/ + memset(v234, 2, 3); /*0x3087*/ + n2_10 = 1; /*0x3097*/ + v274 = 1; /*0x309e*/ + v205 = 0; /*0x30a5*/ + n3276800 = 0x10000; /*0x30ac*/ + v161[0] = 0; /*0x30b4*/ + HIWORD(n257) = 257; /*0x30b9*/ + LOBYTE(n1028) = 3; /*0x30c2*/ + v160[0] = 1; /*0x30c8*/ + v269 = 0; /*0x30cd*/ + n257_2 = 0; /*0x30d4*/ + v158 = 0; /*0x30da*/ + v283 = 1; /*0x30df*/ +LABEL_66: + v206[0] = 1; /*0x36b2*/ + goto LABEL_67; /*0x36b2*/ + } + v28 = v27 - 6; /*0x2ba0*/ + if ( !v28 ) /*0x2ba3*/ + { + n2_1 = 0; /*0x2dd4*/ + n196608 = 3; /*0x2ddb*/ + v2 = 1; /*0x2de1*/ + n3_3 = 3; /*0x2de4*/ + n131073_0 = 131073; /*0x2dea*/ + n327684 = 327684; /*0x2df7*/ + n10 = 10; /*0x2e01*/ + n2000 = 2560; /*0x2e08*/ + n196608_0 = 196608; /*0x2e0d*/ + n131073_1 = 131073; /*0x2e17*/ + n327684_0 = 327684; /*0x2e21*/ + n196608_1 = 196608; /*0x2e2b*/ + n524293 = 524293; /*0x2e35*/ + n131073 = 131073; /*0x2e3f*/ + n458758 = 458758; /*0x2e49*/ + n589828 = 589828; /*0x2e53*/ + n2 = 2; /*0x2e5d*/ + *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2e64*/ + byte_7A20 = 0; /*0x2e6d*/ + LOWORD(n33686016) = 513; /*0x2e74*/ + BYTE2(n33686016) = 2; /*0x2e7d*/ + n2_0 = 2; /*0x2e84*/ + n2_8 = 0; /*0x2e8b*/ + n16843009 = 16843009; /*0x2e92*/ + v262 = 1; /*0x2e9c*/ + v266 = 0; /*0x2ea3*/ + v209 = 0x101010101010101LL; /*0x2eaa*/ + v210 = 0x101010101010101LL; /*0x2eb1*/ + v211 = 0x101010101010101LL; /*0x2eb8*/ + v212 = 0x101010101010101LL; /*0x2ebf*/ + n256 = 256; /*0x2ec6*/ + n3_1 = 2; /*0x2ecf*/ + n2_14 = 1; /*0x2ed6*/ + n2_23 = 1; /*0x2edd*/ + *(_WORD *)v254 = 256; /*0x2ee4*/ + HIBYTE(v258) = 0; /*0x2eed*/ + v254[2] = 1; /*0x2ef4*/ + LOBYTE(n257) = 1; /*0x2efb*/ + memset(v234, 2, 3); /*0x2f02*/ + v274 = 1; /*0x2f12*/ + v205 = 0; /*0x2f19*/ + n3276800 = 0x10000; /*0x2f20*/ + v161[0] = 0; /*0x2f28*/ + HIWORD(n257) = 257; /*0x2f2d*/ + v160[0] = 1; /*0x2f36*/ + v269 = 0; /*0x2f3b*/ + n257_2 = 0; /*0x2f42*/ + v283 = 1; /*0x2f48*/ +LABEL_63: + n2_10 = 1; /*0x369f*/ + goto LABEL_64; /*0x369f*/ + } + if ( v28 == 1 ) /*0x2bab*/ + { + n2_1 = 2; /*0x2c43*/ + n10 = 10; /*0x2c4a*/ + v2 = 1; /*0x2c51*/ + n2000 = 2560; /*0x2c54*/ + n196608 = 196608; /*0x2c59*/ + n131073_0 = 131073; /*0x2c63*/ + n327684 = 327684; /*0x2c6d*/ + n196608_0 = 196608; /*0x2c77*/ + n131073_1 = 131073; /*0x2c81*/ + n327684_0 = 327684; /*0x2c8b*/ + n196608_1 = 196608; /*0x2c95*/ + n524293 = 524293; /*0x2c9f*/ + n131073 = 131073; /*0x2ca9*/ + n458758 = 458758; /*0x2cb3*/ + n589828 = 589828; /*0x2cbd*/ + n2 = 0; /*0x2cc7*/ + *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2cce*/ + byte_7A20 = 1; /*0x2cd7*/ + LOWORD(n33686016) = 256; /*0x2cde*/ + BYTE2(n33686016) = 2; /*0x2ce7*/ + n2_0 = 2; /*0x2cee*/ + n2_8 = 0; /*0x2cf5*/ + n16843009 = 16843009; /*0x2cfc*/ + v262 = 1; /*0x2d06*/ + v266 = 0; /*0x2d0d*/ + v209 = 0x101010101010101LL; /*0x2d14*/ + v210 = 0x101010101010101LL; /*0x2d1b*/ + v211 = 0x101010101010101LL; /*0x2d22*/ + v212 = 0x101010101010101LL; /*0x2d29*/ + n256 = 1; /*0x2d30*/ + n3_1 = 2; /*0x2d37*/ + n2_14 = 1; /*0x2d3e*/ + n2_23 = 1; /*0x2d45*/ + memset(v254, 0, sizeof(v254)); /*0x2d4c*/ + n3_3 = 0; /*0x2d54*/ + HIBYTE(v258) = 0; /*0x2d5b*/ + LOBYTE(n257) = 1; /*0x2d69*/ + memset(v234, 2, 3); /*0x2d70*/ + n2_10 = 1; /*0x2d80*/ + v274 = 1; /*0x2d87*/ + v205 = 1; /*0x2d8e*/ + n3276800 = 3277057; /*0x2d95*/ + v269 = 0; /*0x2d9d*/ + v161[0] = 0; /*0x2da4*/ + HIWORD(n257) = 257; /*0x2da9*/ + v160[0] = 1; /*0x2db2*/ + n257_2 = 257; /*0x2db7*/ + v158 = 1; /*0x2dbe*/ + v283 = 0; /*0x2dc3*/ +LABEL_65: + LOBYTE(n1028) = 7; /*0x36ab*/ + goto LABEL_66; /*0x36ab*/ + } +LABEL_45: + n2_1 = 2; /*0x2bb1*/ + n10 = 10; /*0x2bbd*/ + LOBYTE(n33686016) = 0; /*0x2bc4*/ + n196608 = 196608; /*0x2bcb*/ + n131073_0 = 131073; /*0x2bd5*/ + n327684 = 327684; /*0x2bdf*/ + n196608_0 = 196608; /*0x2be9*/ + n131073_1 = 131073; /*0x2bf3*/ + n327684_0 = 327684; /*0x2bfd*/ + n196608_1 = 196608; /*0x2c07*/ + n524293 = 524293; /*0x2c11*/ + n131073 = 131073; /*0x2c1b*/ + n458758 = 458758; /*0x2c25*/ + n589828 = 589828; /*0x2c2f*/ + goto LABEL_68; /*0x2c39*/ + } + n2_1 = 0; /*0x330c*/ + n10 = 10; /*0x3313*/ + v2 = 1; /*0x331a*/ + v29 = qword_7920; /*0x331d*/ + n196608 = 196608; /*0x3324*/ + n131073_0 = 131073; /*0x332e*/ + n327684 = 327684; /*0x3338*/ + n196608_0 = 196608; /*0x3342*/ + n131073_1 = 131073; /*0x334c*/ + n327684_0 = 327684; /*0x3356*/ + n196608_1 = 196608; /*0x3360*/ + n524293 = 524293; /*0x336a*/ + n131073 = 131073; /*0x3374*/ + n458758 = 458758; /*0x337e*/ + n589828 = 589828; /*0x3388*/ + *(_WORD *)((char *)&n33686016 + 1) = 514; /*0x3392*/ + n2_0 = 2; /*0x339b*/ + LOBYTE(n33686016) = 1; /*0x33a2*/ + byte_7B39 = 1; /*0x33a9*/ + n257_3 = 257; /*0x33b0*/ + v162 = 1; /*0x33b7*/ + if ( !qword_7920 ) + { + if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *, __int64))(::BootServices + 320))( + &unk_7450, + 0, + &qword_7920, + 5) < 0 ) + { + v30 = 0x800000000000000EuLL; /*0x33e3*/ +LABEL_55: + sub_5408(64, "SetupDefaultLoadEntryPoint Sync PSURedundantMode with BMC Status: %r \n", v30); + HIWORD(n257) = 257; /*0x343f*/ + n8 = 8; /*0x3448*/ + n8_0 = 8; /*0x344e*/ + n1028 = 1799; /*0x3454*/ + n2 = 1; /*0x345d*/ + n2_2 = 2; /*0x3464*/ + n2_3 = 2; /*0x346b*/ + n2_4 = 2; /*0x3472*/ + n2_5 = 2; /*0x3479*/ + *(_WORD *)((char *)v234 + 1) = 0; /*0x3480*/ + n3_1 = 2; /*0x3488*/ + n2_14 = 0; /*0x348f*/ + *(_WORD *)&v254[1] = 0; /*0x3496*/ + n3_3 = 0; /*0x349e*/ + HIBYTE(v258) = 0; /*0x34a5*/ + n2_23 = 0; /*0x34ac*/ + n2_12 = 1; /*0x34b3*/ + n2_8 = 0; /*0x34ba*/ + n2_21 = 0; /*0x34c1*/ + v232 = 0; /*0x34c8*/ + v238 = 0; /*0x34d0*/ + v239 = 0; /*0x34d8*/ + v245 = 0; /*0x34df*/ + n257_2 = 257; /*0x34e6*/ + v158 = 0; /*0x34ed*/ + BYTE2(n3276800) = 50; /*0x34f2*/ + v209 = 0x101010101010101LL; /*0x34f7*/ + v210 = 0x101010101010101LL; /*0x34fe*/ + v211 = 0x101010101010101LL; /*0x3505*/ + v212 = 0x101010101010101LL; /*0x350c*/ + v206[0] = 1; /*0x3513*/ + n256 = 256; /*0x351a*/ + v205 = 0; /*0x3523*/ + v273 = 1; /*0x352a*/ + n2_10 = 1; /*0x3531*/ + goto LABEL_68; /*0x3538*/ + } + v29 = qword_7920; /*0x33ef*/ + } + LOBYTE(n5) = 32; /*0x33fb*/ + LOBYTE(n115) = 46; /*0x340a*/ + v30 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, __int16 *, char, char *, char *))(v29 + 16))( /*0x3423*/ + v29, + n115, + 0, + n5, + &n257_3, + 2, + v187, + &v162); + goto LABEL_55; /*0x3423*/ + } + if ( n33 != 7 ) /*0x22de*/ + { + if ( !n33 ) /*0x22e6*/ + { + n2_1 = 0; /*0x2a06*/ + n10 = 10; /*0x2a0d*/ + v2 = 1; /*0x2a14*/ + v160[0] = 10; /*0x2a17*/ + n2000 = 2560; /*0x2a1c*/ + n196608 = 196608; /*0x2a21*/ + n131073_0 = 131073; /*0x2a2b*/ + n327684 = 327684; /*0x2a35*/ + n196608_0 = 196608; /*0x2a3f*/ + n131073_1 = 131073; /*0x2a49*/ + n327684_0 = 327684; /*0x2a53*/ + n196608_1 = 196608; /*0x2a5d*/ + n524293 = 524293; /*0x2a67*/ + n131073 = 131073; /*0x2a71*/ + n458758 = 458758; /*0x2a7b*/ + n589828 = 589828; /*0x2a85*/ + n2 = 2; /*0x2a8f*/ + *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x2a96*/ + byte_7A20 = 1; /*0x2a9e*/ + LOWORD(n33686016) = 512; /*0x2aa5*/ + BYTE2(n33686016) = 2; /*0x2aae*/ + n2_0 = 2; /*0x2ab5*/ + n2_8 = 0; /*0x2abc*/ + n16843009 = 16843009; /*0x2ac3*/ + v262 = 1; /*0x2acd*/ + v266 = 0; /*0x2ad4*/ + n2_12 = 1; /*0x2adb*/ + v209 = 0x101010101010101LL; /*0x2ae2*/ + v210 = 0x101010101010101LL; /*0x2ae9*/ + v211 = 0x101010101010101LL; /*0x2af0*/ + v212 = 0x101010101010101LL; /*0x2af7*/ + n256 = 256; /*0x2afe*/ + n2_21 = 1; /*0x2b07*/ + n3_1 = 2; /*0x2b0e*/ + n2_14 = 1; /*0x2b15*/ + n2_23 = 1; /*0x2b1c*/ + HIBYTE(v258) = 7; /*0x2b23*/ + v254[2] = 0; /*0x2b2a*/ + LOBYTE(n257) = 1; /*0x2b31*/ + v234[0] = 2; /*0x2b38*/ + LOBYTE(v234[1]) = 0; /*0x2b40*/ + v274 = 1; /*0x2b47*/ + v205 = 1; /*0x2b4e*/ + n3276800 = 3276801; /*0x2b55*/ + v269 = 0; /*0x2b5d*/ + v161[0] = 1; /*0x2b64*/ + HIWORD(n257) = 0; /*0x2b69*/ + n257_2 = 257; /*0x2b71*/ +LABEL_62: + *(_WORD *)v254 = 0; /*0x3689*/ + n3_3 = 0; /*0x3691*/ + v283 = 0; /*0x3698*/ + goto LABEL_63; /*0x3698*/ + } + v18 = n33 - 1; /*0x22ec*/ + if ( !v18 ) /*0x22ee*/ + { + n2_1 = 0; /*0x286d*/ + n10 = 10; /*0x2874*/ + v2 = 1; /*0x287b*/ + v160[0] = 10; /*0x287e*/ + n2000 = 2560; /*0x2883*/ + n196608 = 196608; /*0x2888*/ + n131073_0 = 131073; /*0x2892*/ + n327684 = 327684; /*0x289c*/ + n196608_0 = 196608; /*0x28a6*/ + n131073_1 = 131073; /*0x28b0*/ + n327684_0 = 327684; /*0x28ba*/ + n196608_1 = 196608; /*0x28c4*/ + n524293 = 524293; /*0x28ce*/ + n131073 = 131073; /*0x28d8*/ + n458758 = 458758; /*0x28e2*/ + n589828 = 589828; /*0x28ec*/ + n2 = 2; /*0x28f6*/ + *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x28fd*/ + byte_7A20 = 1; /*0x2905*/ + LOWORD(n33686016) = 512; /*0x290c*/ + BYTE2(n33686016) = 2; /*0x2915*/ + n2_0 = 2; /*0x291c*/ + n2_8 = 0; /*0x2923*/ + n16843009 = 16843009; /*0x292a*/ + v262 = 1; /*0x2934*/ + v266 = 0; /*0x293b*/ + n2_12 = 1; /*0x2942*/ + v209 = 0x101010101010101LL; /*0x2949*/ + v210 = 0x101010101010101LL; /*0x2950*/ + v211 = 0x101010101010101LL; /*0x2957*/ + v212 = 0x101010101010101LL; /*0x295e*/ + n256 = 256; /*0x2965*/ + n2_21 = 0; /*0x296e*/ + n3_1 = 2; /*0x2975*/ + n2_14 = 1; /*0x297c*/ + n2_23 = 0; /*0x2983*/ + memset(v254, 0, sizeof(v254)); /*0x298a*/ + n3_3 = 0; /*0x2992*/ + HIBYTE(v258) = 0; /*0x2999*/ + LOBYTE(n257) = 1; /*0x29a7*/ + v234[0] = 2; /*0x29ae*/ + LOBYTE(v234[1]) = 0; /*0x29b6*/ + n2_10 = 0; /*0x29bd*/ + v274 = 1; /*0x29c4*/ + v205 = 1; /*0x29cb*/ + n3276800 = 3276801; /*0x29d2*/ + v269 = 0; /*0x29da*/ + v161[0] = 1; /*0x29e1*/ + HIWORD(n257) = 0; /*0x29e6*/ + n257_2 = 257; /*0x29ee*/ + v283 = 1; /*0x29f5*/ +LABEL_64: + v158 = 0; /*0x36a6*/ + goto LABEL_65; /*0x36a6*/ + } + v19 = v18 - 1; /*0x22f4*/ + if ( !v19 ) /*0x22f6*/ + { + n2_1 = 1; /*0x26c6*/ + v2 = 1; /*0x26cd*/ + n196608 = 196608; /*0x26d0*/ + n131073_0 = 131073; /*0x26da*/ + n327684 = 327684; /*0x26e4*/ + n196608_0 = 196608; /*0x26f1*/ + n10 = 10; /*0x26fb*/ + n2000 = 2000; /*0x2702*/ + n2000_1 = 2000; /*0x2707*/ + n131073_1 = 131073; /*0x270e*/ + n327684_0 = 327684; /*0x2718*/ + n196608_1 = 196608; /*0x2722*/ + n524293 = 524293; /*0x272c*/ + n131073 = 131073; /*0x2736*/ + n458758 = 458758; /*0x2740*/ + n589828 = 589828; /*0x274a*/ + n2 = 0; /*0x2754*/ + *(__int16 *)((char *)&word_7A74 + 1) = 257; /*0x275b*/ + byte_7A20 = 1; /*0x2764*/ + n33686016 = 16843010; /*0x276b*/ + n2_0 = 1; /*0x2775*/ + n2_8 = 0; /*0x277c*/ + n16843009 = 16843009; /*0x2783*/ + v262 = 1; /*0x278d*/ + v266 = 0; /*0x2794*/ + v209 = 0x101010101010101LL; /*0x279b*/ + v210 = 0x101010101010101LL; /*0x27a2*/ + v211 = 0x101010101010101LL; /*0x27a9*/ + v212 = 0x101010101010101LL; /*0x27b0*/ + n256 = 1; /*0x27b7*/ + n3_1 = 2; /*0x27be*/ + n2_14 = 1; /*0x27c5*/ + n2_23 = 1; /*0x27cc*/ + v254[2] = 0; /*0x27d3*/ + LOBYTE(n257) = 0; /*0x27da*/ + v247 = 1; /*0x27e1*/ + v257 = 1; /*0x27e8*/ + v234[0] = 2; /*0x27ef*/ + LOBYTE(v234[1]) = 0; /*0x27f7*/ + n257_1 = 257; /*0x27fe*/ + v242 = 0; /*0x2807*/ + v243 = 1; /*0x280f*/ + v274 = 1; /*0x2816*/ + v205 = 1; /*0x281d*/ + n3276800 = 3276800; /*0x2824*/ + v269 = 0; /*0x282c*/ + n257_2 = 257; /*0x2833*/ + n3_2 = 3; /*0x283a*/ + v270 = 1; /*0x2840*/ + v236 = 1; /*0x2847*/ + v272 = 1; /*0x284e*/ + v207 = 0; /*0x2855*/ + v287 = 0; /*0x285c*/ +LABEL_61: + HIBYTE(v258) = 0; /*0x366f*/ + v160[0] = 1; /*0x3676*/ + HIWORD(n257) = 257; /*0x367b*/ + v161[0] = 0; /*0x3684*/ + goto LABEL_62; /*0x3684*/ + } + v20 = v19 - 1; /*0x22fc*/ + if ( !v20 ) /*0x22fe*/ + { + n2_1 = 1; /*0x2525*/ + v2 = 1; /*0x252c*/ + n196608 = 196608; /*0x252f*/ + n131073_0 = 131073; /*0x2539*/ + n327684 = 327684; /*0x2543*/ + n196608_0 = 196608; /*0x2550*/ + n10 = 10; /*0x255a*/ + n2000 = 2000; /*0x2561*/ + n2000_1 = 2000; /*0x2566*/ + n131073_1 = 131073; /*0x256d*/ + n327684_0 = 327684; /*0x2577*/ + n196608_1 = 196608; /*0x2581*/ + n524293 = 524293; /*0x258b*/ + n131073 = 131073; /*0x2595*/ + n458758 = 458758; /*0x259f*/ + n589828 = 589828; /*0x25a9*/ + n2 = 0; /*0x25b3*/ + *(__int16 *)((char *)&word_7A74 + 1) = 257; /*0x25ba*/ + byte_7A20 = 1; /*0x25c3*/ + n33686016 = 16843010; /*0x25ca*/ + n2_0 = 1; /*0x25d4*/ + n2_8 = 0; /*0x25db*/ + n16843009 = 16843009; /*0x25e2*/ + v262 = 1; /*0x25ec*/ + v266 = 0; /*0x25f3*/ + v209 = 0x101010101010101LL; /*0x25fa*/ + v210 = 0x101010101010101LL; /*0x2601*/ + v211 = 0x101010101010101LL; /*0x2608*/ + v212 = 0x101010101010101LL; /*0x260f*/ + n3_1 = 2; /*0x2616*/ + n2_14 = 1; /*0x261d*/ + n2_23 = 1; /*0x2624*/ + v254[2] = 0; /*0x262b*/ + LOBYTE(n257) = 0; /*0x2632*/ + v247 = 1; /*0x2639*/ + v257 = 1; /*0x2640*/ + v234[0] = 2; /*0x2647*/ + LOBYTE(v234[1]) = 0; /*0x264f*/ + n257_1 = 257; /*0x2656*/ + v242 = 0; /*0x265f*/ + v243 = 0; /*0x2667*/ + v274 = 1; /*0x266f*/ + v205 = 1; /*0x2676*/ + n3276800 = 3276800; /*0x267d*/ + v269 = 0; /*0x2685*/ + n257_2 = 257; /*0x268c*/ + n3_2 = 3; /*0x2693*/ + v270 = 1; /*0x2699*/ + v236 = 1; /*0x26a0*/ + v272 = 1; /*0x26a7*/ + v207 = 0; /*0x26ae*/ + v287 = 0; /*0x26b5*/ +LABEL_60: + n256 = 256; /*0x3666*/ + goto LABEL_61; /*0x3666*/ + } + v21 = v20 - 1; /*0x2304*/ + if ( !v21 ) /*0x2306*/ + { + n2_1 = 2; /*0x245d*/ + n10 = 10; /*0x2464*/ + LOWORD(n131073_0) = 1; /*0x246b*/ + n327684 = 262146; /*0x2472*/ + n5 = 5; /*0x247c*/ + n196608_1 = 3; /*0x2484*/ + n524293 = 327688; /*0x248e*/ + n131073 = 131073; /*0x2498*/ + n458758 = 458758; /*0x24a2*/ + n2 = 1; /*0x24ac*/ + *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x24b3*/ + LOWORD(n33686016) = 512; /*0x24bb*/ + v262 = 1; /*0x24c4*/ + v266 = 0; /*0x24cb*/ + n3_1 = 0; /*0x24d2*/ + n2_23 = 0; /*0x24d9*/ + n2_14 = 0; /*0x24e0*/ + v254[2] = 1; /*0x24e7*/ + memset(v234, 2, 3); /*0x24ee*/ + v205 = 0; /*0x24fe*/ + v274 = 0; /*0x2505*/ + n3276800 = 3276800; /*0x250c*/ + v269 = 0; /*0x2514*/ +LABEL_59: + n196608 = 196608; /*0x35f9*/ + v2 = 1; /*0x3603*/ + n196608_0 = 196608; /*0x3606*/ + n2000 = 2560; /*0x3610*/ + n16843009 = 16843009; /*0x3615*/ + n2_8 = 0; /*0x361f*/ + n2_0 = 2; /*0x3626*/ + BYTE2(n33686016) = 2; /*0x362d*/ + byte_7A20 = 1; /*0x3634*/ + n589828 = 589828; /*0x363b*/ + n327684_0 = 327684; /*0x3645*/ + n131073_1 = 131073; /*0x364f*/ + n257_2 = 0; /*0x3659*/ + LOBYTE(n257) = 1; /*0x365f*/ + goto LABEL_60; /*0x365f*/ + } + v22 = v21 - 1; /*0x230c*/ + if ( !v22 ) /*0x230e*/ + { + n2_1 = 2; /*0x23af*/ + n196608_1 = 3; /*0x23b6*/ + n524293 = 327688; /*0x23bc*/ + n131073 = 131073; /*0x23c6*/ + n458758 = 458758; /*0x23d3*/ + n10 = 10; /*0x23dd*/ + n2 = 2; /*0x23e4*/ + *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x23eb*/ + LOWORD(n33686016) = 512; /*0x23f4*/ + v266 = 1; /*0x23fd*/ + v209 = 0x101010101010101LL; /*0x2404*/ + v210 = 0x101010101010101LL; /*0x240b*/ + v211 = 0x101010101010101LL; /*0x2412*/ + v212 = 0x101010101010101LL; /*0x2419*/ + n3_1 = 3; /*0x2420*/ + v254[2] = 1; /*0x2426*/ + memset(v234, 2, 3); /*0x242d*/ + v269 = 0; /*0x243d*/ + v205 = 1; /*0x2444*/ + n3276800 = 16842752; /*0x244b*/ +LABEL_58: + n131073_0 = 131073; /*0x35d7*/ + n327684 = 327684; /*0x35e1*/ + n2_23 = 1; /*0x35eb*/ + v274 = 1; /*0x35f2*/ + goto LABEL_59; /*0x35f2*/ + } + if ( v22 == 1 ) /*0x2316*/ + { + n2_1 = 2; /*0x2321*/ + n131073 = 393217; /*0x2328*/ + n458758 = 458754; /*0x2332*/ + n2 = 0; /*0x233c*/ + *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2346*/ + n10 = 10; /*0x234f*/ + LOWORD(n33686016) = 512; /*0x2356*/ + v266 = 1; /*0x235f*/ + v209 = 0x101010101010101LL; /*0x2366*/ + v210 = 0x101010101010101LL; /*0x236d*/ + v211 = 0x101010101010101LL; /*0x2374*/ + v212 = 0x101010101010101LL; /*0x237b*/ + n3_1 = 3; /*0x2382*/ + v254[2] = 1; /*0x2388*/ + v269 = 0; /*0x238f*/ + v205 = 1; /*0x2396*/ + n3276800 = 0x10000; /*0x239d*/ +LABEL_57: + v262 = 1; /*0x35ad*/ + n524293 = 524293; /*0x35b4*/ + n196608_1 = 196608; /*0x35be*/ + LOBYTE(v234[1]) = 0; /*0x35c8*/ + v234[0] = 2; /*0x35cf*/ + goto LABEL_58; /*0x35cf*/ + } + goto LABEL_45; /*0x2316*/ + } +LABEL_68: + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x36dc*/ + L"SocketProcessorCoreConfig", + &unk_7410, + v173, + n301, + &v261); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3731*/ + L"SocketMpLinkConfig", + &unk_74A0, + v191, + n341, + v233); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x375d*/ + L"SocketPowerManagementConfig", + &unk_7430, + v175, + n462, + v246); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x378c*/ + L"SocketIioConfig", + &unk_7470, + v170, + 6668, + v206); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x37b8*/ + L"SocketMemoryConfig", + &unk_73E0, + v192, + n514, + v237); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x37e4*/ + L"SocketCommonRcConfig", + &unk_74B0, + v174, + n224, + v230); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3810*/ + L"PchRcConfiguration", + &unk_73B0, + v193, + n1495, + v286); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x383d*/ + L"Setup", + &unk_7568, + v169, + n814, + &byte_7A20); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3869*/ + L"IntelSetup", + &unk_75D8, + v179, + n676, + v268); + (*(void (__fastcall **)(const __int16 *, _DWORD *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3890*/ + L"AMITSESetup", + v171, + v180, + n81, + v204); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x38ba*/ + L"PNP0501_1_NV", + &unk_74E0, + v181, + n3, + v161); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, __int16 *))(RuntimeServices + 88))( /*0x38e6*/ + L"NetworkStackVar", + &unk_74C0, + v172, + 10, + &n257_2); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3912*/ + L"ServerSetup", + &unk_7460, + v182, + n1072, + v278); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _WORD *))(RuntimeServices + 88))( /*0x393c*/ + L"Timeout", + &unk_75C8, + v183, + n2, + v160); +LABEL_69: + v293 = 0; /*0x393f*/ + v292 = 0; /*0x3954*/ + sub_5768(&v293, &v292); /*0x395b*/ + n256_1 = HIBYTE(n256); /*0x3960*/ + if ( (_BYTE)n256 != HIBYTE(n256) && !v3 ) /*0x3981*/ + { + if ( (_BYTE)n256 ) /*0x3989*/ + { + v215 = 1; /*0x3999*/ + n16843009_1 = 16843009; /*0x39a0*/ + n16843009_2 = 16843009; /*0x39a6*/ + n22 = 22; /*0x39ac*/ + v223 = 1; /*0x39af*/ + v216 = 1; /*0x39b6*/ + v224 = 1; /*0x39bd*/ + do /*0x39f6*/ + { + v206[n22 + 11] = 0; /*0x39c4*/ + v206[n22 + 95] = 0; /*0x39cc*/ + v208[n22] = 0; /*0x39d4*/ + v208[n22 + 126] = 0; /*0x39dd*/ + v208[n22++ + 252] = 0; /*0x39e6*/ + } + while ( n22 < 0x1A ); /*0x39f6*/ + for ( i = 30; i < 0x22; ++i ) /*0x39f8*/ + { + v206[i + 11] = 0; /*0x39fb*/ + v206[i + 95] = 0; /*0x3a03*/ + v208[i] = 0; /*0x3a0b*/ + v208[i + 126] = 0; /*0x3a14*/ + v208[i + 252] = 0; /*0x3a1d*/ + } + } + else + { + v215 = 0; /*0x3a34*/ + n22_1 = 22; /*0x3a3b*/ + v223 = 0; /*0x3a3e*/ + v216 = 0; /*0x3a4a*/ + v224 = 0; /*0x3a51*/ + n16843009_1 = 0; /*0x3a58*/ + n16843009_2 = 0; /*0x3a5f*/ + do /*0x3a95*/ + { + v206[n22_1 + 11] = 1; /*0x3a66*/ + v206[n22_1 + 95] = 1; /*0x3a6e*/ + v208[n22_1] = 1; /*0x3a76*/ + v208[n22_1 + 126] = 32; /*0x3a7e*/ + v208[n22_1++ + 252] = 32; /*0x3a86*/ + } + while ( n22_1 < 0x1A ); /*0x3a95*/ + for ( j = 30; j < 0x22; ++j ) /*0x3a97*/ + { + v206[j + 11] = 1; /*0x3a9a*/ + v206[j + 95] = 1; /*0x3aa2*/ + v208[j] = 1; /*0x3aaa*/ + v208[j + 126] = 32; /*0x3ab2*/ + v208[j + 252] = 32; /*0x3aba*/ + } + } + n256_1 = HIBYTE(n256); /*0x3acb*/ + v2 = 1; /*0x3ad1*/ + } + v36 = v293; /*0x3ad4*/ + v37 = v292; /*0x3adb*/ + if ( v227 != v293 || v228 != v292 ) /*0x3af2*/ + goto LABEL_86; /*0x3af2*/ + if ( (_BYTE)n256 == n256_1 ) /*0x3afa*/ + goto LABEL_119; /*0x3afa*/ + if ( !v3 ) /*0x3b03*/ + { +LABEL_86: + sub_5B28(17170432, &v184); /*0x3b12*/ + n3_4 = 1; /*0x3b1f*/ + v213 = 0; /*0x3b21*/ + v221 = 0; /*0x3b28*/ + if ( v184 == 1 ) /*0x3b32*/ + { + v214 = 0; /*0x3b38*/ + v222 = 0; /*0x3b3f*/ + LOWORD(v217[0]) = 0; /*0x3b46*/ + n257_4 = 0; /*0x3b4e*/ + do /*0x3b88*/ + { + v206[n3_4 + 11] = 0; /*0x3b56*/ + v206[n3_4 + 95] = 0; /*0x3b5e*/ + v208[n3_4] = 0; /*0x3b66*/ + v208[n3_4 + 126] = 0; /*0x3b6f*/ + v208[n3_4++ + 252] = 0; /*0x3b78*/ + } + while ( n3_4 < 3 ); /*0x3b88*/ + for ( k = 9; k < 0xB; ++k ) /*0x3b90*/ + { + v206[k + 11] = 0; /*0x3b93*/ + v206[k + 95] = 0; /*0x3b9b*/ + v208[k] = 0; /*0x3ba3*/ + v208[k + 126] = 0; /*0x3bac*/ + v208[k + 252] = 0; /*0x3bb5*/ + } + if ( (_BYTE)n256 ) /*0x3bce*/ + { + if ( v36 ) /*0x3bd3*/ + { + v213 = 1; /*0x3bd5*/ + v221 = 1; /*0x3bdb*/ + LOWORD(v217[0]) = 257; /*0x3be1*/ + } + if ( v37 ) /*0x3bed*/ + { + v214 = 1; /*0x3bf3*/ + v222 = 1; /*0x3bf9*/ + n257_4 = 257; /*0x3bff*/ + } + } + else + { + if ( v36 ) /*0x3c15*/ + { + for ( m = 1; m < 3; ++m ) /*0x3c17*/ + { + v206[m + 11] = 1; /*0x3c1a*/ + v206[m + 95] = 1; /*0x3c21*/ + v208[m] = 1; /*0x3c28*/ + v208[m + 126] = 32; /*0x3c30*/ + v208[m + 252] = 32; /*0x3c38*/ + } + } + if ( v37 ) /*0x3c4c*/ + { + for ( n = 9; n < 0xB; ++n ) /*0x3c52*/ + { + v206[n + 11] = 1; /*0x3c55*/ + v206[n + 95] = 1; /*0x3c5c*/ + v208[n] = 1; /*0x3c63*/ + v208[n + 126] = 32; /*0x3c6b*/ + v208[n + 252] = 32; /*0x3c73*/ + } + } + } + } + else + { + v217[0] = 0; /*0x3c89*/ + do /*0x3cc2*/ + { + v206[n3_4 + 11] = 0; /*0x3c90*/ + v206[n3_4 + 95] = 0; /*0x3c98*/ + v208[n3_4] = 0; /*0x3ca0*/ + v208[n3_4 + 126] = 0; /*0x3ca9*/ + v208[n3_4++ + 252] = 0; /*0x3cb2*/ + } + while ( n3_4 < 5 ); /*0x3cc2*/ + if ( (_BYTE)n256 ) /*0x3ccb*/ + { + v213 = 0; /*0x3ccd*/ + if ( v36 ) /*0x3cd7*/ + { + v213 = 1; /*0x3cd9*/ + v221 = 1; /*0x3cdf*/ + LOWORD(v217[0]) = 257; /*0x3ce5*/ + } + if ( v37 ) /*0x3cf1*/ + { + v213 = 1; /*0x3cf7*/ + v221 = 1; /*0x3cfd*/ + HIWORD(v217[0]) = 257; /*0x3d03*/ + } + } + else + { + if ( v36 ) /*0x3d16*/ + { + for ( ii = 1; ii < 3; ++ii ) /*0x3d18*/ + { + v206[ii + 11] = 1; /*0x3d1b*/ + v206[ii + 95] = 1; /*0x3d22*/ + v208[ii] = 1; /*0x3d29*/ + v208[ii + 126] = 32; /*0x3d31*/ + v208[ii + 252] = 32; /*0x3d39*/ + } + } + if ( v37 ) /*0x3d4d*/ + { + for ( jj = 3; jj < 5; ++jj ) /*0x3d4f*/ + { + v206[jj + 11] = 1; /*0x3d54*/ + v206[jj + 95] = 1; /*0x3d5b*/ + v208[jj] = 1; /*0x3d62*/ + v208[jj + 126] = 32; /*0x3d6a*/ + v208[jj + 252] = 32; /*0x3d72*/ + } + } + } + } + n256_1 = HIBYTE(n256); /*0x3d83*/ + v2 = 1; /*0x3d89*/ + v227 = v36; /*0x3d8b*/ + v228 = v37; /*0x3d92*/ + } + if ( (_BYTE)n256 != n256_1 ) /*0x3da8*/ + { + v2 = 1; /*0x3daa*/ + HIBYTE(n256) = n256; /*0x3dac*/ + } +LABEL_119: + sub_5408(64, "(Before sync) ValidFlag = %x\n", v2); /*0x3db2*/ + v44 = 0; /*0x3dcb*/ + if ( v213 ) /*0x3dd7*/ + { + sub_5408(64, "VMDEnabled[0] Enable\n"); /*0x3f0b*/ + if ( v221 != 1 ) /*0x3f1b*/ + { + v221 = 1; /*0x3f24*/ + v2 = 1; /*0x3f2d*/ + sub_5408(64, "Hotplug\n"); /*0x3f2f*/ + } + while ( 1 ) /*0x3f5c*/ + { + sub_5408(64, "Index = %x\n", v44); /*0x3f5c*/ + if ( *((_BYTE *)v217 + v44) ) /*0x3f66*/ + { + sub_5408(64, "VMDPortEnable\n"); /*0x4036*/ + if ( v206[v44 + 12] ) /*0x403b*/ + { + v206[v44 + 12] = 0; /*0x4048*/ + v2 = 1; /*0x4055*/ + sub_5408(64, "1\n"); /*0x4058*/ + } + if ( v206[v44 + 96] ) /*0x405d*/ + { + v206[v44 + 96] = 0; /*0x406a*/ + v2 = 1; /*0x4077*/ + sub_5408(64, "2\n"); /*0x407a*/ + } + if ( v208[v44 + 1] ) /*0x407f*/ + { + v208[v44 + 1] = 0; /*0x4091*/ + v2 = 1; /*0x409f*/ + sub_5408(64, "3\n"); /*0x40a2*/ + } + if ( v208[v44 + 127] ) /*0x40a7*/ + { + v208[v44 + 127] = 0; /*0x40b9*/ + v2 = 1; /*0x40c7*/ + sub_5408(64, "4\n"); /*0x40ca*/ + } + if ( !v208[v44 + 253] ) /*0x40d8*/ + goto LABEL_159; /*0x40d8*/ + v208[v44 + 253] = 0; /*0x40da*/ + } + else + { + sub_5408(64, "VMDPortDisble\n"); /*0x3f7b*/ + if ( v206[v44 + 12] != 1 ) /*0x3f88*/ + { + v206[v44 + 12] = 1; /*0x3f8d*/ + v2 = 1; /*0x3f9a*/ + sub_5408(64, "1\n"); /*0x3f9d*/ + } + if ( v206[v44 + 96] != 1 ) /*0x3faa*/ + { + v206[v44 + 96] = 1; /*0x3faf*/ + v2 = 1; /*0x3fbc*/ + sub_5408(64, "2\n"); /*0x3fbf*/ + } + if ( v208[v44 + 1] != 1 ) /*0x3fcc*/ + { + v208[v44 + 1] = 1; /*0x3fd5*/ + v2 = 1; /*0x3fe2*/ + sub_5408(64, "3\n"); /*0x3fe5*/ + } + if ( v208[v44 + 127] != 32 ) /*0x3ff3*/ + { + v208[v44 + 127] = 32; /*0x3ffc*/ + v2 = 1; /*0x400a*/ + sub_5408(64, "4\n"); /*0x400d*/ + } + if ( v208[v44 + 253] == 32 ) /*0x401b*/ + goto LABEL_159; /*0x401b*/ + v208[v44 + 253] = 32; /*0x4021*/ + } + v2 = 1; /*0x40ef*/ + sub_5408(64, "5\n"); /*0x40f2*/ +LABEL_159: + if ( (unsigned __int64)++v44 >= 4 ) /*0x40fe*/ + goto LABEL_160; /*0x40fe*/ + } + } + sub_5408(64, "VMDEnabled[0] Disable\n"); /*0x3de4*/ + if ( v221 ) /*0x3df0*/ + { + v221 = 0; /*0x3df9*/ + v2 = 1; /*0x3e03*/ + sub_5408(64, "Hotplug\n"); /*0x3e06*/ + } + for ( kk = 1; kk < 5; ++kk ) /*0x3e17*/ + { + sub_5408(64, "Index = %x\n", kk); /*0x3e33*/ + if ( v206[kk + 11] != 1 ) /*0x3e40*/ + { + v206[kk + 11] = 1; /*0x3e45*/ + v2 = 1; /*0x3e52*/ + sub_5408(64, "1\n"); /*0x3e55*/ + } + if ( v206[kk + 95] != 1 ) /*0x3e62*/ + { + v206[kk + 95] = 1; /*0x3e67*/ + v2 = 1; /*0x3e74*/ + sub_5408(64, "2\n"); /*0x3e77*/ + } + if ( v208[kk] != 1 ) /*0x3e84*/ + { + v208[kk] = 1; /*0x3e8d*/ + v2 = 1; /*0x3e9a*/ + sub_5408(64, "3\n"); /*0x3e9d*/ + } + if ( v208[kk + 126] != 32 ) /*0x3eab*/ + { + v208[kk + 126] = 32; /*0x3eb4*/ + v2 = 1; /*0x3ec2*/ + sub_5408(64, "4\n"); /*0x3ec5*/ + } + if ( v208[kk + 252] != 32 ) /*0x3ed3*/ + { + v208[kk + 252] = 32; /*0x3edc*/ + v2 = 1; /*0x3eea*/ + sub_5408(64, "5\n"); /*0x3eed*/ + } + } +LABEL_160: + n22_2 = 22; /*0x4104*/ + if ( v214 ) /*0x4113*/ + { + sub_5408(64, "VMDEnabled[2] Enable\n"); /*0x4244*/ + if ( v222 != 1 ) /*0x4252*/ + { + v222 = 1; /*0x425b*/ + v2 = 1; /*0x4263*/ + sub_5408(64, "Hotplug\n"); /*0x4265*/ + } + n8 = 8; /*0x426a*/ + while ( 1 ) /*0x4288*/ + { + sub_5408(64, "Index = %x\n", n8); /*0x4288*/ + if ( *((_BYTE *)v217 + n8) ) /*0x4292*/ + { + sub_5408(64, "VMDPortEnable\n"); /*0x4362*/ + if ( v206[n8 + 12] ) /*0x4367*/ + { + v206[n8 + 12] = 0; /*0x4374*/ + v2 = 1; /*0x4381*/ + sub_5408(64, "1\n"); /*0x4384*/ + } + if ( v206[n8 + 96] ) /*0x4389*/ + { + v206[n8 + 96] = 0; /*0x4396*/ + v2 = 1; /*0x43a3*/ + sub_5408(64, "2\n"); /*0x43a6*/ + } + if ( v208[n8 + 1] ) /*0x43ab*/ + { + v208[n8 + 1] = 0; /*0x43bd*/ + v2 = 1; /*0x43cb*/ + sub_5408(64, "3\n"); /*0x43ce*/ + } + if ( v208[n8 + 127] ) /*0x43d3*/ + { + v208[n8 + 127] = 0; /*0x43e5*/ + v2 = 1; /*0x43f3*/ + sub_5408(64, "4\n"); /*0x43f6*/ + } + if ( !v208[n8 + 253] ) /*0x4404*/ + goto LABEL_201; /*0x4404*/ + v208[n8 + 253] = 0; /*0x4406*/ + } + else + { + sub_5408(64, "VMDPortDisble\n"); /*0x42a7*/ + if ( v206[n8 + 12] != 1 ) /*0x42b4*/ + { + v206[n8 + 12] = 1; /*0x42b9*/ + v2 = 1; /*0x42c6*/ + sub_5408(64, "1\n"); /*0x42c9*/ + } + if ( v206[n8 + 96] != 1 ) /*0x42d6*/ + { + v206[n8 + 96] = 1; /*0x42db*/ + v2 = 1; /*0x42e8*/ + sub_5408(64, "2\n"); /*0x42eb*/ + } + if ( v208[n8 + 1] != 1 ) /*0x42f8*/ + { + v208[n8 + 1] = 1; /*0x4301*/ + v2 = 1; /*0x430e*/ + sub_5408(64, "3\n"); /*0x4311*/ + } + if ( v208[n8 + 127] != 32 ) /*0x431f*/ + { + v208[n8 + 127] = 32; /*0x4328*/ + v2 = 1; /*0x4336*/ + sub_5408(64, "4\n"); /*0x4339*/ + } + if ( v208[n8 + 253] == 32 ) /*0x4347*/ + goto LABEL_201; /*0x4347*/ + v208[n8 + 253] = 32; /*0x434d*/ + } + v2 = 1; /*0x441b*/ + sub_5408(64, "5\n"); /*0x441e*/ +LABEL_201: + if ( (unsigned __int64)++n8 >= 0xA ) /*0x442e*/ + { + n22_2 = 22; /*0x4434*/ + goto LABEL_203; /*0x4434*/ + } + } + } + sub_5408(64, "VMDEnabled[2] Disable\n"); /*0x4123*/ + if ( v222 ) /*0x412f*/ + { + v222 = 0; /*0x4138*/ + v2 = 1; /*0x4142*/ + sub_5408(64, "Hotplug\n"); /*0x4145*/ + } + for ( mm = 9; mm < 0xB; ++mm ) /*0x414a*/ + { + sub_5408(64, "Index = %x\n", mm); /*0x4165*/ + if ( v206[mm + 11] != 1 ) /*0x4172*/ + { + v206[mm + 11] = 1; /*0x4177*/ + v2 = 1; /*0x4184*/ + sub_5408(64, "1\n"); /*0x4187*/ + } + if ( v206[mm + 95] != 1 ) /*0x4194*/ + { + v206[mm + 95] = 1; /*0x4199*/ + v2 = 1; /*0x41a6*/ + sub_5408(64, "2\n"); /*0x41a9*/ + } + if ( v208[mm] != 1 ) /*0x41b6*/ + { + v208[mm] = 1; /*0x41bf*/ + v2 = 1; /*0x41cc*/ + sub_5408(64, "3\n"); /*0x41cf*/ + } + if ( v208[mm + 126] != 32 ) /*0x41dd*/ + { + v208[mm + 126] = 32; /*0x41e6*/ + v2 = 1; /*0x41f4*/ + sub_5408(64, "4\n"); /*0x41f7*/ + } + if ( v208[mm + 252] != 32 ) /*0x4205*/ + { + v208[mm + 252] = 32; /*0x420e*/ + v2 = 1; /*0x421c*/ + sub_5408(64, "5\n"); /*0x421f*/ + } + } +LABEL_203: + n12 = 12; /*0x4438*/ + if ( v215 ) /*0x4449*/ + { + sub_5408(64, "VMDEnabled[3] Enable\n"); /*0x4577*/ + if ( v223 != 1 ) /*0x4589*/ + { + v223 = 1; /*0x4592*/ + v2 = 1; /*0x459d*/ + sub_5408(64, "Hotplug\n"); /*0x45a0*/ + } + while ( 1 ) /*0x45ba*/ + { + sub_5408(64, "Index = %x\n", n12); /*0x45ba*/ + if ( *((_BYTE *)v217 + n12) ) /*0x45c4*/ + { + sub_5408(64, "VMDPortEnable\n"); /*0x4696*/ + if ( v206[n12 + 21] ) /*0x469b*/ + { + v206[n12 + 21] = 0; /*0x46a8*/ + v2 = 1; /*0x46b5*/ + sub_5408(64, "1\n"); /*0x46b8*/ + } + if ( v206[n12 + 105] ) /*0x46bd*/ + { + v206[n12 + 105] = 0; /*0x46ca*/ + v2 = 1; /*0x46d7*/ + sub_5408(64, "2\n"); /*0x46da*/ + } + if ( v208[n12 + 10] ) /*0x46df*/ + { + v208[n12 + 10] = 0; /*0x46f0*/ + v2 = 1; /*0x46fd*/ + sub_5408(64, "3\n"); /*0x4700*/ + } + if ( v208[n12 + 136] ) /*0x4705*/ + { + v208[n12 + 136] = 0; /*0x4716*/ + v2 = 1; /*0x4723*/ + sub_5408(64, "4\n"); /*0x4726*/ + } + if ( !v208[n12 + 262] ) /*0x4733*/ + goto LABEL_242; /*0x4733*/ + v208[n12 + 262] = 0; /*0x4735*/ + } + else + { + sub_5408(64, "VMDPortDisble\n"); /*0x45d9*/ + if ( v206[n12 + 21] != 1 ) /*0x45e6*/ + { + v206[n12 + 21] = 1; /*0x45eb*/ + v2 = 1; /*0x45f8*/ + sub_5408(64, "1\n"); /*0x45fb*/ + } + if ( v206[n12 + 105] != 1 ) /*0x4608*/ + { + v206[n12 + 105] = 1; /*0x460d*/ + v2 = 1; /*0x461a*/ + sub_5408(64, "2\n"); /*0x461d*/ + } + if ( v208[n12 + 10] != 1 ) /*0x462b*/ + { + v208[n12 + 10] = 1; /*0x4634*/ + v2 = 1; /*0x4642*/ + sub_5408(64, "3\n"); /*0x4645*/ + } + if ( v208[n12 + 136] != 32 ) /*0x4653*/ + { + v208[n12 + 136] = 32; /*0x465c*/ + v2 = 1; /*0x466a*/ + sub_5408(64, "4\n"); /*0x466d*/ + } + if ( v208[n12 + 262] == 32 ) /*0x467b*/ + goto LABEL_242; /*0x467b*/ + v208[n12 + 262] = 32; /*0x4681*/ + } + v2 = 1; /*0x4749*/ + sub_5408(64, "5\n"); /*0x474c*/ +LABEL_242: + if ( (unsigned __int64)++n12 >= 0x10 ) /*0x4758*/ + goto LABEL_243; /*0x4758*/ + } + } + sub_5408(64, "VMDEnabled[3] Disable\n"); /*0x4456*/ + if ( v223 ) /*0x4467*/ + { + v223 = 0; /*0x4470*/ + v2 = 1; /*0x447a*/ + sub_5408(64, "Hotplug\n"); /*0x447d*/ + } + do /*0x455f*/ + { + sub_5408(64, "Index = %x\n", n22_2); /*0x4497*/ + if ( v206[n22_2 + 11] != 1 ) /*0x44a4*/ + { + v206[n22_2 + 11] = 1; /*0x44a9*/ + v2 = 1; /*0x44b6*/ + sub_5408(64, "1\n"); /*0x44b9*/ + } + if ( v206[n22_2 + 95] != 1 ) /*0x44c6*/ + { + v206[n22_2 + 95] = 1; /*0x44cb*/ + v2 = 1; /*0x44d8*/ + sub_5408(64, "2\n"); /*0x44db*/ + } + if ( v208[n22_2] != 1 ) /*0x44e9*/ + { + v208[n22_2] = 1; /*0x44f2*/ + v2 = 1; /*0x4500*/ + sub_5408(64, "3\n"); /*0x4503*/ + } + if ( v208[n22_2 + 126] != 32 ) /*0x4511*/ + { + v208[n22_2 + 126] = 32; /*0x451a*/ + v2 = 1; /*0x4528*/ + sub_5408(64, "4\n"); /*0x452b*/ + } + if ( v208[n22_2 + 252] != 32 ) /*0x4539*/ + { + v208[n22_2 + 252] = 32; /*0x4542*/ + v2 = 1; /*0x4550*/ + sub_5408(64, "5\n"); /*0x4553*/ + } + ++n22_2; /*0x4558*/ + } + while ( n22_2 < 0x1A ); /*0x455f*/ +LABEL_243: + n30 = 30; /*0x4760*/ + if ( v216 ) /*0x476d*/ + { + sub_5408(64, "VMDEnabled[5] Enable\n"); /*0x489a*/ + if ( v224 != 1 ) /*0x48a6*/ + { + v224 = 1; /*0x48af*/ + v2 = 1; /*0x48b9*/ + sub_5408(64, "Hotplug\n"); /*0x48bc*/ + } + n20 = 20; /*0x48c1*/ + while ( 1 ) /*0x48d3*/ + { + sub_5408(64, "Index = %x\n", n20); /*0x48d3*/ + if ( *((_BYTE *)v217 + n20) ) /*0x48db*/ + { + sub_5408(64, "VMDPortEnable\n"); /*0x49ab*/ + if ( v206[n20 + 21] ) /*0x49b0*/ + { + v206[n20 + 21] = 0; /*0x49bd*/ + v2 = 1; /*0x49c8*/ + sub_5408(64, "1\n"); /*0x49cb*/ + } + if ( v206[n20 + 105] ) /*0x49d0*/ + { + v206[n20 + 105] = 0; /*0x49dd*/ + v2 = 1; /*0x49e8*/ + sub_5408(64, "2\n"); /*0x49eb*/ + } + if ( v208[n20 + 10] ) /*0x49f0*/ + { + v208[n20 + 10] = 0; /*0x4a01*/ + v2 = 1; /*0x4a0c*/ + sub_5408(64, "3\n"); /*0x4a0f*/ + } + if ( v208[n20 + 136] ) /*0x4a14*/ + { + v208[n20 + 136] = 0; /*0x4a25*/ + v2 = 1; /*0x4a30*/ + sub_5408(64, "4\n"); /*0x4a33*/ + } + if ( !v208[n20 + 262] ) /*0x4a40*/ + goto LABEL_283; /*0x4a40*/ + v208[n20 + 262] = 0; /*0x4a42*/ + } + else + { + sub_5408(64, "VMDPortDisble\n"); /*0x48f0*/ + if ( v206[n20 + 21] != 1 ) /*0x48fd*/ + { + v206[n20 + 21] = 1; /*0x4902*/ + v2 = 1; /*0x490d*/ + sub_5408(64, "1\n"); /*0x4910*/ + } + if ( v206[n20 + 105] != 1 ) /*0x491d*/ + { + v206[n20 + 105] = 1; /*0x4922*/ + v2 = 1; /*0x492d*/ + sub_5408(64, "2\n"); /*0x4930*/ + } + if ( v208[n20 + 10] != 1 ) /*0x493e*/ + { + v208[n20 + 10] = 1; /*0x4947*/ + v2 = 1; /*0x4953*/ + sub_5408(64, "3\n"); /*0x4956*/ + } + if ( v208[n20 + 136] != 32 ) /*0x4968*/ + { + v208[n20 + 136] = 32; /*0x4971*/ + v2 = 1; /*0x497c*/ + sub_5408(64, "4\n"); /*0x497f*/ + } + if ( v208[n20 + 262] == 32 ) /*0x4991*/ + goto LABEL_283; /*0x4991*/ + v208[n20 + 262] = 32; /*0x4997*/ + } + v2 = 1; /*0x4a54*/ + sub_5408(64, "5\n"); /*0x4a57*/ +LABEL_283: + if ( (unsigned __int64)++n20 >= 0x18 ) /*0x4a63*/ + goto LABEL_284; /*0x4a63*/ + } + } + sub_5408(64, "VMDEnabled[5] Disable\n"); /*0x4781*/ + if ( v224 ) /*0x478d*/ + { + v224 = 0; /*0x4796*/ + v2 = 1; /*0x479f*/ + sub_5408(64, "Hotplug\n"); /*0x47a2*/ + } + do /*0x487c*/ + { + sub_5408(64, "Index = %x\n", n30); /*0x47b4*/ + if ( v206[n30 + 11] != 1 ) /*0x47c1*/ + { + v206[n30 + 11] = 1; /*0x47c6*/ + v2 = 1; /*0x47d1*/ + sub_5408(64, "1\n"); /*0x47d4*/ + } + if ( v206[n30 + 95] != 1 ) /*0x47e1*/ + { + v206[n30 + 95] = 1; /*0x47e6*/ + v2 = 1; /*0x47f1*/ + sub_5408(64, "2\n"); /*0x47f4*/ + } + if ( v208[n30] != 1 ) /*0x4802*/ + { + v208[n30] = 1; /*0x480b*/ + v2 = 1; /*0x4817*/ + sub_5408(64, "3\n"); /*0x481a*/ + } + if ( v208[n30 + 126] != 32 ) /*0x482d*/ + { + v208[n30 + 126] = 32; /*0x4836*/ + v2 = 1; /*0x4842*/ + sub_5408(64, "4\n"); /*0x4845*/ + } + if ( v208[n30 + 252] != 32 ) /*0x4858*/ + { + v208[n30 + 252] = 32; /*0x4861*/ + v2 = 1; /*0x486d*/ + sub_5408(64, "5\n"); /*0x4870*/ + } + ++n30; /*0x4875*/ + } + while ( n30 < 0x22 ); /*0x487c*/ +LABEL_284: + sub_5408(64, "(After sync) ValidFlag = %x\n", v2); /*0x4a69*/ + if ( v2 ) /*0x4a7e*/ + { + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x4aac*/ + L"SocketIioConfig", + &unk_7470, + v170, + 6668, + v206); + if ( (unsigned int)sub_5710() != 32 ) /*0x4abd*/ + { + __outbyte(0xCF9u, 0xEu); /*0x4aca*/ + v176 = 1; /*0x4acb*/ + while ( 1 ) /*0x4acf*/ + ; /*0x4acf*/ + } + return 0; /*0x4abd*/ + } + v54 = 0; /*0x4ae0*/ + for ( nn = 0; nn < 7; ++nn ) /*0x4ae3*/ + { + v56 = qword_7920; /*0x4aec*/ + if ( !qword_7920 ) /*0x4af6*/ + { + if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(::BootServices + 320))(&unk_7450, 0, &qword_7920) < 0 ) /*0x4b1c*/ + { + qword_7920 = 0; /*0x4b22*/ +LABEL_292: + sub_A6C(nn); /*0x4b29*/ + continue; /*0x4b2b*/ + } + v56 = qword_7920; /*0x4d9d*/ + } + v167[0] = nn; /*0x4da9*/ + n10_1 = 10; /*0x4dad*/ + LOBYTE(v53) = 17; /*0x4db1*/ + v167[1] = 0; /*0x4db9*/ + LOBYTE(v52) = 56; /*0x4dca*/ + LOBYTE(v156) = 2; /*0x4dd6*/ + if ( (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _BYTE *, int, char *, char *))(v56 + 16))( /*0x4df3*/ + v56, + v52, + 0, + v53, + v167, + v156, + v185, + &n10_1) < 0 + || v185[0] != 1 ) + { + goto LABEL_292; /*0x4df3*/ + } + v86 = qword_7920; /*0x4df9*/ + nn_1 = nn; /*0x4e00*/ + v276[0] = nn; /*0x4e02*/ + if ( qword_7920 ) /*0x4e0b*/ + goto LABEL_346; /*0x4e0b*/ + if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(::BootServices + 320))(&unk_7450, 0, &qword_7920) >= 0 ) /*0x4e2d*/ + { + v86 = qword_7920; /*0x4e3b*/ + nn_1 = v276[0]; /*0x4e42*/ +LABEL_346: + v168[0] = nn_1; /*0x4e48*/ + LOBYTE(v85) = 17; /*0x4e4c*/ + v168[1] = -1; /*0x4e54*/ + n10_2 = 10; /*0x4e59*/ + LOBYTE(v84) = 56; /*0x4e65*/ + LOBYTE(v156) = 2; /*0x4e7d*/ + if ( (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _BYTE *, int, char *, char *))(v86 + 16))( /*0x4e90*/ + v86, + v84, + 0, + v85, + v168, + v156, + &v288, + &n10_2) >= 0 ) + { + v277[256] = v288; /*0x4e9f*/ + v276[1] = v289; /*0x4eb6*/ + sub_6100(v277, v290, v289); /*0x4ebc*/ + } + goto LABEL_348; /*0x4ebc*/ + } + qword_7920 = 0; /*0x4e2f*/ +LABEL_348: + sub_121C(v276); /*0x4ec1*/ + sub_A6C(nn); /*0x4ecf*/ + v54 = 1; /*0x4ed4*/ + } + if ( v54 ) /*0x4b3c*/ + { + if ( (unsigned int)sub_5710() != 32 ) /*0x4b46*/ + { + __outbyte(0xCF9u, 0xEu); /*0x4b53*/ + v176 = 1; /*0x4b54*/ + while ( 1 ) /*0x4b58*/ + ; /*0x4b58*/ + } + return 0; /*0x4b46*/ + } + v57 = qword_7920; /*0x4b61*/ + if ( !qword_7920 ) /*0x4b6b*/ + { + if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(::BootServices + 320))(&unk_7450, 0, &qword_7920) < 0 ) /*0x4b91*/ + { + qword_7920 = 0; /*0x4b97*/ + goto LABEL_301; /*0x4b97*/ + } + v57 = qword_7920; /*0x4edc*/ + } + v186[0] = 0; /*0x4ee8*/ + LOBYTE(v53) = 44; /*0x4ef1*/ + v165 = 1; /*0x4ef8*/ + LOBYTE(v156) = 1; /*0x4f09*/ + LOBYTE(v52) = 46; /*0x4f13*/ + if ( (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, int, char *, char *))(v57 + 16))( /*0x4f1e*/ + v57, + v52, + 0, + v53, + v186, + v156, + v177, + &v165) < 0 ) +LABEL_301: + v58 = 0; /*0x4b9e*/ + else + v58 = v177[0] == 1; /*0x4f28*/ + sub_5408(64, "ModifyFlag %x\n", v58); /*0x4baf*/ + if ( v58 ) /*0x4bb9*/ + { + LOBYTE(n2_6) = 0; /*0x4bc6*/ + if ( sub_868(1, &n2_6, v60, v61) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4be0*/ + { + n2_23 = n2_6; /*0x4be2*/ + n2_6 = n2_6; /*0x4be8*/ + } + if ( sub_868(2, &n2_6, v62, v63) >= 0 ) /*0x4c00*/ + { + n2_7 = n2_8; /*0x4c09*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4c15*/ + n2_7 = n2_6; /*0x4c15*/ + n2_8 = n2_7; /*0x4c18*/ + } + if ( sub_868(3, &n2_6, v64, v65) >= 0 ) /*0x4c2f*/ + { + n2_9 = n2_10; /*0x4c38*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4c43*/ + n2_9 = (unsigned __int8)n2_6; /*0x4c43*/ + n2_10 = n2_9; /*0x4c47*/ + } + if ( sub_868(4, &n2_6, n2_9, v68) >= 0 ) /*0x4c5f*/ + { + n2_11 = n2_12; /*0x4c68*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4c74*/ + n2_11 = n2_6; /*0x4c74*/ + n2_12 = n2_11; /*0x4c77*/ + } + if ( sub_868(5, &n2_6, v69, v70) >= 0 ) /*0x4c8e*/ + { + n2_13 = BYTE1(n33686016); /*0x4c97*/ + if ( (unsigned __int8)n2_6 < 3u ) /*0x4ca1*/ + n2_13 = (unsigned __int8)n2_6; /*0x4ca1*/ + BYTE1(n33686016) = n2_13; /*0x4ca5*/ + } + if ( sub_868(6, &n2_6, n2_13, v73) >= 0 ) /*0x4cc0*/ + { + n257_5 = (unsigned __int8)n257; /*0x4cc9*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4cd4*/ + n257_5 = (unsigned __int8)n2_6; /*0x4cd4*/ + LOBYTE(n257) = n257_5; /*0x4cd8*/ + } + if ( sub_868(7, &n2_6, n257_5, v75) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4cfb*/ + { + n2_14 = n2_6; /*0x4cfd*/ + n2_2 = n2_6; /*0x4d03*/ + } + if ( sub_868(8, &n2_6, v76, v77) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4d25*/ + { + v254[2] = n2_6; /*0x4d27*/ + n2_3 = n2_6; /*0x4d2d*/ + } + if ( sub_868(11, &n2_6, v78, v79) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4d4f*/ + { + v254[1] = n2_6; /*0x4d51*/ + n2_4 = n2_6; /*0x4d57*/ + } + if ( sub_868(13, &n2_6, v80, v81) >= 0 && (unsigned __int8)n2_6 < 3u ) /*0x4d7d*/ + { + LOBYTE(n33686016) = n2_6; /*0x4d83*/ + if ( (_BYTE)n2_6 ) /*0x4d8b*/ + { + if ( (_BYTE)n2_6 == 1 ) /*0x4f33*/ + { + n2_1 = 0; /*0x4f35*/ + } + else + { + n2_15 = n2_1; /*0x4f3e*/ + if ( (_BYTE)n2_6 == 2 ) /*0x4f48*/ + n2_15 = 1; /*0x4f48*/ + n2_1 = n2_15; /*0x4f4c*/ + } + } + else + { + n2_1 = 2; /*0x4d91*/ + } + } + if ( sub_868(14, &n2_6, v82, v83) >= 0 ) /*0x4f63*/ + { + n257_6 = n257_2; /*0x4f6c*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4f74*/ + n257_6 = n2_6; /*0x4f74*/ + LOBYTE(n257_2) = n257_6; /*0x4f77*/ + } + if ( sub_868(15, &n2_6, v89, v90) >= 0 ) /*0x4f8c*/ + { + n2_16 = (unsigned __int8)n2_5; /*0x4f95*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4fa0*/ + n2_16 = (unsigned __int8)n2_6; /*0x4fa0*/ + n2_5 = n2_16; /*0x4fa4*/ + } + if ( sub_868(16, &n2_6, n2_16, v93) >= 0 ) /*0x4fbc*/ + { + n2_17 = v206[0]; /*0x4fc5*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4fd0*/ + n2_17 = (unsigned __int8)n2_6; /*0x4fd0*/ + v206[0] = n2_17; /*0x4fd4*/ + } + if ( sub_868(17, &n2_6, n2_17, v95) >= 0 ) /*0x4fec*/ + { + n2_18 = n2_19; /*0x4ff5*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x4fff*/ + n2_18 = n2_6; /*0x4fff*/ + n2_19 = n2_18; /*0x5002*/ + } + if ( sub_868(18, &n2_6, v96, v97) >= 0 ) /*0x5019*/ + { + n2_20 = n2_21; /*0x5022*/ + if ( (unsigned __int8)n2_6 < 2u ) /*0x502c*/ + n2_20 = n2_6; /*0x502c*/ + n2_21 = n2_20; /*0x502f*/ + } + if ( sub_868(254, &n2_6, v99, v100) >= 0 && (_BYTE)n2_6 == 1 ) /*0x5053*/ + { + if ( sub_868(9, &n2_6, v102, v103) >= 0 && (unsigned __int8)n2_6 < 5u ) /*0x507b*/ + { + n3_1 = n2_6; /*0x5081*/ + v105 = byte_7580; /*0x5087*/ + v104 = 13LL * (unsigned __int8)n2_6; /*0x5091*/ + n2_14 = byte_7580[v104 + 1]; /*0x509a*/ + n2_23 = byte_7580[v104 + 2]; /*0x50a5*/ + LOBYTE(n257) = byte_7580[v104 + 3]; /*0x50b0*/ + v250 = byte_7580[v104 + 4]; /*0x50bb*/ + v251 = byte_7580[v104 + 5]; /*0x50c6*/ + n3_3 = byte_7580[v104 + 6]; /*0x50d1*/ + v254[1] = byte_7580[v104 + 7]; /*0x50dc*/ + v256 = byte_7580[v104 + 8]; /*0x50e7*/ + v259 = byte_7580[v104 + 9]; /*0x50f2*/ + HIBYTE(v258) = byte_7580[v104 + 10]; /*0x50fd*/ + v254[2] = byte_7580[v104 + 11]; /*0x5108*/ + n2_19 = byte_7580[v104 + 12]; /*0x5113*/ + } + sub_90C(254, 0, v104, (__int64)v105); /*0x511d*/ + } + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x514c*/ + L"Setup", + &unk_7568, + v169, + n814, + &byte_7A20); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x5178*/ + L"SocketProcessorCoreConfig", + &unk_7410, + v173, + n301, + &v261); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x51a4*/ + L"SocketCommonRcConfig", + &unk_74B0, + v174, + n224, + v230); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x51d0*/ + L"SocketPowerManagementConfig", + &unk_7430, + v175, + n462, + v246); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, __int16 *))(RuntimeServices + 88))( /*0x51fc*/ + L"NetworkStackVar", + &unk_74C0, + v172, + 10, + &n257_2); + (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x522b*/ + L"SocketIioConfig", + &unk_7470, + v170, + 6668, + v206); + sub_90C(0, 0, v106, v107); /*0x5232*/ + if ( (unsigned int)sub_5710() != 32 ) /*0x523f*/ + { + __outbyte(0xCF9u, 0xEu); /*0x524c*/ + v176 = 1; /*0x524d*/ + while ( 1 ) /*0x5251*/ + ; /*0x5251*/ + } + } + else + { + LOBYTE(v59) = n2_23; /*0x525f*/ + sub_90C(1, v59, v60, v61); /*0x5265*/ + LOBYTE(v108) = n2_8; /*0x526a*/ + sub_90C(2, v108, v109, v110); /*0x5273*/ + LOBYTE(v111) = n2_10; /*0x5278*/ + sub_90C(3, v111, v112, v113); /*0x5280*/ + LOBYTE(v114) = n2_12; /*0x5285*/ + sub_90C(4, v114, v115, v116); /*0x528d*/ + LOBYTE(v117) = BYTE1(n33686016); /*0x5292*/ + sub_90C(5, v117, v118, v119); /*0x529a*/ + LOBYTE(v120) = n257; /*0x529f*/ + sub_90C(6, v120, v121, v122); /*0x52aa*/ + LOBYTE(v123) = n2_14; /*0x52af*/ + sub_90C(7, v123, v124, v125); /*0x52b7*/ + LOBYTE(v126) = v254[2]; /*0x52bc*/ + sub_90C(8, v126, v127, v128); /*0x52c4*/ + LOBYTE(v129) = n3_1; /*0x52c9*/ + sub_90C(9, v129, v130, v131); /*0x52d4*/ + LOBYTE(v132) = v254[1]; /*0x52d9*/ + sub_90C(11, v132, v133, v134); /*0x52e1*/ + LOBYTE(v135) = n33686016; /*0x52e6*/ + sub_90C(13, v135, v136, v137); /*0x52ee*/ + LOBYTE(v138) = n257_2; /*0x52f3*/ + sub_90C(14, v138, v139, v140); /*0x52f9*/ + LOBYTE(v141) = n2_5; /*0x52fe*/ + sub_90C(15, v141, v142, v143); /*0x5306*/ + LOBYTE(v144) = v206[0]; /*0x530b*/ + sub_90C(16, v144, v145, v146); /*0x5313*/ + LOBYTE(v147) = n2_19; /*0x5318*/ + sub_90C(17, v147, v148, v149); /*0x5320*/ + LOBYTE(v150) = n2_21; /*0x5325*/ + sub_90C(18, v150, v151, v152); /*0x532d*/ + sub_90C(254, 0, v153, v154); /*0x5336*/ + } + return 0; /*0x5345*/ +} diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadGpio.c b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadGpio.c new file mode 100644 index 0000000..947bac9 --- /dev/null +++ b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadGpio.c @@ -0,0 +1,209 @@ +unsigned __int64 __fastcall sub_5A28(unsigned int a1, __int64 a2, __int64 a3, char a4, int *a5) +{ + unsigned int v5; // ebx + unsigned __int64 v7; // rdi + __int64 v9; // rsi + _QWORD v10[5]; // [rsp+20h] [rbp-28h] BYREF + int v11; // [rsp+68h] [rbp+20h] BYREF + + LOBYTE(v11) = a4; /*0x5a32*/ + v5 = (unsigned __int16)a1; /*0x5a41*/ + v7 = BYTE2(a1); /*0x5a4a*/ + if ( !sub_5CFC(a1) ) + { + sub_5408( + 0x80000000LL, + "GPIO ERROR: Incorrect GpioPad define used on this chipset (Group=%d, Pad=%d)!\n", + (unsigned int)v7, + v5); + return 0x8000000000000003uLL; /*0x5a77*/ + } + v9 = sub_5C64(v10); /*0x5a86*/ + if ( v7 >= v10[0] ) + { + sub_5408(0x80000000LL, "GPIO ERROR: Group argument (%d) exceeds GPIO group range\n", (unsigned int)v7); + return 0x8000000000000002uLL; /*0x5ab1*/ + } + if ( v5 >= *(_DWORD *)(v9 + 60 * v7 + 56) ) + { + sub_5408(0x80000000LL, "GPIO ERROR: Pin number (%d) exceeds possible range for this group\n", v5); + return 0x8000000000000002uLL; /*0x5ac7*/ + } + sub_5B84(a1, &v11); /*0x5ad1*/ + if ( v11 ) + { + sub_5408(0x80000000LL, "GPIO ERROR: Accessing pad not owned by host (Group=%d, Pad=%d)!\n", (unsigned int)v7, v5); + return 0x8000000000000003uLL; /*0x5ae4*/ + } + *a5 = *(_DWORD *)((unsigned __int16)(*(_DWORD *)(v9 + 60 * v7 + 52) + 8 * v5) + | ((*(unsigned __int8 *)(v9 + 60 * v7) | 0xFD00LL) << 16)) + & 2; + return 0; /*0x5b1d*/ +} + +__int64 __fastcall sub_5B28(int a1, _DWORD *a2, int a3, int a4) +{ + __int64 v5; // rax + __int64 v6; // rdi + + v5 = sub_5A28(a1, (_DWORD)a2, a3, a4, (__int64)a2); /*0x5b3a*/ + v6 = v5; /*0x5b3f*/ + if ( v5 < 0 ) /*0x5b45*/ + { + sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v5); /*0x5b56*/ + sub_5450( + (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", + 935, + (__int64)"!EFI_ERROR (Status)"); + } + *a2 >>= 1; /*0x5b73*/ + return v6; /*0x5b7d*/ +} + +unsigned __int64 __fastcall sub_5B84(int a1, unsigned int *a2) +{ + unsigned int v2; // ebx + unsigned __int64 v3; // rdi + _DWORD *v5; // rax + __int64 n1389; // rdx + unsigned __int64 v8; // [rsp+40h] [rbp+18h] BYREF + + v2 = (unsigned __int16)a1; /*0x5b95*/ + v3 = BYTE2(a1); /*0x5ba0*/ + v5 = sub_5C64(&v8); /*0x5ba6*/ + if ( v3 >= v8 ) + { + sub_5408(0x80000000LL, "GPIO ERROR: Group argument (%d) exceeds GPIO group range\n", v3); + n1389 = 1389; /*0x5bcb*/ +LABEL_3: + sub_5450( + (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", + n1389, + (__int64)"((BOOLEAN)(0==1))"); + return 0x8000000000000002uLL; /*0x5bed*/ + } + if ( v2 >= v5[15 * (unsigned int)v3 + 14] ) + { + sub_5408(0x80000000LL, "GPIO ERROR: Pin number (%d) exceeds possible range for this group\n", v2); + n1389 = 1398; /*0x5c0d*/ + goto LABEL_3; /*0x5c12*/ + } + *a2 = (*(_DWORD *)(((LOBYTE(v5[15 * (unsigned int)v3]) | 0xFD00LL) << 16) + | (unsigned __int16)(LOWORD(v5[15 * (unsigned int)v3 + 1]) + 4 * (v2 >> 3))) + & (unsigned int)(3 << (4 * (v2 & 7)))) >> (4 * (v2 & 7)); + return 0; /*0x5c5b*/ +} + +void *__fastcall sub_5C64(_QWORD *a1) +{ + int n2; // ebx + __int64 v3; // rax + unsigned __int16 v4; // ax + + n2 = n2_7; /*0x5c6e*/ + if ( n2_7 == 2 ) + { + v3 = sub_55A4(); /*0x5c7c*/ + v4 = sub_5D3C(v3 + 2); /*0x5c85*/ + if ( ((v4 + 24128) & 0xFF70) != 0 ) + { + sub_5408(0x80000000LL, "Unsupported PCH SKU, LpcDeviceId: 0x%04x!\n", v4); + sub_5450( + (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmPchInfoLib\\PchInfoLib.c", + 290, + (__int64)"((BOOLEAN)(0==1))"); + } + else + { + n2 = 1; /*0x5cca*/ + } + n2_7 = n2; /*0x5ccf*/ + } + if ( n2 == 1 ) /*0x5cd8*/ + { + *a1 = 13; /*0x5cda*/ + return &unk_7600; /*0x5ce1*/ + } + else + { + *a1 = 0; /*0x5cea*/ + return 0; /*0x5cee*/ + } +} + +bool __fastcall sub_5CFC(int a1) +{ + int n2; // eax + + n2 = sub_5FBC(); /*0x5d04*/ + if ( n2 == 1 ) /*0x5d0c*/ + return (a1 & 0xFF000000) == 0x1000000; /*0x5d14*/ + if ( n2 != 2 ) /*0x5d23*/ + return 0; /*0x5d23*/ + return (a1 & 0xFF000000) == 0x2000000; /*0x5d35*/ +} + +__int64 __fastcall sub_5D3C(unsigned __int16 *a1) +{ + if ( ((unsigned __int8)a1 & 1) != 0 ) /*0x5d48*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseIoLibIntrinsic\\IoLib.c", 151, (__int64)"(Address & 1) == 0"); /*0x5d5d*/ + return *a1; /*0x5d65*/ +} + +__int64 __fastcall sub_5D6C(_WORD *a1) +{ + if ( ((unsigned __int8)a1 & 1) != 0 ) /*0x5d78*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseIoLibIntrinsic\\IoLib.c", 183, (__int64)"(Address & 1) == 0"); /*0x5d8d*/ + *a1 = 1280; /*0x5d97*/ + return 1280; /*0x5d9a*/ +} + +__int64 sub_5DA0() +{ + unsigned __int8 v0; // al + char n3; // al + char n3_1; // cl + __int64 result; // rax + + v0 = __inbyte(0x70u); /*0x5da5*/ + __outbyte(0x70u, v0 & 0x80 | 0x4B); /*0x5daa*/ + n3 = __inbyte(0x71u); /*0x5db0*/ + n3_1 = n3; /*0x5db1*/ + if ( (unsigned __int8)n3 > 3u ) /*0x5db8*/ + { + n3_1 = n3; /*0x5dba*/ + if ( !n3 ) /*0x5dc2*/ + n3_1 = MEMORY[0xFDAF0490] & 2 | 1; /*0x5dce*/ + } + if ( (unsigned __int8)(n3_1 - 1) > 0xFDu ) /*0x5dd8*/ + return 0; /*0x5deb*/ + result = 2147483718LL; /*0x5ddd*/ + if ( n3_1 == 1 ) /*0x5de7*/ + return 2147483652LL; /*0x5de7*/ + return result; /*0x5dea*/ +} + +__int64 sub_5DF0() +{ + __int64 result; // rax + __int64 v1; // rax + + result = qword_79F8; /*0x5df4*/ + if ( !qword_79F8 ) /*0x5dfe*/ + { + v1 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_7930 + 320))(&unk_73D0, 0, &qword_79F8); /*0x5e17*/ + if ( v1 < 0 ) /*0x5e20*/ + { + sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v1); /*0x5e31*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxePcdLib\\DxePcdLib.c", 78, (__int64)"!EFI_ERROR (Status)"); /*0x5e49*/ + } + result = qword_79F8; /*0x5e4e*/ + if ( !qword_79F8 ) /*0x5e58*/ + { + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxePcdLib\\DxePcdLib.c", 79, (__int64)"mPcd != ((void *) 0)"); /*0x5e6b*/ + return qword_79F8; /*0x5e70*/ + } + } + return result; /*0x5e77*/ +} + diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadHelpers.c b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadHelpers.c new file mode 100644 index 0000000..b2d12ae --- /dev/null +++ b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadHelpers.c @@ -0,0 +1,504 @@ +void *sub_2A0(void *buf, unsigned __int64 count, char value) +{ + memset(buf, value, count); /*0x2aa*/ + return buf; /*0x2af*/ +} + +void sub_300() +{ + _mm_pause(); /*0x300*/ +} + +unsigned __int64 sub_310() +{ + return __rdtsc(); /*0x319*/ +} + +void sub_320() +{ + _enable(); /*0x320*/ +} + +void sub_330() +{ + _disable(); /*0x330*/ +} + +unsigned __int64 sub_340() +{ + return __getcallerseflags(); /*0x342*/ +} + +char *__fastcall sub_350(char *dst, char *src, unsigned __int64 count) +{ + char *dst_2; // rax + unsigned __int64 count_1; // rcx + char *dst_1; // rdi + char *src_1; // rsi + + dst_2 = dst; /*0x360*/ + if ( src < dst && &src[count - 1] >= dst ) /*0x368*/ + { + src_1 = &src[count - 1]; /*0x380*/ + dst_1 = &dst[count - 1]; /*0x383*/ + } + else + { + count_1 = count; /*0x36a*/ + count &= 7u; /*0x36d*/ + count_1 >>= 3; /*0x374*/ + qmemcpy(dst, src, 8 * count_1); /*0x378*/ + src_1 = &src[8 * count_1]; /*0x378*/ + dst_1 = &dst[8 * count_1]; /*0x378*/ + } + qmemcpy(dst_1, src_1, count); /*0x38c*/ + return dst_2; /*0x38f*/ +} + +__int64 sub_5388() +{ + __int64 result; // rax + unsigned __int64 n0x10; // rbx + __int64 v2; // rax + __int64 v3; // rcx + + result = qword_7948; /*0x5392*/ + if ( !qword_7948 ) /*0x539e*/ + { + n0x10 = (*(__int64 (__fastcall **)(__int64))(qword_7930 + 24))(31); /*0x53b7*/ + (*(void (__fastcall **)(unsigned __int64))(qword_7930 + 32))(n0x10); /*0x53ba*/ + if ( n0x10 <= 0x10 ) /*0x53c1*/ + { + v2 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_7930 + 320))(&unk_73A0, 0, &qword_7948); /*0x53de*/ + v3 = qword_7948; /*0x53e4*/ + if ( v2 < 0 ) /*0x53ee*/ + v3 = 0; /*0x53ee*/ + qword_7948 = v3; /*0x53f2*/ + return v3; /*0x53f9*/ + } + else + { + return 0; /*0x53c3*/ + } + } + return result; /*0x5401*/ +} + +__int64 sub_5408(__int64 a1, const char *a2, ...) +{ + __int64 result; // rax + __int64 (__fastcall **v4)(__int64, const char *, __int64 *); // r10 + va_list va; // [rsp+40h] [rbp+18h] BYREF + + va_start(va, a2); + result = sub_5388(); /*0x541f*/ + if ( result ) /*0x542a*/ + { + result = sub_5DA0(); /*0x542c*/ + if ( ((unsigned int)result & (unsigned int)a1) != 0 ) /*0x5437*/ + return (*v4)(a1, a2, (__int64 *)va); /*0x5446*/ + } + return result; /*0x5449*/ +} + +__int64 __fastcall sub_5450(__int64 a1, __int64 a2, __int64 a3) +{ + __int64 result; // rax + + result = sub_5388(); /*0x5468*/ + if ( result ) /*0x5470*/ + return (*(__int64 (__fastcall **)(__int64, __int64, __int64))(result + 8))(a1, a2, a3); /*0x547b*/ + return result; /*0x5488*/ +} + +void *__fastcall sub_5490(char *p_n2, unsigned __int64 n256) +{ + if ( n256 - 1 > -1 - (__int64)p_n2 ) /*0x54ae*/ + sub_5450( /*0x54c3*/ + (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\SetMemWrapper.c", + 54, + (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)Buffer)"); + return sub_2A0(p_n2, n256, 0); /*0x54d6*/ +} + +unsigned __int64 __fastcall sub_54E0(__int64 a1, _QWORD *a2) +{ + __int64 v4; // rdi + __int64 v5; // rbx + __int64 i; // r14 + + if ( !a1 ) /*0x5502*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 97, (__int64)"TableGuid != ((void *) 0)"); /*0x5515*/ + if ( !a2 ) /*0x551d*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 98, (__int64)"Table != ((void *) 0)"); /*0x5530*/ + v4 = qword_7928; /*0x5535*/ + v5 = 0; /*0x553c*/ + *a2 = 0; /*0x553e*/ + if ( !*(_QWORD *)(v4 + 104) ) /*0x5542*/ + return 0x800000000000000EuLL; /*0x556b*/ + for ( i = 0; !(unsigned __int8)sub_5F54(a1, i + *(_QWORD *)(v4 + 112)); i += 24 ) /*0x5548*/ + { + if ( (unsigned __int64)++v5 >= *(_QWORD *)(v4 + 104) ) /*0x5569*/ + return 0x800000000000000EuLL; /*0x5569*/ + } + *a2 = *(_QWORD *)(*(_QWORD *)(v4 + 112) + 24 * v5 + 16); /*0x559f*/ + return 0; /*0x5589*/ +} + +__int64 sub_55A4() +{ + _DWORD v1[6]; // [rsp+20h] [rbp-18h] BYREF + + v1[3] = 0; /*0x55ab*/ + v1[1] = 0; /*0x55b3*/ + v1[2] = 512; /*0x55b7*/ + v1[0] = 1015808; /*0x55be*/ + return (*(__int64 (__fastcall **)(_DWORD *))(qword_7958 + 24))(v1); /*0x55cf*/ +} + +__int64 sub_55D4() +{ + __int64 result; // rax + signed __int64 v1; // rax + + result = qword_7960; /*0x55d8*/ + if ( !qword_7960 ) /*0x55e2*/ + { + v1 = sub_54E0((__int64)&unk_7480, &qword_7960); /*0x55f2*/ + if ( v1 < 0 ) /*0x55fa*/ + { + sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v1); /*0x560b*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxeHobLib\\HobLib.c", 54, (__int64)"!EFI_ERROR (Status)"); /*0x5623*/ + } + result = qword_7960; /*0x5628*/ + if ( !qword_7960 ) /*0x5632*/ + { + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxeHobLib\\HobLib.c", 55, (__int64)"mHobList != ((void *) 0)"); /*0x5645*/ + return qword_7960; /*0x564a*/ + } + } + return result; /*0x5651*/ +} + +__int64 __fastcall sub_5658(__int64 n1024064) +{ + if ( (n1024064 & 0xFFFFFFFFF0000000uLL) != 0 ) /*0x5668*/ + sub_5450( /*0x567d*/ + (__int64)"e:\\hs\\MdePkg\\Library\\SmmPciExpressLib\\PciExpressLib.c", + 118, + (__int64)"((Address) & ~0xfffffff) == 0"); + return n1024064 + qword_7968; /*0x568c*/ +} + +__int64 __fastcall sub_5694(unsigned __int64 a1) +{ + _BYTE *v1; // rdx + unsigned __int64 v2; // r9 + unsigned __int64 n8; // r10 + unsigned __int64 v4; // r8 + + v1 = &unk_75F0; /*0x5697*/ + v2 = a1 + 16; /*0x569e*/ + n8 = a1 & 7; /*0x56a2*/ + if ( (a1 & 7) != 0 && n8 == ((unsigned __int64)&unk_75F0 & 7) ) /*0x56b1*/ + { + v4 = 8 - n8; /*0x56b9*/ + if ( n8 != 8 ) /*0x56bc*/ + { + do /*0x56ce*/ + { + if ( *(_BYTE *)a1 != *v1 ) /*0x56c2*/ + break; /*0x56c2*/ + ++a1; /*0x56c4*/ + ++v1; /*0x56c7*/ + --v4; /*0x56ca*/ + } + while ( v4 ); /*0x56ce*/ + } + } + while ( a1 <= v2 - 8 && *(_QWORD *)a1 == *(_QWORD *)v1 ) /*0x56dc*/ + { + a1 += 8LL; /*0x56de*/ + v1 += 8; /*0x56e2*/ + } + while ( 1 ) /*0x56f9*/ + { + if ( a1 >= v2 ) /*0x56fc*/ + return 0; /*0x5700*/ + if ( *(_BYTE *)a1 != *v1 ) /*0x56f1*/ + break; /*0x56f1*/ + ++a1; /*0x56f3*/ + ++v1; /*0x56f6*/ + } + return *(char *)a1 - (char)*v1; /*0x5700*/ +} + +__int64 sub_5710() +{ + __int64 v0; // r11 + __int64 v1; // rbx + unsigned __int64 v2; // rdi + __int64 v3; // rax + + v0 = 0; /*0x5721*/ + v1 = *(_QWORD *)(SystemTable + 104); /*0x5724*/ + v2 = *(_QWORD *)(SystemTable + 112); /*0x5728*/ + if ( v1 ) /*0x572f*/ + { + while ( sub_5694(v2) ) /*0x573c*/ + { + v2 += 24LL; /*0x573e*/ + if ( !--v1 ) /*0x5746*/ + goto LABEL_4; /*0x5746*/ + } + v3 = *(_QWORD *)(v2 + 16); /*0x5762*/ + } + else + { +LABEL_4: + v3 = v0; /*0x5748*/ + } + if ( v3 ) /*0x574e*/ + LODWORD(v0) = *(_DWORD *)(v3 + 12); /*0x5750*/ + return (unsigned int)v0; /*0x575c*/ +} + +__int64 __fastcall sub_5768(_BYTE *a1, _BYTE *a2) +{ + __int64 result; // rax + int v5; // [rsp+30h] [rbp+8h] BYREF + + *a1 = 0; /*0x5775*/ + *a2 = 0; /*0x577b*/ + v5 = 1; /*0x5783*/ + sub_5B28(16842767, &v5); /*0x5790*/ + if ( !v5 ) /*0x579a*/ + *a1 = 1; /*0x579c*/ + result = sub_5B28(16842768, &v5); /*0x57a9*/ + if ( !v5 ) /*0x57b3*/ + *a2 = 1; /*0x57b5*/ + return result; /*0x57bd*/ +} + +__int64 __fastcall sub_5E7C(__int64 a1) +{ + if ( !a1 ) /*0x5e88*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\Unaligned.c", 192, (__int64)"Buffer != ((void *) 0)"); /*0x5e9d*/ + return *(_QWORD *)a1; /*0x5ea5*/ +} + +char *__fastcall sub_5EAC(__int64 a1, char *src, unsigned __int64 count) +{ + unsigned __int64 v6; // rbp + + if ( !count ) /*0x5ec9*/ + return dst; /*0x5ecb*/ + v6 = count - 1; /*0x5ee2*/ + if ( count - 1 > -1 - (__int64)dst ) /*0x5ee9*/ + sub_5450( /*0x5efe*/ + (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\CopyMemWrapper.c", + 56, + (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)DestinationBuffer)"); + if ( v6 > ~(unsigned __int64)src ) /*0x5f0c*/ + sub_5450( /*0x5f21*/ + (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\CopyMemWrapper.c", + 57, + (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)SourceBuffer)"); + if ( dst == src ) /*0x5f29*/ + return dst; /*0x5f2b*/ + else + return sub_350(dst, src, count); /*0x5f39*/ +} + +bool __fastcall sub_5F54(__int64 a1, __int64 a2) +{ + __int64 v4; // rsi + __int64 v5; // rbx + __int64 v6; // rdi + __int64 v7; // rax + + v4 = ((__int64 (*)(void))sub_5E7C)(); /*0x5f76*/ + v5 = sub_5E7C(a2); /*0x5f82*/ + v6 = sub_5E7C(a1 + 8); /*0x5f8e*/ + v7 = sub_5E7C(a2 + 8); /*0x5f91*/ + return v4 == v5 && v6 == v7; /*0x5fb5*/ +} + +__int64 sub_5FBC() +{ + __int64 n3_1; // rax + unsigned int n3; // ebx + __int64 v2; // rax + unsigned __int16 v3; // ax + int v4; // edx + int n335; // eax + + n3_1 = (unsigned int)n3_0; /*0x5fc2*/ + n3 = 3; /*0x5fc8*/ + if ( n3_0 == 3 ) + { + v2 = sub_55A4(); /*0x5fd1*/ + v3 = sub_5D3C(v2 + 2); /*0x5fda*/ + v4 = v3; /*0x5fdf*/ + if ( ((v3 + 24128) & 0xFF70) != 0 ) + { + if ( (unsigned __int16)(v3 + 25280) <= 8u && (n335 = 335, _bittest(&n335, v4 + 25280)) ) + { + n3 = 2; /*0x600a*/ + } + else + { + sub_5408(0x80000000LL, "Unsupported PCH SKU, LpcDeviceId: 0x%04x!\n", (unsigned __int16)v4); + sub_5450( /*0x6039*/ + (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmPchInfoLib\\PchInfoLib.c", + 252, + (__int64)"((BOOLEAN)(0==1))"); + } + } + else + { + n3 = 1; /*0x6040*/ + } + n3_0 = n3; /*0x6045*/ + return n3; /*0x604b*/ + } + return n3_1; /*0x604d*/ +} + +__int64 __fastcall sub_6060(unsigned int _RAX_1, _DWORD *a2, _DWORD *a3, _DWORD *a4, _DWORD *a5) +{ + __int64 result; // rax + + _RAX = _RAX_1; /*0x606f*/ + __asm { cpuid } /*0x6074*/ + if ( a2 ) /*0x6079*/ + *a2 = result; /*0x607b*/ + if ( a3 ) /*0x6081*/ + *a3 = _RBX; /*0x6083*/ + if ( a4 ) /*0x6089*/ + *a4 = _RCX; /*0x608b*/ + if ( a5 ) /*0x6091*/ + *a5 = _RDX; /*0x6093*/ + return result; /*0x6096*/ +} + +int *__fastcall sub_60A0(int *buf_1, int value_2, unsigned __int64 n4) +{ + int *buf; // rdi + int value_1; // eax + unsigned __int64 count; // rcx + __int16 value; // bx + int v7; // eax + __int64 v8; // rdx + char count_1; // dl + unsigned __int64 i; // rcx + + buf = buf_1; /*0x60a3*/ + value_1 = value_2; /*0x60a6*/ + count = n4; /*0x60a9*/ + BYTE1(value_1) = value_2; /*0x60ba*/ + value = value_1; /*0x60bc*/ + v7 = value_1 << 16; /*0x60bf*/ + LOWORD(v7) = value; /*0x60c3*/ + if ( n4 >= 4 ) /*0x60ca*/ + { + v8 = (unsigned __int8)buf & 3; /*0x60cf*/ + if ( ((unsigned __int8)buf & 3) != 0 ) /*0x60d3*/ + { + memset(buf, value, 4 - v8); /*0x60e2*/ + buf = (int *)((char *)buf + 4 - v8); /*0x60e2*/ + count = n4 - (4 - v8); /*0x60e4*/ + } + count_1 = count; /*0x60e7*/ + for ( i = count >> 2; i; --i ) /*0x60ea*/ + *buf++ = v7; /*0x60ee*/ + count = count_1 & 3; /*0x60f4*/ + } + memset(buf, value, count); /*0x60f7*/ + return buf_1; /*0x60fa*/ +} + +char *__fastcall sub_6100(char *dst_1, char *src, unsigned __int64 n8) +{ + char *dst; // rdi + unsigned __int64 count_2; // rcx + char v10; // dl + unsigned __int64 n8_1; // rax + unsigned __int64 count; // rax + __int64 count_1; // rbx + char count_3; // al + unsigned __int64 v15; // rcx + unsigned __int64 count_4; // rax + + __asm { pushf } /*0x6103*/ + dst = dst_1; /*0x6109*/ + count_2 = n8; /*0x610c*/ + v10 = 0; /*0x610f*/ + n8_1 = src - dst; /*0x6114*/ + if ( src < dst ) /*0x6117*/ + { + n8_1 = dst - src; /*0x611d*/ + if ( &src[n8] >= dst ) /*0x6123*/ + { + src += n8; /*0x6125*/ + dst += n8; /*0x6128*/ + v10 = 1; /*0x612c*/ + } + } + if ( n8 < 8 || n8_1 < 8 ) /*0x6139*/ + goto LABEL_19; /*0x6139*/ + count = (unsigned __int8)src & 7; /*0x6141*/ + count_1 = (unsigned __int8)dst & 7; /*0x6145*/ + if ( v10 ) /*0x614b*/ + { + --src; /*0x614d*/ + --dst; /*0x6150*/ + } + if ( count == count_1 && count ) /*0x615b*/ + { + if ( !v10 ) /*0x615f*/ + count = 8 - count; /*0x6164*/ + qmemcpy(dst, src, count); /*0x616d*/ + src += count; /*0x616d*/ + dst += count; /*0x616d*/ + count_2 = n8 - count; /*0x616f*/ + } + if ( v10 ) /*0x6174*/ + { + src -= 7; /*0x6176*/ + dst -= 7; /*0x617a*/ + } + count_3 = count_2; /*0x617e*/ + v15 = count_2 >> 3; /*0x6181*/ + qmemcpy(dst, src, 8 * v15); /*0x6185*/ + src += 8 * v15; /*0x6185*/ + dst += 8 * v15; /*0x6185*/ + count_4 = count_3 & 7; /*0x6188*/ + if ( count_4 ) /*0x618c*/ + { + if ( v10 ) /*0x6190*/ + { + src += 8; /*0x6192*/ + dst += 8; /*0x6196*/ + } + count_2 = count_4; /*0x619a*/ +LABEL_19: + if ( v10 ) /*0x619f*/ + { + --src; /*0x61a1*/ + --dst; /*0x61a4*/ + } + qmemcpy(dst, src, count_2); /*0x61a7*/ + } + __asm { popf } /*0x61a9*/ + return dst_1; /*0x61ac*/ +} + + + +unsigned __int32 __fastcall sub_5358(unsigned __int16 n1288) +{ + if ( (n1288 & 3) != 0 ) /*0x5364*/ + sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseIoLibIntrinsic\\IoLibMsc.c", 193, (__int64)"(Port & 3) == 0"); /*0x5379*/ + return __indword(n1288); /*0x5382*/ +} diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadVmdNvme.c b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadVmdNvme.c new file mode 100644 index 0000000..648243b --- /dev/null +++ b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/SetupDefaultLoadVmdNvme.c @@ -0,0 +1,666 @@ +char sub_1914(char n7, char a2, char a3, char a4, char a5, char a6, char a7) +{ + char result; // al + __int64 v9; // rdx + + result = 0; /*0x1919*/ + switch ( n7 ) /*0x1926*/ + { + case 0: /*0x1926*/ + if ( !a4 ) /*0x19c6*/ + return result; /*0x19c6*/ + result = byte_7530; /*0x19c8*/ + goto LABEL_25; /*0x19c8*/ + case 1: /*0x1926*/ + if ( !a4 ) /*0x19b9*/ + return result; /*0x19b9*/ + result = byte_7535; /*0x19bb*/ + goto LABEL_25; /*0x19c1*/ + case 2: /*0x1926*/ + if ( !a5 ) /*0x19ac*/ + return result; /*0x19ac*/ + result = byte_753A; /*0x19ae*/ + goto LABEL_25; /*0x19b4*/ + case 3: /*0x1926*/ + if ( !a5 ) /*0x199e*/ + return result; /*0x199e*/ + result = byte_753F; /*0x19a0*/ + goto LABEL_25; /*0x19a6*/ + case 4: /*0x1926*/ + if ( !a6 ) /*0x1990*/ + return result; /*0x1990*/ + result = byte_7558; /*0x1992*/ + goto LABEL_25; /*0x1998*/ + case 5: /*0x1926*/ + if ( !a6 ) /*0x1982*/ + return result; /*0x1982*/ + result = byte_755D; /*0x1984*/ + goto LABEL_25; /*0x198a*/ + case 6: /*0x1926*/ + if ( !a7 ) /*0x1974*/ + return result; /*0x1974*/ + result = byte_7562; /*0x1976*/ + goto LABEL_25; /*0x197c*/ + } + if ( n7 == 7 && a7 ) /*0x1962*/ + { + result = byte_7567; /*0x1968*/ +LABEL_25: + v9 = (unsigned __int8)byte_7D91; /*0x19ce*/ + byte_7D60[2 * (unsigned __int8)byte_7D91 + 1] = a3 + n7 - a2; /*0x19e2*/ + byte_7D60[2 * v9 + 2] = result; /*0x19e7*/ + byte_7D91 = v9 + 1; /*0x19ee*/ + } + return result; /*0x19f9*/ +} + +char __fastcall sub_19FC(unsigned __int8 a1, char a2, char a3, __int64 a4, char a5, char a6, char a7) +{ + char result; // al + int v10; // ecx + int v11; // ecx + __int64 v12; // rdx + + result = 0; /*0x1a00*/ + if ( a1 ) /*0x1a0b*/ + { + v10 = a1 - 1; /*0x1a0d*/ + if ( v10 ) /*0x1a10*/ + { + v11 = v10 - 1; /*0x1a12*/ + if ( v11 ) /*0x1a15*/ + { + if ( v11 != 1 ) /*0x1a1a*/ + return result; /*0x1a1a*/ + if ( a7 == 1 ) /*0x1a24*/ + { + if ( !a6 ) /*0x1a2a*/ + return result; /*0x1a2a*/ + result = byte_7521; /*0x1a2c*/ + } + else + { + if ( !a6 ) /*0x1a38*/ + return result; /*0x1a38*/ + result = byte_7503; /*0x1a3a*/ + } + } + else if ( a7 == 1 ) /*0x1a47*/ + { + if ( !a6 ) /*0x1a4d*/ + return result; /*0x1a4d*/ + result = byte_751C; /*0x1a4f*/ + } + else + { + if ( !a6 ) /*0x1a5b*/ + return result; /*0x1a5b*/ + result = byte_74FE; /*0x1a5d*/ + } + } + else + { + if ( !a5 ) /*0x1a69*/ + return result; /*0x1a69*/ + result = byte_74F9; /*0x1a6b*/ + } + } + else + { + if ( !a5 ) /*0x1a77*/ + return result; /*0x1a77*/ + result = byte_74F4; /*0x1a79*/ + } + v12 = (unsigned __int8)byte_7D91; /*0x1a7f*/ + byte_7D60[2 * (unsigned __int8)byte_7D91 + 1] = a3 + a1 - a2; /*0x1a93*/ + byte_7D60[2 * v12 + 2] = result; /*0x1a98*/ + byte_7D91 = v12 + 1; /*0x1a9f*/ + return result; /*0x1aa5*/ +} + +__int64 __fastcall sub_1AA8(int a1) +{ + unsigned __int8 v1; // si + __int64 v2; // rdx + __int64 v3; // rcx + __int64 v4; // r8 + __int64 v5; // r9 + unsigned __int8 v6; // r12 + unsigned __int8 v7; // r15 + bool v8; // zf + unsigned __int8 v9; // r13 + char n8; // di + char n4; // bl + __int64 v12; // r9 + char n7; // cl + char v14; // cl + unsigned __int8 n4_1; // r11 + char v16; // r14 + char v17; // si + char v18; // r11 + unsigned __int8 n4_2; // r11 + char v20; // r12 + char v21; // di + char v22; // r11 + char n8_2; // cl + char v24; // cl + char v25; // r14 + char v26; // si + char v27; // r11 + __int64 result; // rax + unsigned __int8 v29; // [rsp+40h] [rbp-18h] + unsigned __int8 v30; // [rsp+41h] [rbp-17h] + unsigned __int8 v31; // [rsp+42h] [rbp-16h] + unsigned __int8 n4_3; // [rsp+43h] [rbp-15h] BYREF + _DWORD v33[5]; // [rsp+44h] [rbp-14h] BYREF + int v34; // [rsp+A0h] [rbp+48h] BYREF + unsigned __int8 v35; // [rsp+A8h] [rbp+50h] BYREF + unsigned __int8 n8_1; // [rsp+B0h] [rbp+58h] BYREF + char v37; // [rsp+B8h] [rbp+60h] BYREF + + v1 = 0; /*0x1abc*/ + v37 = -1; /*0x1abe*/ + n8_1 = 0; /*0x1ac6*/ + n4_3 = 0; /*0x1ace*/ + LOBYTE(v34) = -1; /*0x1adf*/ + if ( sub_57C4(a1, (unsigned int)&n8_1, (unsigned int)&v37, (unsigned int)&n4_3, (__int64)&v34) < 0 ) + return sub_5408( + 0x80000000LL, + "[OemCollectNvmeVmdSlotInfo]: Get BP type failed!! Skip update the NVME slot info in VMD menu! \n"); + v6 = v37; /*0x1af1*/ + v7 = v34; /*0x1af5*/ + if ( v37 == -1 && (_BYTE)v34 == 0xFF ) + return sub_5408( + 0x80000000LL, + "[OemCollectNvmeVmdSlotInfo]: Get BP type failed!! Skip update the NVME slot info in VMD menu! \n"); + sub_7CC(v3, v2, v4, v5); /*0x1b08*/ + v34 = 0; /*0x1b11*/ + sub_5B28(16973832, &v34); /*0x1b19*/ + v8 = v34 == 0; /*0x1b1e*/ + v34 = 0; /*0x1b2a*/ + v29 = v8; /*0x1b2d*/ + sub_5B28(16973833, &v34); /*0x1b31*/ + v8 = v34 == 0; /*0x1b36*/ + v34 = 0; /*0x1b42*/ + v30 = v8; /*0x1b45*/ + sub_5B28(16973834, &v34); /*0x1b49*/ + v8 = v34 == 0; /*0x1b4e*/ + v34 = 0; /*0x1b5a*/ + v31 = v8; /*0x1b5d*/ + sub_5B28(16973835, &v34); /*0x1b61*/ + v9 = v34 == 0; /*0x1b71*/ + sub_5768(&v34, &v35); /*0x1b75*/ + n8 = n8_1; /*0x1b7a*/ + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: OnBoardNvmeBaseIndexNumber = %x\n", n8_1); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: OnBoardNvmeBaseSlotNumber = %x\n", v6); + n4 = n4_3; /*0x1ba9*/ + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: RiserNvmeBaseIndexNumber = %x\n", n4_3); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: RiserNvmeBaseSlotNumber = %x\n", v7); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME67Present = %x\n", v9); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME45Present = %x\n", v31); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME23Present = %x\n", v30); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME01Present = %x\n", v29); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: FirstInterPoserCardInstall = %x\n", (unsigned __int8)v34); + sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: SecondInterPoserCardInstallx = %x\n", v35); + byte_7D91 = 0; /*0x1c4d*/ + sub_5B28(17170432, v33); /*0x1c59*/ + if ( v33[0] == 1 ) /*0x1c62*/ + { + if ( v9 ) /*0x1c6b*/ + { + n7 = n8; /*0x1c6d*/ + if ( (unsigned __int8)n8 >= 8u ) /*0x1c74*/ + goto LABEL_25; /*0x1c74*/ + do /*0x1ca6*/ + { + sub_1914(n7, n8, v6, v29, v30, v31, v9); /*0x1c9c*/ + n7 = v14 + 1; /*0x1ca1*/ + } + while ( (unsigned __int8)n7 < 8u ); /*0x1ca6*/ + } + else + { + n4_1 = n4; /*0x1cad*/ + if ( (unsigned __int8)n4 >= 4u ) /*0x1cb3*/ + goto LABEL_25; /*0x1cb3*/ + v16 = v34; /*0x1cb9*/ + v17 = v35; /*0x1cbd*/ + do /*0x1ce4*/ + { + sub_19FC(n4_1, n4, v7, v12, v16, v17, 1); /*0x1cd8*/ + n4_1 = v18 + 1; /*0x1cdd*/ + } + while ( n4_1 < 4u ); /*0x1ce4*/ + } + } + return 0; +} + + + +char sub_101C() +{ + __int64 v0; // rax + __int64 v1; // r8 + _BYTE *v2; // rdx + unsigned __int16 v3; // ax + __int64 v4; // rdx + __int64 v5; // r9 + unsigned __int8 i; // bl + __int64 v7; // r9 + __int64 v8; // rdx + int v10; // [rsp+28h] [rbp-D8h] + _BYTE v11[6688]; // [rsp+40h] [rbp-C0h] BYREF + char n2; // [rsp+1A70h] [rbp+1970h] BYREF + unsigned __int16 v13; // [rsp+1A78h] [rbp+1978h] BYREF + __int16 v14; // [rsp+1A80h] [rbp+1980h] BYREF + __int64 n6668; // [rsp+1A88h] [rbp+1988h] BYREF + + if ( qword_7920 /*0x1058*/ + || (v0 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920), + v0 >= 0) ) + { + n6668 = 6668; /*0x106c*/ + v0 = (*(__int64 (__fastcall **)(const __int16 *, void *, _QWORD, __int64 *, _BYTE *))(qword_79C0 + 72))( /*0x109b*/ + L"SocketIioConfig", + &unk_7470, + 0, + &n6668, + v11); + if ( v0 >= 0 ) /*0x10a1*/ + { + sub_1AA8(); /*0x10a7*/ + v13 = 0; /*0x10ac*/ + n6668 = 49; /*0x10bb*/ + if ( byte_7D91 && byte_7D60 ) /*0x10d0*/ + { + v1 = (unsigned __int8)byte_7D60; /*0x10d2*/ + v2 = &unk_7D61; /*0x10d6*/ + v3 = v13; /*0x10dd*/ + do /*0x1126*/ + { + if ( v2[1] <= 0x17u /*0x110e*/ + && *v2 <= 0xBu + && v11[((unsigned __int64)(unsigned __int8)v2[1] >> 2) + 4266] == 1 + && v11[(unsigned __int8)v2[1] + 4278] == 1 ) + { + v3 |= 1 << (*v2 & 0xF); /*0x1113*/ + v13 = v3; /*0x1117*/ + } + v2 += 2; /*0x111e*/ + --v1; /*0x1122*/ + } + while ( v1 ); /*0x1126*/ + } + else + { + v3 = v13; /*0x112a*/ + } + sub_5408(64, "SendVmdCommandToBp %x to BMC\ +", v3); /*0x1141*/ + for ( i = 0; i < 0xAu; ++i ) /*0x1146*/ + { + n2 = 0; /*0x114f*/ + LOBYTE(v5) = 96; /*0x115b*/ + LOBYTE(v10) = 2; /*0x116b*/ + LOBYTE(v4) = 46; /*0x1178*/ + v0 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, unsigned __int16 *, int, _QWORD, char *))(qword_7920 + 16))( /*0x1184*/ + qword_7920, + v4, + 0, + v5, + &v13, + v10, + 0, + &n2); + if ( v0 >= 0 ) /*0x118a*/ + { + (*(void (__fastcall **)(__int64))(qword_79B8 + 248))(5000); /*0x1198*/ + v14 = 0; /*0x119e*/ + LOBYTE(v7) = 97; /*0x11b2*/ + n2 = 2; /*0x11bc*/ + LOBYTE(v8) = 46; /*0x11d2*/ + LOBYTE(v10) = 0; /*0x11d4*/ + v0 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _QWORD, int, __int16 *, char *))(qword_7920 + 16))( /*0x11e2*/ + qword_7920, + v8, + 0, + v7, + 0, + v10, + &v14, + &n2); + if ( v0 < 0 ) /*0x11e8*/ + break; /*0x11e8*/ + LOBYTE(v0) = v13; /*0x11ea*/ + if ( (_BYTE)v14 == (_BYTE)v13 ) /*0x11f6*/ + { + LOBYTE(v0) = HIBYTE(v13); /*0x11f8*/ + if ( HIBYTE(v14) == HIBYTE(v13) ) /*0x1204*/ + break; /*0x1204*/ + } + } + } + } + } + else + { + qword_7920 = 0; /*0x105a*/ + } + return v0; /*0x1211*/ +} + + +__int64 __fastcall sub_A6C(unsigned __int8 a1) +{ + int v1; // ebx + __int64 v2; // rdx + __int64 n4; // r8 + __int64 v4; // r9 + __int64 v5; // rdi + __int64 v6; // rsi + __int64 v7; // rbx + char n2_4; // al + __int64 v9; // rax + char n2_2; // cl + char n2_1; // al + __int64 v12; // rax + char v13; // cl + __int64 v14; // rax + char v15; // dl + unsigned __int8 v17; // [rsp+30h] [rbp-D0h] BYREF + char n8; // [rsp+31h] [rbp-CFh] + char n2; // [rsp+32h] [rbp-CEh] BYREF + char v20; // [rsp+33h] [rbp-CDh] + char v21; // [rsp+34h] [rbp-CCh] + char n2_3; // [rsp+35h] [rbp-CBh] + char v23; // [rsp+36h] [rbp-CAh] + char v24; // [rsp+37h] [rbp-C9h] + char v25; // [rsp+38h] [rbp-C8h] + char v26; // [rsp+39h] [rbp-C7h] + _BYTE v27[72]; // [rsp+140h] [rbp+40h] BYREF + char n15; // [rsp+188h] [rbp+88h] + _BYTE v29[11]; // [rsp+310h] [rbp+210h] BYREF + char n3; // [rsp+31Bh] [rbp+21Bh] + _BYTE v31[52]; // [rsp+3F0h] [rbp+2F0h] BYREF + char n7; // [rsp+424h] [rbp+324h] + char v33; // [rsp+426h] [rbp+326h] + char v34; // [rsp+428h] [rbp+328h] + char v35; // [rsp+42Ah] [rbp+32Ah] + char v36; // [rsp+42Ch] [rbp+32Ch] + char v37; // [rsp+42Eh] [rbp+32Eh] + char v38; // [rsp+430h] [rbp+330h] + char n2_5; // [rsp+477h] [rbp+377h] + char v40; // [rsp+50Ah] [rbp+40Ah] + _BYTE v41[304]; // [rsp+720h] [rbp+620h] BYREF + _BYTE v42[352]; // [rsp+850h] [rbp+750h] BYREF + _BYTE v43[528]; // [rsp+9B0h] [rbp+8B0h] BYREF + _BYTE v44[1504]; // [rsp+BC0h] [rbp+AC0h] BYREF + char v45[6688]; // [rsp+11A0h] [rbp+10A0h] BYREF + char v46; // [rsp+2BD0h] [rbp+2AD0h] BYREF + __int64 n301; // [rsp+2BD8h] [rbp+2AD8h] BYREF + + n301 = 0; /*0xa83*/ + v1 = a1; /*0xa90*/ + v17 = a1; /*0xa98*/ + n8 = 0; /*0xa9c*/ + sub_5490(&n2, 256); /*0xaa1*/ + v5 = 0; /*0xaa6*/ + v6 = 0; /*0xaa8*/ + if ( !(_BYTE)v1 ) /*0xaae*/ + { + n8 = 8; /*0xf22*/ + n301 = 301; /*0xf48*/ + v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xf5d*/ + L"SocketProcessorCoreConfig", + &unk_7410, + &v46, + &n301, + v41); + if ( v7 >= 0 ) /*0xf63*/ + { + n2 = v41[5] == 0; /*0xf72*/ + v20 = v41[7]; /*0xf77*/ + } + n301 = 462; /*0xf7f*/ + v6 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xfb5*/ + L"SocketPowerManagementConfig", + &unk_7430, + &v46, + &n301, + v27); + if ( v6 >= 0 ) /*0xfbb*/ + { + v21 = v27[4]; /*0xfc0*/ + n2_3 = v27[24]; /*0xfc7*/ + v23 = v27[46]; /*0xfce*/ + v24 = v27[49]; /*0xfd5*/ + v25 = v27[48]; /*0xfdc*/ + v26 = v27[63]; /*0xfe3*/ + } + goto LABEL_53; /*0xfe3*/ + } + switch ( v1 ) + { + case 1: + n8 = 5; /*0xde5*/ + n301 = 341; /*0xe0b*/ + v12 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xe1d*/ + L"SocketMpLinkConfig", + &unk_74A0, + &v46, + &n301, + v42); + v13 = v20; /*0xe20*/ + v7 = v12; /*0xe2c*/ + n301 = 514; /*0xe2f*/ + if ( v12 >= 0 ) /*0xe52*/ + v13 = v42[21]; /*0xe52*/ + v20 = v13; /*0xe68*/ + v14 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xe73*/ + L"SocketMemoryConfig", + &unk_73E0, + &v46, + &n301, + v43); + v15 = v23; /*0xe76*/ + v6 = v14; /*0xe9a*/ + n301 = 224; /*0xe9d*/ + if ( v14 >= 0 ) /*0xea8*/ + v15 = v43[168]; /*0xea8*/ + v23 = v15; /*0xeb2*/ + v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xecd*/ + L"SocketCommonRcConfig", + &unk_74B0, + &v46, + &n301, + v29); + if ( v5 >= 0 ) + { + n2 = v29[9]; /*0xee4*/ + if ( n3 == 3 ) + v21 = 1; /*0xef2*/ + else + v21 = n3 != 0 ? v21 : 0; + n2_3 = v29[10]; /*0xf07*/ + n301 = 224; /*0xf0b*/ + } + goto LABEL_53; /*0xf16*/ + case 2: + n8 = 2; /*0xd06*/ + n301 = 462; /*0xd2c*/ + v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xd41*/ + L"SocketPowerManagementConfig", + &unk_7430, + &v46, + &n301, + v27); + if ( v5 >= 0 ) /*0xd47*/ + { + if ( n15 ) /*0xd51*/ + { + if ( n15 == 7 ) /*0xd5d*/ + { + n2 = 1; /*0xd5f*/ + } + else if ( n15 == 8 ) /*0xd69*/ + { + n2 = 2; /*0xd6b*/ + } + else + { + n2_1 = n2; /*0xd72*/ + if ( n15 == 15 ) /*0xd7f*/ + n2_1 = 3; /*0xd7f*/ + n2 = n2_1; /*0xd82*/ + } + } + else + { + n2 = 0; /*0xd53*/ + } + } + n301 = 814; /*0xd8d*/ + v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xdc3*/ + L"Setup", + &unk_7568, + &v46, + &n301, + v31); + if ( v7 < 0 ) /*0xdc9*/ + return v5; /*0xdc9*/ + v20 = v40; /*0xdd5*/ + goto LABEL_53; /*0xdd9*/ + case 3: + n8 = 5; /*0xc38*/ + n301 = 6668; /*0xc5e*/ + v9 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, char *))(qword_7940 + 72))( /*0xc70*/ + L"SocketIioConfig", + &unk_7470, + &v46, + &n301, + v45); + n2_2 = n2; /*0xc73*/ + v5 = v9; /*0xc7f*/ + n301 = 1495; /*0xc82*/ + if ( v9 >= 0 ) /*0xca5*/ + n2_2 = v45[0]; /*0xca5*/ + n2 = n2_2; /*0xcbb*/ + v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xcc9*/ + L"PchRcConfiguration", + &unk_73B0, + &v46, + &n301, + v44); + if ( v7 < 0 ) /*0xccf*/ + return v5; /*0xccf*/ + v20 = v44[196]; /*0xcdb*/ + v21 = v44[197]; /*0xce5*/ + n2_3 = v44[82]; /*0xcef*/ + v23 = v44[83]; /*0xcf9*/ + goto LABEL_53; /*0xcfd*/ + case 4: + n8 = 0; /*0xc27*/ + return sub_9A4((char *)&v17, v2, n4, v4); /*0x1000*/ + case 5: + n8 = 8; /*0xb49*/ + n301 = 814; /*0xb6f*/ + v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xb84*/ + L"Setup", + &unk_7568, + &v46, + &n301, + v31); + if ( v5 < 0 ) /*0xb8a*/ + return v5; /*0xb8a*/ + LOBYTE(v2) = n7; /*0xb96*/ + v20 = v37; /*0xb9c*/ + v21 = v38; /*0xba6*/ + v23 = v36; /*0xbb0*/ + v24 = v33 - 7; /*0xbbd*/ + v25 = v34 - 1; /*0xbc9*/ + if ( n7 == 3 ) /*0xbd4*/ + { + n2_3 = 0; /*0xbd6*/ + } + else + { + n4 = 4; /*0xbdd*/ + switch ( n7 ) /*0xbe6*/ + { + case 4: /*0xbe6*/ + n2_3 = 1; /*0xbe8*/ + break; + case 5: /*0xbe6*/ + n2_3 = 2; /*0xbf4*/ + break; + case 6: /*0xbe6*/ + n2_3 = 3; /*0xc00*/ + break; + default: + n2_4 = n2_3; /*0xc06*/ + if ( n7 == 7 ) /*0xc0e*/ + n2_4 = 4; /*0xc0e*/ + n2_3 = n2_4; /*0xc12*/ + break; + } + } + v26 = v35 != 1; /*0xc1d*/ + break; + case 6: + n8 = 1; /*0xaed*/ + n301 = 814; /*0xb12*/ + v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xb27*/ + L"Setup", + &unk_7568, + &v46, + &n301, + v31); + if ( v7 < 0 ) /*0xb2d*/ + return v5; /*0xb2d*/ + n2 = n2_5; /*0xb39*/ +LABEL_53: + if ( v7 < 0 || v6 < 0 ) /*0xfef*/ + return v5; /*0xfef*/ + break; + } + if ( v5 >= 0 ) /*0xff4*/ + return sub_9A4((char *)&v17, v2, n4, v4); /*0xff4*/ + return v5; /*0x100e*/ +} + + +unsigned __int64 __fastcall sub_121C(unsigned __int8 *a1) +{ + __int64 v1; // rdx + int v4; // ecx + int v5; // ecx + int v6; // ecx + int v7; // ecx + int v8; // ecx + unsigned __int8 n2; // cl + char n2_3; // al + __int64 n301_1; // r9 + _BYTE *v12; // rax + void *v13; // rdx + const __int16 *SocketProcessorCoreConfig; // rcx + unsigned __int8 n4_2; // cl + char n4_1; // al + unsigned __int8 v17; // al + __int64 n301; // rdi + unsigned __int8 n3_1; // cl + char n7_1; // al + unsigned __int8 v21; // al + bool v22; // zf + _BYTE v23[72]; // [rsp+30h] [rbp-D0h] BYREF + char n7; // [rsp+78h] [rbp-88h] + _BYTE v25[11]; // [rsp+200h] [rbp+100h] BYREF + char n3; // [rsp+20Bh] [rbp+10Bh] + _BYTE v27[52]; // [rsp+2E0h] [rbp+1E0h] BYREF + char n4; // [rsp+314h] [rbp+214h] + char v29; // [rsp+316h] [rbp+216h] + char v30; // [rsp+318h] [rbp+218h] + char v31; // [rsp+31Ah] [rbp+21Ah] + unsigned __int8 v32; // [rsp+31Ch] [rbp+21Ch] + unsigned __int8 v33; // [rsp+31Eh] [rbp+21Eh] + unsigned __int8 v... [10043 chars total] diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_101C.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_101C.txt deleted file mode 100644 index 82fdda0..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_101C.txt +++ /dev/null @@ -1,111 +0,0 @@ -char sub_101C() -{ - __int64 v0; // rax - __int64 v1; // r8 - _BYTE *v2; // rdx - unsigned __int16 v3; // ax - __int64 v4; // rdx - __int64 v5; // r9 - unsigned __int8 i; // bl - __int64 v7; // r9 - __int64 v8; // rdx - int v10; // [rsp+28h] [rbp-D8h] - _BYTE v11[6688]; // [rsp+40h] [rbp-C0h] BYREF - char n2; // [rsp+1A70h] [rbp+1970h] BYREF - unsigned __int16 v13; // [rsp+1A78h] [rbp+1978h] BYREF - __int16 v14; // [rsp+1A80h] [rbp+1980h] BYREF - __int64 n6668; // [rsp+1A88h] [rbp+1988h] BYREF - - if ( qword_7920 /*0x1058*/ - || (v0 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920), - v0 >= 0) ) - { - n6668 = 6668; /*0x106c*/ - v0 = (*(__int64 (__fastcall **)(const __int16 *, void *, _QWORD, __int64 *, _BYTE *))(qword_79C0 + 72))( /*0x109b*/ - L"SocketIioConfig", - &unk_7470, - 0, - &n6668, - v11); - if ( v0 >= 0 ) /*0x10a1*/ - { - sub_1AA8(); /*0x10a7*/ - v13 = 0; /*0x10ac*/ - n6668 = 49; /*0x10bb*/ - if ( byte_7D91 && byte_7D60 ) /*0x10d0*/ - { - v1 = (unsigned __int8)byte_7D60; /*0x10d2*/ - v2 = &unk_7D61; /*0x10d6*/ - v3 = v13; /*0x10dd*/ - do /*0x1126*/ - { - if ( v2[1] <= 0x17u /*0x110e*/ - && *v2 <= 0xBu - && v11[((unsigned __int64)(unsigned __int8)v2[1] >> 2) + 4266] == 1 - && v11[(unsigned __int8)v2[1] + 4278] == 1 ) - { - v3 |= 1 << (*v2 & 0xF); /*0x1113*/ - v13 = v3; /*0x1117*/ - } - v2 += 2; /*0x111e*/ - --v1; /*0x1122*/ - } - while ( v1 ); /*0x1126*/ - } - else - { - v3 = v13; /*0x112a*/ - } - sub_5408(64, "SendVmdCommandToBp %x to BMC\ -", v3); /*0x1141*/ - for ( i = 0; i < 0xAu; ++i ) /*0x1146*/ - { - n2 = 0; /*0x114f*/ - LOBYTE(v5) = 96; /*0x115b*/ - LOBYTE(v10) = 2; /*0x116b*/ - LOBYTE(v4) = 46; /*0x1178*/ - v0 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, unsigned __int16 *, int, _QWORD, char *))(qword_7920 + 16))( /*0x1184*/ - qword_7920, - v4, - 0, - v5, - &v13, - v10, - 0, - &n2); - if ( v0 >= 0 ) /*0x118a*/ - { - (*(void (__fastcall **)(__int64))(qword_79B8 + 248))(5000); /*0x1198*/ - v14 = 0; /*0x119e*/ - LOBYTE(v7) = 97; /*0x11b2*/ - n2 = 2; /*0x11bc*/ - LOBYTE(v8) = 46; /*0x11d2*/ - LOBYTE(v10) = 0; /*0x11d4*/ - v0 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _QWORD, int, __int16 *, char *))(qword_7920 + 16))( /*0x11e2*/ - qword_7920, - v8, - 0, - v7, - 0, - v10, - &v14, - &n2); - if ( v0 < 0 ) /*0x11e8*/ - break; /*0x11e8*/ - LOBYTE(v0) = v13; /*0x11ea*/ - if ( (_BYTE)v14 == (_BYTE)v13 ) /*0x11f6*/ - { - LOBYTE(v0) = HIBYTE(v13); /*0x11f8*/ - if ( HIBYTE(v14) == HIBYTE(v13) ) /*0x1204*/ - break; /*0x1204*/ - } - } - } - } - } - else - { - qword_7920 = 0; /*0x105a*/ - } - return v0; /*0x1211*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_121C.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_121C.txt deleted file mode 100644 index d8e595a..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_121C.txt +++ /dev/null @@ -1,34 +0,0 @@ -unsigned __int64 __fastcall sub_121C(unsigned __int8 *a1) -{ - __int64 v1; // rdx - int v4; // ecx - int v5; // ecx - int v6; // ecx - int v7; // ecx - int v8; // ecx - unsigned __int8 n2; // cl - char n2_3; // al - __int64 n301_1; // r9 - _BYTE *v12; // rax - void *v13; // rdx - const __int16 *SocketProcessorCoreConfig; // rcx - unsigned __int8 n4_2; // cl - char n4_1; // al - unsigned __int8 v17; // al - __int64 n301; // rdi - unsigned __int8 n3_1; // cl - char n7_1; // al - unsigned __int8 v21; // al - bool v22; // zf - _BYTE v23[72]; // [rsp+30h] [rbp-D0h] BYREF - char n7; // [rsp+78h] [rbp-88h] - _BYTE v25[11]; // [rsp+200h] [rbp+100h] BYREF - char n3; // [rsp+20Bh] [rbp+10Bh] - _BYTE v27[52]; // [rsp+2E0h] [rbp+1E0h] BYREF - char n4; // [rsp+314h] [rbp+214h] - char v29; // [rsp+316h] [rbp+216h] - char v30; // [rsp+318h] [rbp+218h] - char v31; // [rsp+31Ah] [rbp+21Ah] - unsigned __int8 v32; // [rsp+31Ch] [rbp+21Ch] - unsigned __int8 v33; // [rsp+31Eh] [rbp+21Eh] - unsigned __int8 v... [10043 chars total] \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1914.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1914.txt deleted file mode 100644 index 4f6a5f4..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1914.txt +++ /dev/null @@ -1,55 +0,0 @@ -char __fastcall sub_1914(char n7, char a2, char a3, char a4, char a5, char a6, char a7) -{ - char result; // al - __int64 v9; // rdx - - result = 0; /*0x1919*/ - switch ( n7 ) /*0x1926*/ - { - case 0: /*0x1926*/ - if ( !a4 ) /*0x19c6*/ - return result; /*0x19c6*/ - result = byte_7530; /*0x19c8*/ - goto LABEL_25; /*0x19c8*/ - case 1: /*0x1926*/ - if ( !a4 ) /*0x19b9*/ - return result; /*0x19b9*/ - result = byte_7535; /*0x19bb*/ - goto LABEL_25; /*0x19c1*/ - case 2: /*0x1926*/ - if ( !a5 ) /*0x19ac*/ - return result; /*0x19ac*/ - result = byte_753A; /*0x19ae*/ - goto LABEL_25; /*0x19b4*/ - case 3: /*0x1926*/ - if ( !a5 ) /*0x199e*/ - return result; /*0x199e*/ - result = byte_753F; /*0x19a0*/ - goto LABEL_25; /*0x19a6*/ - case 4: /*0x1926*/ - if ( !a6 ) /*0x1990*/ - return result; /*0x1990*/ - result = byte_7558; /*0x1992*/ - goto LABEL_25; /*0x1998*/ - case 5: /*0x1926*/ - if ( !a6 ) /*0x1982*/ - return result; /*0x1982*/ - result = byte_755D; /*0x1984*/ - goto LABEL_25; /*0x198a*/ - case 6: /*0x1926*/ - if ( !a7 ) /*0x1974*/ - return result; /*0x1974*/ - result = byte_7562; /*0x1976*/ - goto LABEL_25; /*0x197c*/ - } - if ( n7 == 7 && a7 ) /*0x1962*/ - { - result = byte_7567; /*0x1968*/ -LABEL_25: - v9 = (unsigned __int8)byte_7D91; /*0x19ce*/ - byte_7D60[2 * (unsigned __int8)byte_7D91 + 1] = a3 + n7 - a2; /*0x19e2*/ - byte_7D60[2 * v9 + 2] = result; /*0x19e7*/ - byte_7D91 = v9 + 1; /*0x19ee*/ - } - return result; /*0x19f9*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_19FC.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_19FC.txt deleted file mode 100644 index 7430ff5..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_19FC.txt +++ /dev/null @@ -1,63 +0,0 @@ -char __fastcall sub_19FC(unsigned __int8 a1, char a2, char a3, __int64 a4, char a5, char a6, char a7) -{ - char result; // al - int v10; // ecx - int v11; // ecx - __int64 v12; // rdx - - result = 0; /*0x1a00*/ - if ( a1 ) /*0x1a0b*/ - { - v10 = a1 - 1; /*0x1a0d*/ - if ( v10 ) /*0x1a10*/ - { - v11 = v10 - 1; /*0x1a12*/ - if ( v11 ) /*0x1a15*/ - { - if ( v11 != 1 ) /*0x1a1a*/ - return result; /*0x1a1a*/ - if ( a7 == 1 ) /*0x1a24*/ - { - if ( !a6 ) /*0x1a2a*/ - return result; /*0x1a2a*/ - result = byte_7521; /*0x1a2c*/ - } - else - { - if ( !a6 ) /*0x1a38*/ - return result; /*0x1a38*/ - result = byte_7503; /*0x1a3a*/ - } - } - else if ( a7 == 1 ) /*0x1a47*/ - { - if ( !a6 ) /*0x1a4d*/ - return result; /*0x1a4d*/ - result = byte_751C; /*0x1a4f*/ - } - else - { - if ( !a6 ) /*0x1a5b*/ - return result; /*0x1a5b*/ - result = byte_74FE; /*0x1a5d*/ - } - } - else - { - if ( !a5 ) /*0x1a69*/ - return result; /*0x1a69*/ - result = byte_74F9; /*0x1a6b*/ - } - } - else - { - if ( !a5 ) /*0x1a77*/ - return result; /*0x1a77*/ - result = byte_74F4; /*0x1a79*/ - } - v12 = (unsigned __int8)byte_7D91; /*0x1a7f*/ - byte_7D60[2 * (unsigned __int8)byte_7D91 + 1] = a3 + a1 - a2; /*0x1a93*/ - byte_7D60[2 * v12 + 2] = result; /*0x1a98*/ - byte_7D91 = v12 + 1; /*0x1a9f*/ - return result; /*0x1aa5*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1AA8.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1AA8.txt deleted file mode 100644 index 12e8cba..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1AA8.txt +++ /dev/null @@ -1,184 +0,0 @@ -__int64 __fastcall sub_1AA8(int a1) -{ - unsigned __int8 v1; // si - __int64 v2; // rdx - __int64 v3; // rcx - __int64 v4; // r8 - __int64 v5; // r9 - unsigned __int8 v6; // r12 - unsigned __int8 v7; // r15 - bool v8; // zf - unsigned __int8 v9; // r13 - char n8; // di - char n4; // bl - __int64 v12; // r9 - char n7; // cl - char v14; // cl - unsigned __int8 n4_1; // r11 - char v16; // r14 - char v17; // si - char v18; // r11 - unsigned __int8 n4_2; // r11 - char v20; // r12 - char v21; // di - char v22; // r11 - char n8_2; // cl - char v24; // cl - char v25; // r14 - char v26; // si - char v27; // r11 - __int64 result; // rax - unsigned __int8 v29; // [rsp+40h] [rbp-18h] - unsigned __int8 v30; // [rsp+41h] [rbp-17h] - unsigned __int8 v31; // [rsp+42h] [rbp-16h] - unsigned __int8 n4_3; // [rsp+43h] [rbp-15h] BYREF - _DWORD v33[5]; // [rsp+44h] [rbp-14h] BYREF - int v34; // [rsp+A0h] [rbp+48h] BYREF - unsigned __int8 v35; // [rsp+A8h] [rbp+50h] BYREF - unsigned __int8 n8_1; // [rsp+B0h] [rbp+58h] BYREF - char v37; // [rsp+B8h] [rbp+60h] BYREF - - v1 = 0; /*0x1abc*/ - v37 = -1; /*0x1abe*/ - n8_1 = 0; /*0x1ac6*/ - n4_3 = 0; /*0x1ace*/ - LOBYTE(v34) = -1; /*0x1adf*/ - if ( sub_57C4(a1, (unsigned int)&n8_1, (unsigned int)&v37, (unsigned int)&n4_3, (__int64)&v34) < 0 ) - return sub_5408( - 0x80000000LL, - "[OemCollectNvmeVmdSlotInfo]: Get BP type failed!! Skip update the NVME slot info in VMD menu! \n"); - v6 = v37; /*0x1af1*/ - v7 = v34; /*0x1af5*/ - if ( v37 == -1 && (_BYTE)v34 == 0xFF ) - return sub_5408( - 0x80000000LL, - "[OemCollectNvmeVmdSlotInfo]: Get BP type failed!! Skip update the NVME slot info in VMD menu! \n"); - sub_7CC(v3, v2, v4, v5); /*0x1b08*/ - v34 = 0; /*0x1b11*/ - sub_5B28(16973832, &v34); /*0x1b19*/ - v8 = v34 == 0; /*0x1b1e*/ - v34 = 0; /*0x1b2a*/ - v29 = v8; /*0x1b2d*/ - sub_5B28(16973833, &v34); /*0x1b31*/ - v8 = v34 == 0; /*0x1b36*/ - v34 = 0; /*0x1b42*/ - v30 = v8; /*0x1b45*/ - sub_5B28(16973834, &v34); /*0x1b49*/ - v8 = v34 == 0; /*0x1b4e*/ - v34 = 0; /*0x1b5a*/ - v31 = v8; /*0x1b5d*/ - sub_5B28(16973835, &v34); /*0x1b61*/ - v9 = v34 == 0; /*0x1b71*/ - sub_5768(&v34, &v35); /*0x1b75*/ - n8 = n8_1; /*0x1b7a*/ - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: OnBoardNvmeBaseIndexNumber = %x\n", n8_1); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: OnBoardNvmeBaseSlotNumber = %x\n", v6); - n4 = n4_3; /*0x1ba9*/ - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: RiserNvmeBaseIndexNumber = %x\n", n4_3); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: RiserNvmeBaseSlotNumber = %x\n", v7); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME67Present = %x\n", v9); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME45Present = %x\n", v31); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME23Present = %x\n", v30); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME01Present = %x\n", v29); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: FirstInterPoserCardInstall = %x\n", (unsigned __int8)v34); - sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: SecondInterPoserCardInstallx = %x\n", v35); - byte_7D91 = 0; /*0x1c4d*/ - sub_5B28(17170432, v33); /*0x1c59*/ - if ( v33[0] == 1 ) /*0x1c62*/ - { - if ( v9 ) /*0x1c6b*/ - { - n7 = n8; /*0x1c6d*/ - if ( (unsigned __int8)n8 >= 8u ) /*0x1c74*/ - goto LABEL_25; /*0x1c74*/ - do /*0x1ca6*/ - { - sub_1914(n7, n8, v6, v29, v30, v31, v9); /*0x1c9c*/ - n7 = v14 + 1; /*0x1ca1*/ - } - while ( (unsigned __int8)n7 < 8u ); /*0x1ca6*/ - } - else - { - n4_1 = n4; /*0x1cad*/ - if ( (unsigned __int8)n4 >= 4u ) /*0x1cb3*/ - goto LABEL_25; /*0x1cb3*/ - v16 = v34; /*0x1cb9*/ - v17 = v35; /*0x1cbd*/ - do /*0x1ce4*/ - { - sub_19FC(n4_1, n4, v7, v12, v16, v17, 1); /*0x1cd8*/ - n4_1 = v18 + 1; /*0x1cdd*/ - } - while ( n4_1 < 4u ); /*0x1ce4*/ - } - } - else - { - n4_2 = n4; /*0x1ceb*/ - if ( v9 ) /*0x1cf1*/ - { - if ( (unsigned __int8)n4 < 4u ) /*0x1cf6*/ - { - v20 = v34; /*0x1cf8*/ - v21 = v35; /*0x1cfc*/ - do /*0x1d23*/ - { - sub_19FC(n4_2, n4, v7, v12, v20, v21, 2); /*0x1d17*/ - n4_2 = v22 + 1; /*0x1d1c*/ - } - while ( n4_2 < 4u ); /*0x1d23*/ - n8 = n8_1; /*0x1d25*/ - v6 = v37; /*0x1d29*/ - } - n8_2 = n8; /*0x1d2d*/ - if ( (unsigned __int8)n8 >= 8u ) /*0x1d34*/ - goto LABEL_25; /*0x1d34*/ - do /*0x1d62*/ - { - sub_1914(n8_2, n8, v6, v29, v30, v31, v9); /*0x1d58*/ - n8_2 = v24 + 1; /*0x1d5d*/ - } - while ( (unsigned __int8)n8_2 < 8u ); /*0x1d62*/ - } - else - { - if ( (unsigned __int8)n4 >= 4u ) /*0x1d69*/ - goto LABEL_25; /*0x1d69*/ - v25 = v34; /*0x1d6b*/ - v26 = v35; /*0x1d6f*/ - do /*0x1d96*/ - { - sub_19FC(n4_2, n4, v7, v12, v25, v26, 2); /*0x1d8a*/ - n4_2 = v27 + 1; /*0x1d8f*/ - } - while ( n4_2 < 4u ); /*0x1d96*/ - } - } - v1 = 0; /*0x1d9e*/ -LABEL_25: - byte_7D60[0] = byte_7D91; /*0x1da0*/ - result = sub_5408( - 0x80000000LL, - "[OemCollectNvmeVmdSlotInfo]: mVmdSetupConfiguration.DevCount = %x\n", - (unsigned __int8)byte_7D91); - if ( byte_7D91 ) - { - do - { - sub_5408( - 0x80000000LL, - "[OemCollectNvmeVmdSlotInfo]: mVmdSetupConfiguration.Dev[%x].SlotIndex = %x\n", - v1, - (unsigned __int8)byte_7D60[2 * v1 + 1]); - result = sub_5408( - 0x80000000LL, - "[OemCollectNvmeVmdSlotInfo]: mVmdSetupConfiguration.Dev[%x].VmdPortIndex = %x\n", - v1, - (unsigned __int8)byte_7D60[2 * v1 + 2]); - ++v1; /*0x1e07*/ - } - while ( v1 < (unsigned __int8)byte_7D91 ); - } - return result; /*0x1e26*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1E38.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1E38.txt deleted file mode 100644 index d0e7537..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_1E38.txt +++ /dev/null @@ -1,2319 +0,0 @@ -EFI_STATUS __fastcall sub_1E38(__int64 n2_22, EFI_SYSTEM_TABLE *SystemTable) -{ - unsigned __int8 v2; // bl - char v3; // r13 - EFI_BOOT_SERVICES *BootServices; // rdi - __int64 v5; // rax - __int64 v6; // rcx - __int64 v7; // rdx - __int64 v8; // rcx - __int64 v9; // r8 - __int64 v10; // r9 - char n85; // al - char n85_1; // r8 - __int64 n115; // rdx - unsigned __int8 n33; // cl - char v15; // al - __int64 n5; // r9 - char v17; // al - int v18; // ecx - int v19; // ecx - int v20; // ecx - int v21; // ecx - int v22; // ecx - __int16 n2000; // ax - int v24; // ecx - int v25; // ecx - int v26; // ecx - int v27; // ecx - int v28; // ecx - __int64 v29; // rax - __int64 v30; // rax - char n256_1; // cl - unsigned __int64 n22; // rax - unsigned __int64 i; // rax - unsigned __int64 n22_1; // rax - unsigned __int64 j; // rax - char v36; // r15 - char v37; // di - unsigned __int64 n3_4; // rax - unsigned __int64 k; // rax - unsigned __int64 m; // rax - unsigned __int64 n; // rax - unsigned __int64 ii; // rax - unsigned __int64 jj; // rax - __int64 v44; // rdi - unsigned __int64 kk; // rdi - unsigned __int64 n22_2; // r14 - unsigned __int64 mm; // rdi - __int64 n8; // rdi - __int64 n12; // rsi - unsigned __int64 n30; // r12 - __int64 n20; // rdi - __int64 v52; // rdx - __int64 v53; // r9 - char v54; // di - unsigned __int64 nn; // rbx - __int64 v56; // rax - __int64 v57; // rax - bool v58; // bl - __int64 v59; // rdx - __int64 v60; // r8 - __int64 v61; // r9 - __int64 v62; // r8 - __int64 v63; // r9 - __int64 v64; // r8 - __int64 v65; // r9 - char n2_7; // dl - __int64 n2_9; // r8 - __int64 v68; // r9 - __int64 v69; // r8 - __int64 v70; // r9 - char n2_11; // dl - __int64 n2_13; // r8 - __int64 v73; // r9 - __int64 n257_5; // r8 - __int64 v75; // r9 - __int64 v76; // r8 - __int64 v77; // r9 - __int64 v78; // r8 - __int64 v79; // r9 - __int64 v80; // r8 - __int64 v81; // r9 - __int64 v82; // r8 - __int64 v83; // r9 - __int64 v84; // rdx - __int64 v85; // r9 - __int64 v86; // rax - unsigned __int8 nn_1; // cl - char n2_15; // al - __int64 v89; // r8 - __int64 v90; // r9 - char n257_6; // dl - __int64 n2_16; // r8 - __int64 v93; // r9 - __int64 n2_17; // r8 - __int64 v95; // r9 - __int64 v96; // r8 - __int64 v97; // r9 - char n2_18; // dl - __int64 v99; // r8 - __int64 v100; // r9 - char n2_20; // dl - __int64 v102; // r8 - __int64 v103; // r9 - __int64 v104; // r8 - _BYTE *v105; // r9 - __int64 v106; // r8 - __int64 v107; // r9 - __int64 v108; // rdx - __int64 v109; // r8 - __int64 v110; // r9 - __int64 v111; // rdx - __int64 v112; // r8 - __int64 v113; // r9 - __int64 v114; // rdx - __int64 v115; // r8 - __int64 v116; // r9 - __int64 v117; // rdx - __int64 v118; // r8 - __int64 v119; // r9 - __int64 v120; // rdx - __int64 v121; // r8 - __int64 v122; // r9 - __int64 v123; // rdx - __int64 v124; // r8 - __int64 v125; // r9 - __int64 v126; // rdx - __int64 v127; // r8 - __int64 v128; // r9 - __int64 v129; // rdx - __int64 v130; // r8 - __int64 v131; // r9 - __int64 v132; // rdx - __int64 v133; // r8 - __int64 v134; // r9 - __int64 v135; // rdx - __int64 v136; // r8 - __int64 v137; // r9 - __int64 v138; // rdx - __int64 v139; // r8 - __int64 v140; // r9 - __int64 v141; // rdx - __int64 v142; // r8 - __int64 v143; // r9 - __int64 v144; // rdx - __int64 v145; // r8 - __int64 v146; // r9 - __int64 v147; // rdx - __int64 v148; // r8 - __int64 v149; // r9 - __int64 v150; // rdx - __int64 v151; // r8 - __int64 v152; // r9 - __int64 v153; // r8 - __int64 v154; // r9 - int v156; // [rsp+28h] [rbp-D8h] - __int16 n257_2; // [rsp+40h] [rbp-C0h] BYREF - char v158; // [rsp+42h] [rbp-BEh] - int n3276800; // [rsp+46h] [rbp-BAh] - _WORD v160[2]; // [rsp+50h] [rbp-B0h] BYREF - _BYTE v161[4]; // [rsp+54h] [rbp-ACh] BYREF - char v162; // [rsp+58h] [rbp-A8h] BYREF - char n10_1; // [rsp+59h] [rbp-A7h] BYREF - char n10_2; // [rsp+5Ah] [rbp-A6h] BYREF - char v165; // [rsp+5Bh] [rbp-A5h] BYREF - __int16 n257_3; // [rsp+5Ch] [rbp-A4h] BYREF - _BYTE v167[4]; // [rsp+60h] [rbp-A0h] BYREF - _BYTE v168[4]; // [rsp+64h] [rbp-9Ch] BYREF - unsigned int v169; // [rsp+68h] [rbp-98h] BYREF - unsigned int v170; // [rsp+6Ch] [rbp-94h] BYREF - _DWORD v171[4]; // [rsp+70h] [rbp-90h] BYREF - unsigned int v172; // [rsp+80h] [rbp-80h] BYREF - unsigned int v173; // [rsp+84h] [rbp-7Ch] BYREF - unsigned int v174; // [rsp+88h] [rbp-78h] BYREF - unsigned int v175; // [rsp+8Ch] [rbp-74h] BYREF - __int64 v176; // [rsp+90h] [rbp-70h] - char v177[8]; // [rsp+98h] [rbp-68h] BYREF - __int64 n814; // [rsp+A0h] [rbp-60h] BYREF - unsigned int v179; // [rsp+A8h] [rbp-58h] BYREF - unsigned int v180; // [rsp+ACh] [rbp-54h] BYREF - unsigned int v181; // [rsp+B0h] [rbp-50h] BYREF - unsigned int v182; // [rsp+B4h] [rbp-4Ch] BYREF - unsigned int v183; // [rsp+B8h] [rbp-48h] BYREF - int v184; // [rsp+BCh] [rbp-44h] BYREF - char v185[4]; // [rsp+C0h] [rbp-40h] BYREF - char v186[4]; // [rsp+C4h] [rbp-3Ch] BYREF - char v187[8]; // [rsp+C8h] [rbp-38h] BYREF - __int64 n301; // [rsp+D0h] [rbp-30h] BYREF - __int64 n224; // [rsp+D8h] [rbp-28h] BYREF - __int64 n462; // [rsp+E0h] [rbp-20h] BYREF - unsigned int v191; // [rsp+E8h] [rbp-18h] BYREF - unsigned int v192; // [rsp+ECh] [rbp-14h] BYREF - unsigned int v193; // [rsp+F0h] [rbp-10h] BYREF - __int64 n676; // [rsp+F8h] [rbp-8h] BYREF - __int64 n81; // [rsp+100h] [rbp+0h] BYREF - __int64 n3; // [rsp+108h] [rbp+8h] BYREF - __int64 n1072; // [rsp+110h] [rbp+10h] BYREF - __int64 n2; // [rsp+118h] [rbp+18h] BYREF - __int64 n341; // [rsp+120h] [rbp+20h] BYREF - __int64 n514; // [rsp+128h] [rbp+28h] BYREF - __int64 n1495; // [rsp+130h] [rbp+30h] BYREF - __int64 n6668; // [rsp+138h] [rbp+38h] BYREF - __int64 n10; // [rsp+140h] [rbp+40h] BYREF - _BYTE v204[80]; // [rsp+150h] [rbp+50h] BYREF - char v205; // [rsp+1A0h] [rbp+A0h] - _BYTE v206[211]; // [rsp+1B0h] [rbp+B0h] BYREF - char v207; // [rsp+283h] [rbp+183h] - _WORD v208[420]; // [rsp+D6Ah] [rbp+C6Ah] - __int64 v209; // [rsp+10B2h] [rbp+FB2h] - __int64 v210; // [rsp+10BAh] [rbp+FBAh] - __int64 v211; // [rsp+10C2h] [rbp+FC2h] - __int64 v212; // [rsp+10CAh] [rbp+FCAh] - char v213; // [rsp+125Ah] [rbp+115Ah] - char v214; // [rsp+125Ch] [rbp+115Ch] - char v215; // [rsp+125Dh] [rbp+115Dh] - char v216; // [rsp+125Fh] [rbp+115Fh] - _DWORD v217[2]; // [rsp+1266h] [rbp+1166h] - __int16 n257_4; // [rsp+126Eh] [rbp+116Eh] - int n16843009_1; // [rsp+1272h] [rbp+1172h] - int n16843009_2; // [rsp+127Ah] [rbp+117Ah] - char v221; // [rsp+1296h] [rbp+1196h] - char v222; // [rsp+1298h] [rbp+1198h] - char v223; // [rsp+1299h] [rbp+1199h] - char v224; // [rsp+129Bh] [rbp+119Bh] - char v225; // [rsp+1338h] [rbp+1238h] - char v226; // [rsp+1347h] [rbp+1247h] - char v227; // [rsp+1A93h] [rbp+1993h] - char v228; // [rsp+1A94h] [rbp+1994h] - __int16 n256; // [rsp+1A95h] [rbp+1995h] - _BYTE v230[9]; // [rsp+1BBCh] [rbp+1ABCh] BYREF - unsigned __int8 n2_10; // [rsp+1BC5h] [rbp+1AC5h] - __int16 v232; // [rsp+1BC6h] [rbp+1AC6h] - _BYTE v233[11]; // [rsp+1C9Ch] [rbp+1B9Ch] BYREF - _WORD v234[5]; // [rsp+1CA7h] [rbp+1BA7h] BYREF - char v235; // [rsp+1CB1h] [rbp+1BB1h] - char v236; // [rsp+1CB4h] [rbp+1BB4h] - _BYTE v237[10]; // [rsp+1DF1h] [rbp+1CF1h] BYREF - __int16 v238; // [rsp+1DFBh] [rbp+1CFBh] - char v239; // [rsp+1DFDh] [rbp+1CFDh] - __int16 n2000_2; // [rsp+1E0Ah] [rbp+1D0Ah] - __int16 n257_1; // [rsp+1E31h] [rbp+1D31h] - __int16 v242; // [rsp+1E35h] [rbp+1D35h] - __int16 v243; // [rsp+1E39h] [rbp+1D39h] - char n2_1; // [rsp+1E4Ch] [rbp+1D4Ch] - char v245; // [rsp+1E99h] [rbp+1D99h] - _BYTE v246[2]; // [rsp+1FF3h] [rbp+1EF3h] BYREF - char v247; // [rsp+1FF5h] [rbp+1EF5h] - char n2_14; // [rsp+1FF7h] [rbp+1EF7h] - __int16 n257; // [rsp+1FFDh] [rbp+1EFDh] - char v250; // [rsp+2007h] [rbp+1F07h] - char v251; // [rsp+200Ah] [rbp+1F0Ah] - char n2_23; // [rsp+200Bh] [rbp+1F0Bh] - char n3_3; // [rsp+2021h] [rbp+1F21h] - _BYTE v254[3]; // [rsp+2022h] [rbp+1F22h] BYREF - char n2_19; // [rsp+2025h] [rbp+1F25h] - char v256; // [rsp+2032h] [rbp+1F32h] - char v257; // [rsp+2038h] [rbp+1F38h] - __int16 v258; // [rsp+203Ah] [rbp+1F3Ah] - char v259; // [rsp+20F0h] [rbp+1FF0h] - char n3_1; // [rsp+20F2h] [rbp+1FF2h] - char v261; // [rsp+21C1h] [rbp+20C1h] BYREF - char v262; // [rsp+21C2h] [rbp+20C2h] - char n2_8; // [rsp+21C6h] [rbp+20C6h] - char n2_12; // [rsp+21C8h] [rbp+20C8h] - int n16843009; // [rsp+21CFh] [rbp+20CFh] - char v266; // [rsp+21D4h] [rbp+20D4h] - char n2_21; // [rsp+2220h] [rbp+2120h] - _BYTE v268[74]; // [rsp+22F0h] [rbp+21F0h] BYREF - char v269; // [rsp+233Ah] [rbp+223Ah] - char v270; // [rsp+2373h] [rbp+2273h] - __int16 n2000_1; // [rsp+239Fh] [rbp+229Fh] - char v272; // [rsp+23AAh] [rbp+22AAh] - char v273; // [rsp+23F6h] [rbp+22F6h] - char v274; // [rsp+24C0h] [rbp+23C0h] - unsigned __int8 n33_1; // [rsp+24C1h] [rbp+23C1h] - unsigned __int8 v276[2]; // [rsp+25A0h] [rbp+24A0h] BYREF - _BYTE v277[270]; // [rsp+25A2h] [rbp+24A2h] BYREF - _BYTE v278[10]; // [rsp+26B0h] [rbp+25B0h] BYREF - char n3_2; // [rsp+26BAh] [rbp+25BAh] - char n2_2; // [rsp+26C2h] [rbp+25C2h] - char n2_4; // [rsp+2742h] [rbp+2642h] - char n2_3; // [rsp+2814h] [rbp+2714h] - char v283; // [rsp+2866h] [rbp+2766h] - unsigned __int8 n33_2; // [rsp+2867h] [rbp+2767h] - char n2_5; // [rsp+28BAh] [rbp+27BAh] - _BYTE v286[279]; // [rsp+2AE0h] [rbp+29E0h] BYREF - char v287; // [rsp+2BF7h] [rbp+2AF7h] - char v288; // [rsp+30C0h] [rbp+2FC0h] BYREF - unsigned __int8 v289; // [rsp+30C1h] [rbp+2FC1h] - char v290[318]; // [rsp+30C2h] [rbp+2FC2h] BYREF - __int64 n2_6; // [rsp+3210h] [rbp+3110h] BYREF - char v292; // [rsp+3220h] [rbp+3120h] BYREF - char v293; // [rsp+3228h] [rbp+3128h] BYREF - - n2_6 = n2_22; /*0x1e3d*/ - n814 = 814; /*0x1e5f*/ - v2 = 0; /*0x1e6e*/ - n676 = 676; /*0x1e71*/ - v3 = 0; /*0x1e79*/ - v171[0] = -938345928; /*0x1e7c*/ - v171[1] = 1165574856; /*0x1e84*/ - v171[2] = -379536471; /*0x1e8c*/ - v171[3] = 888921422; /*0x1e94*/ - LOBYTE(n2_6) = 0; /*0x1e9c*/ - if ( ::SystemTable ) /*0x1ea3*/ - { - BootServices = (EFI_BOOT_SERVICES *)::BootServices; /*0x1ec4*/ - } - else - { - ::SystemTable = (__int64)SystemTable; /*0x1ea5*/ - BootServices = SystemTable->BootServices; /*0x1eac*/ - ::BootServices = (__int64)BootServices; /*0x1eb0*/ - RuntimeServices = (__int64)SystemTable->RuntimeServices; /*0x1ebb*/ - } - if ( (unsigned int)sub_5710() == 32 ) /*0x1ed7*/ - return 0; /*0x1ed7*/ - v5 = ((__int64 (__fastcall *)(void *, _QWORD, __int64 *))BootServices->LocateProtocol)(&unk_7450, 0, &qword_7920); /*0x1eed*/ - v6 = qword_7920; /*0x1ef3*/ - if ( v5 < 0 ) /*0x1efd*/ - v6 = 0; /*0x1efd*/ - qword_7920 = v6; /*0x1f01*/ - sub_101C(); /*0x1f08*/ - n301 = 301; /*0x1f14*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, char *))(RuntimeServices + 72))( /*0x1f3e*/ - L"SocketProcessorCoreConfig", - &unk_7410, - &v173, - &n301, - &v261); - n341 = 341; /*0x1f48*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x1f72*/ - L"SocketMpLinkConfig", - &unk_74A0, - &v191, - &n341, - v233); - n462 = 462; /*0x1f7c*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x1fa6*/ - L"SocketPowerManagementConfig", - &unk_7430, - &v175, - &n462, - v246); - n6668 = 6668; /*0x1fb0*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x1fdb*/ - L"SocketIioConfig", - &unk_7470, - &v170, - &n6668, - v206); - n224 = 224; /*0x1fe5*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x200f*/ - L"SocketCommonRcConfig", - &unk_74B0, - &v174, - &n224, - v230); - n514 = 514; /*0x2019*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2043*/ - L"SocketMemoryConfig", - &unk_73E0, - &v192, - &n514, - v237); - n1495 = 1495; /*0x204d*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2077*/ - L"PchRcConfiguration", - &unk_73B0, - &v193, - &n1495, - v286); - if ( (*(__int64 (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, char *))(RuntimeServices + 72))( /*0x20bc*/ - L"Setup", - &unk_7568, - &v169, - &n814, - &byte_7A20) >= 0 - && (n19533 != 77 || n19276 != 19276) ) - { - n19533 = 19533; /*0x20e5*/ - HIBYTE(n19276) = 75; /*0x20ee*/ - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x20fa*/ - L"Setup", - &unk_7568, - v169, - n814, - &byte_7A20); - } - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2126*/ - L"IntelSetup", - &unk_75D8, - &v179, - &n676, - v268); - n81 = 81; /*0x212d*/ - (*(void (__fastcall **)(const __int16 *, _DWORD *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2155*/ - L"AMITSESetup", - v171, - &v180, - &n81, - v204); - n3 = 3; /*0x2161*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2188*/ - L"PNP0501_1_NV", - &unk_74E0, - &v181, - &n3, - v161); - n10 = 10; /*0x2194*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, __int16 *))(RuntimeServices + 72))( /*0x21bb*/ - L"NetworkStackVar", - &unk_74C0, - &v172, - &n10, - &n257_2); - n2 = 2; /*0x21e4*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _WORD *))(RuntimeServices + 72))( /*0x21ef*/ - L"Timeout", - &unk_75C8, - &v183, - &n2, - v160); - n1072 = 1072; /*0x21f9*/ - (*(void (__fastcall **)(const __int16 *, void *, unsigned int *, __int64 *, _BYTE *))(RuntimeServices + 72))( /*0x2223*/ - L"ServerSetup", - &unk_7460, - &v182, - &n1072, - v278); - n85 = sub_7CC(v8, v7, v9, v10); /*0x2226*/ - n85_1 = n85; /*0x222b*/ - __outbyte(0x72u, 0x5Cu); /*0x2234*/ - n115 = 115; /*0x2235*/ - __outbyte(0x73u, n85); /*0x223c*/ - n33 = n33; /*0x223d*/ - if ( n33 == n85 || n85 == 85 ) /*0x224f*/ - { - v15 = 0; /*0x225f*/ - } - else - { - n33 = n85; /*0x2251*/ - v15 = 1; /*0x2254*/ - n33 = n85_1; /*0x2257*/ - } - n33_1 = n33; /*0x226d*/ - n33_2 = n33; /*0x227d*/ - n5 = 5; /*0x228b*/ - if ( byte_7B3B && (byte_7B3B != 1 || !v15) ) /*0x229a*/ - { - if ( (unsigned __int8)(n33 - 2) <= 1u || n33 == 33 ) /*0x22a9*/ - v3 = 1; /*0x22af*/ - goto LABEL_69; /*0x22b2*/ - } - v17 = byte_7B49; /*0x22b7*/ - if ( n33 != 85 ) /*0x22c4*/ - v17 = 0; /*0x22c4*/ - byte_7B3B = 1; /*0x22c8*/ - byte_7B49 = v17; /*0x22cf*/ - if ( n33 > 7u ) - { - v24 = n33 - 12; /*0x2b7d*/ - if ( !v24 ) /*0x2b7f*/ - { - n2_1 = 0; /*0x3543*/ - n131073 = 131073; /*0x354a*/ - n458758 = 458758; /*0x3554*/ - n2 = 2; /*0x355e*/ - *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x356a*/ - n10 = 10; /*0x3572*/ - LOWORD(n33686016) = 513; /*0x3579*/ - v266 = 0; /*0x3582*/ - n3_1 = 3; /*0x3589*/ - n2_14 = 1; /*0x3590*/ - v254[2] = 0; /*0x3597*/ - v205 = 0; /*0x359e*/ - n3276800 = 3276800; /*0x35a5*/ - goto LABEL_57; /*0x35a5*/ - } - v25 = v24 - 4; /*0x2b85*/ - if ( v25 ) /*0x2b88*/ - { - v26 = v25 - 17; /*0x2b8e*/ - if ( !v26 ) /*0x2b91*/ - { - n2_1 = 0; /*0x30f0*/ - v2 = 1; /*0x30f7*/ - n196608 = 196608; /*0x30fa*/ - n131073_0 = 131073; /*0x3104*/ - n327684 = 327684; /*0x310e*/ - n196608_0 = 196608; /*0x311b*/ - n10 = 10; /*0x3125*/ - n2000 = 2000; /*0x312c*/ - n2000_1 = 2000; /*0x3131*/ - n131073_1 = 131073; /*0x3138*/ - n327684_0 = 327684; /*0x3142*/ - n196608_1 = 196608; /*0x314c*/ - n524293 = 524293; /*0x3156*/ - n131073 = 131073; /*0x3160*/ - n458758 = 458758; /*0x316a*/ - n589828 = 589828; /*0x3174*/ - n2 = 0; /*0x317e*/ - n2_5 = 1; /*0x3185*/ - byte_7A20 = 1; /*0x318c*/ - n33686016 = 33686016; /*0x3193*/ - n2_0 = 2; /*0x319d*/ - n2_8 = 0; /*0x31a4*/ - n16843009 = 16843009; /*0x31ab*/ - v262 = 1; /*0x31b5*/ - v266 = 0; /*0x31bc*/ - n2_12 = 1; /*0x31c3*/ - n2_21 = 1; /*0x31ca*/ - v209 = 0x101010101010101LL; /*0x31d1*/ - v210 = 0x101010101010101LL; /*0x31d8*/ - v211 = 0x101010101010101LL; /*0x31df*/ - v212 = 0x101010101010101LL; /*0x31e6*/ - v206[0] = 1; /*0x31ed*/ - n256 = 256; /*0x31f4*/ - v226 = 0; /*0x31fd*/ - v225 = 1; /*0x3204*/ - n3_1 = 2; /*0x320b*/ - n2_14 = 1; /*0x3212*/ - n2_23 = 1; /*0x3219*/ - *(_WORD *)v254 = 256; /*0x3220*/ - n3_3 = 0; /*0x3229*/ - v258 = 0; /*0x3230*/ - v254[2] = 1; /*0x3238*/ - n257 = 257; /*0x323f*/ - v247 = 1; /*0x3248*/ - v257 = 1; /*0x324f*/ - v234[0] = 2; /*0x3256*/ - LOBYTE(v234[1]) = 0; /*0x325e*/ - n257_1 = 257; /*0x3265*/ - v242 = 0; /*0x326e*/ - v243 = 0; /*0x3276*/ - n2_10 = 1; /*0x327e*/ - v274 = 1; /*0x3285*/ - v205 = 1; /*0x328c*/ - n3276800 = 3276800; /*0x3293*/ - v269 = 0; /*0x329b*/ - v161[0] = 1; /*0x32a2*/ - n257 = 257; /*0x32a7*/ - n1028 = 1028; /*0x32b1*/ - word_7A74 = 1; /*0x32ba*/ - v160[0] = 1; /*0x32c1*/ - n257_2 = 257; /*0x32c6*/ - v158 = 0; /*0x32cd*/ - v283 = 0; /*0x32d2*/ - n3_2 = 3; /*0x32d9*/ - v270 = 1; /*0x32df*/ - v236 = 1; /*0x32e6*/ - v272 = 1; /*0x32ed*/ - v207 = 0; /*0x32f4*/ - v287 = 0; /*0x32fb*/ -LABEL_67: - n2_1 = 2; /*0x36b9*/ - n2000_2 = n2000; /*0x36c0*/ - v286[197] = 0; /*0x36c7*/ - v286[83] = 0; /*0x36ce*/ - v235 = 0; /*0x36d5*/ - goto LABEL_68; /*0x36d5*/ - } - v27 = v26 - 48; /*0x2b97*/ - if ( !v27 ) /*0x2b9a*/ - { - n2_1 = 0; /*0x2f59*/ - v2 = 1; /*0x2f60*/ - n196608 = 3; /*0x2f63*/ - n131073_0 = 131073; /*0x2f69*/ - n327684 = 327684; /*0x2f73*/ - n196608_0 = 196608; /*0x2f80*/ - n10 = 10; /*0x2f8a*/ - n2000 = 2560; /*0x2f91*/ - n131073_1 = 131073; /*0x2f96*/ - n327684_0 = 327684; /*0x2fa0*/ - n196608_1 = 196608; /*0x2faa*/ - n524293 = 524293; /*0x2fb4*/ - n131073 = 131073; /*0x2fbe*/ - n458758 = 458758; /*0x2fc8*/ - n589828 = 589828; /*0x2fd2*/ - n2 = 2; /*0x2fdc*/ - *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2fe3*/ - byte_7A20 = 0; /*0x2fec*/ - LOWORD(n33686016) = 513; /*0x2ff3*/ - BYTE2(n33686016) = 2; /*0x2ffc*/ - n2_0 = 2; /*0x3003*/ - n2_8 = 0; /*0x300a*/ - n16843009 = 16843009; /*0x3011*/ - v262 = 1; /*0x301b*/ - v266 = 0; /*0x3022*/ - v209 = 0x101010101010101LL; /*0x3029*/ - v210 = 0x101010101010101LL; /*0x3030*/ - v211 = 0x101010101010101LL; /*0x3037*/ - v212 = 0x101010101010101LL; /*0x303e*/ - n256 = 256; /*0x3045*/ - n3_1 = 2; /*0x304e*/ - n2_14 = 1; /*0x3055*/ - n2_23 = 1; /*0x305c*/ - *(_WORD *)v254 = 256; /*0x3063*/ - n3_3 = 3; /*0x306c*/ - HIBYTE(v258) = 0; /*0x3072*/ - v254[2] = 1; /*0x3079*/ - LOBYTE(n257) = 1; /*0x3080*/ - memset(v234, 2, 3); /*0x3087*/ - n2_10 = 1; /*0x3097*/ - v274 = 1; /*0x309e*/ - v205 = 0; /*0x30a5*/ - n3276800 = 0x10000; /*0x30ac*/ - v161[0] = 0; /*0x30b4*/ - HIWORD(n257) = 257; /*0x30b9*/ - LOBYTE(n1028) = 3; /*0x30c2*/ - v160[0] = 1; /*0x30c8*/ - v269 = 0; /*0x30cd*/ - n257_2 = 0; /*0x30d4*/ - v158 = 0; /*0x30da*/ - v283 = 1; /*0x30df*/ -LABEL_66: - v206[0] = 1; /*0x36b2*/ - goto LABEL_67; /*0x36b2*/ - } - v28 = v27 - 6; /*0x2ba0*/ - if ( !v28 ) /*0x2ba3*/ - { - n2_1 = 0; /*0x2dd4*/ - n196608 = 3; /*0x2ddb*/ - v2 = 1; /*0x2de1*/ - n3_3 = 3; /*0x2de4*/ - n131073_0 = 131073; /*0x2dea*/ - n327684 = 327684; /*0x2df7*/ - n10 = 10; /*0x2e01*/ - n2000 = 2560; /*0x2e08*/ - n196608_0 = 196608; /*0x2e0d*/ - n131073_1 = 131073; /*0x2e17*/ - n327684_0 = 327684; /*0x2e21*/ - n196608_1 = 196608; /*0x2e2b*/ - n524293 = 524293; /*0x2e35*/ - n131073 = 131073; /*0x2e3f*/ - n458758 = 458758; /*0x2e49*/ - n589828 = 589828; /*0x2e53*/ - n2 = 2; /*0x2e5d*/ - *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2e64*/ - byte_7A20 = 0; /*0x2e6d*/ - LOWORD(n33686016) = 513; /*0x2e74*/ - BYTE2(n33686016) = 2; /*0x2e7d*/ - n2_0 = 2; /*0x2e84*/ - n2_8 = 0; /*0x2e8b*/ - n16843009 = 16843009; /*0x2e92*/ - v262 = 1; /*0x2e9c*/ - v266 = 0; /*0x2ea3*/ - v209 = 0x101010101010101LL; /*0x2eaa*/ - v210 = 0x101010101010101LL; /*0x2eb1*/ - v211 = 0x101010101010101LL; /*0x2eb8*/ - v212 = 0x101010101010101LL; /*0x2ebf*/ - n256 = 256; /*0x2ec6*/ - n3_1 = 2; /*0x2ecf*/ - n2_14 = 1; /*0x2ed6*/ - n2_23 = 1; /*0x2edd*/ - *(_WORD *)v254 = 256; /*0x2ee4*/ - HIBYTE(v258) = 0; /*0x2eed*/ - v254[2] = 1; /*0x2ef4*/ - LOBYTE(n257) = 1; /*0x2efb*/ - memset(v234, 2, 3); /*0x2f02*/ - v274 = 1; /*0x2f12*/ - v205 = 0; /*0x2f19*/ - n3276800 = 0x10000; /*0x2f20*/ - v161[0] = 0; /*0x2f28*/ - HIWORD(n257) = 257; /*0x2f2d*/ - v160[0] = 1; /*0x2f36*/ - v269 = 0; /*0x2f3b*/ - n257_2 = 0; /*0x2f42*/ - v283 = 1; /*0x2f48*/ -LABEL_63: - n2_10 = 1; /*0x369f*/ - goto LABEL_64; /*0x369f*/ - } - if ( v28 == 1 ) /*0x2bab*/ - { - n2_1 = 2; /*0x2c43*/ - n10 = 10; /*0x2c4a*/ - v2 = 1; /*0x2c51*/ - n2000 = 2560; /*0x2c54*/ - n196608 = 196608; /*0x2c59*/ - n131073_0 = 131073; /*0x2c63*/ - n327684 = 327684; /*0x2c6d*/ - n196608_0 = 196608; /*0x2c77*/ - n131073_1 = 131073; /*0x2c81*/ - n327684_0 = 327684; /*0x2c8b*/ - n196608_1 = 196608; /*0x2c95*/ - n524293 = 524293; /*0x2c9f*/ - n131073 = 131073; /*0x2ca9*/ - n458758 = 458758; /*0x2cb3*/ - n589828 = 589828; /*0x2cbd*/ - n2 = 0; /*0x2cc7*/ - *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2cce*/ - byte_7A20 = 1; /*0x2cd7*/ - LOWORD(n33686016) = 256; /*0x2cde*/ - BYTE2(n33686016) = 2; /*0x2ce7*/ - n2_0 = 2; /*0x2cee*/ - n2_8 = 0; /*0x2cf5*/ - n16843009 = 16843009; /*0x2cfc*/ - v262 = 1; /*0x2d06*/ - v266 = 0; /*0x2d0d*/ - v209 = 0x101010101010101LL; /*0x2d14*/ - v210 = 0x101010101010101LL; /*0x2d1b*/ - v211 = 0x101010101010101LL; /*0x2d22*/ - v212 = 0x101010101010101LL; /*0x2d29*/ - n256 = 1; /*0x2d30*/ - n3_1 = 2; /*0x2d37*/ - n2_14 = 1; /*0x2d3e*/ - n2_23 = 1; /*0x2d45*/ - memset(v254, 0, sizeof(v254)); /*0x2d4c*/ - n3_3 = 0; /*0x2d54*/ - HIBYTE(v258) = 0; /*0x2d5b*/ - LOBYTE(n257) = 1; /*0x2d69*/ - memset(v234, 2, 3); /*0x2d70*/ - n2_10 = 1; /*0x2d80*/ - v274 = 1; /*0x2d87*/ - v205 = 1; /*0x2d8e*/ - n3276800 = 3277057; /*0x2d95*/ - v269 = 0; /*0x2d9d*/ - v161[0] = 0; /*0x2da4*/ - HIWORD(n257) = 257; /*0x2da9*/ - v160[0] = 1; /*0x2db2*/ - n257_2 = 257; /*0x2db7*/ - v158 = 1; /*0x2dbe*/ - v283 = 0; /*0x2dc3*/ -LABEL_65: - LOBYTE(n1028) = 7; /*0x36ab*/ - goto LABEL_66; /*0x36ab*/ - } -LABEL_45: - n2_1 = 2; /*0x2bb1*/ - n10 = 10; /*0x2bbd*/ - LOBYTE(n33686016) = 0; /*0x2bc4*/ - n196608 = 196608; /*0x2bcb*/ - n131073_0 = 131073; /*0x2bd5*/ - n327684 = 327684; /*0x2bdf*/ - n196608_0 = 196608; /*0x2be9*/ - n131073_1 = 131073; /*0x2bf3*/ - n327684_0 = 327684; /*0x2bfd*/ - n196608_1 = 196608; /*0x2c07*/ - n524293 = 524293; /*0x2c11*/ - n131073 = 131073; /*0x2c1b*/ - n458758 = 458758; /*0x2c25*/ - n589828 = 589828; /*0x2c2f*/ - goto LABEL_68; /*0x2c39*/ - } - n2_1 = 0; /*0x330c*/ - n10 = 10; /*0x3313*/ - v2 = 1; /*0x331a*/ - v29 = qword_7920; /*0x331d*/ - n196608 = 196608; /*0x3324*/ - n131073_0 = 131073; /*0x332e*/ - n327684 = 327684; /*0x3338*/ - n196608_0 = 196608; /*0x3342*/ - n131073_1 = 131073; /*0x334c*/ - n327684_0 = 327684; /*0x3356*/ - n196608_1 = 196608; /*0x3360*/ - n524293 = 524293; /*0x336a*/ - n131073 = 131073; /*0x3374*/ - n458758 = 458758; /*0x337e*/ - n589828 = 589828; /*0x3388*/ - *(_WORD *)((char *)&n33686016 + 1) = 514; /*0x3392*/ - n2_0 = 2; /*0x339b*/ - LOBYTE(n33686016) = 1; /*0x33a2*/ - byte_7B39 = 1; /*0x33a9*/ - n257_3 = 257; /*0x33b0*/ - v162 = 1; /*0x33b7*/ - if ( !qword_7920 ) - { - if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *, __int64))(::BootServices + 320))( - &unk_7450, - 0, - &qword_7920, - 5) < 0 ) - { - v30 = 0x800000000000000EuLL; /*0x33e3*/ -LABEL_55: - sub_5408(64, "SetupDefaultLoadEntryPoint Sync PSURedundantMode with BMC Status: %r \n", v30); - HIWORD(n257) = 257; /*0x343f*/ - n8 = 8; /*0x3448*/ - n8_0 = 8; /*0x344e*/ - n1028 = 1799; /*0x3454*/ - n2 = 1; /*0x345d*/ - n2_2 = 2; /*0x3464*/ - n2_3 = 2; /*0x346b*/ - n2_4 = 2; /*0x3472*/ - n2_5 = 2; /*0x3479*/ - *(_WORD *)((char *)v234 + 1) = 0; /*0x3480*/ - n3_1 = 2; /*0x3488*/ - n2_14 = 0; /*0x348f*/ - *(_WORD *)&v254[1] = 0; /*0x3496*/ - n3_3 = 0; /*0x349e*/ - HIBYTE(v258) = 0; /*0x34a5*/ - n2_23 = 0; /*0x34ac*/ - n2_12 = 1; /*0x34b3*/ - n2_8 = 0; /*0x34ba*/ - n2_21 = 0; /*0x34c1*/ - v232 = 0; /*0x34c8*/ - v238 = 0; /*0x34d0*/ - v239 = 0; /*0x34d8*/ - v245 = 0; /*0x34df*/ - n257_2 = 257; /*0x34e6*/ - v158 = 0; /*0x34ed*/ - BYTE2(n3276800) = 50; /*0x34f2*/ - v209 = 0x101010101010101LL; /*0x34f7*/ - v210 = 0x101010101010101LL; /*0x34fe*/ - v211 = 0x101010101010101LL; /*0x3505*/ - v212 = 0x101010101010101LL; /*0x350c*/ - v206[0] = 1; /*0x3513*/ - n256 = 256; /*0x351a*/ - v205 = 0; /*0x3523*/ - v273 = 1; /*0x352a*/ - n2_10 = 1; /*0x3531*/ - goto LABEL_68; /*0x3538*/ - } - v29 = qword_7920; /*0x33ef*/ - } - LOBYTE(n5) = 32; /*0x33fb*/ - LOBYTE(n115) = 46; /*0x340a*/ - v30 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, __int16 *, char, char *, char *))(v29 + 16))( /*0x3423*/ - v29, - n115, - 0, - n5, - &n257_3, - 2, - v187, - &v162); - goto LABEL_55; /*0x3423*/ - } - if ( n33 != 7 ) /*0x22de*/ - { - if ( !n33 ) /*0x22e6*/ - { - n2_1 = 0; /*0x2a06*/ - n10 = 10; /*0x2a0d*/ - v2 = 1; /*0x2a14*/ - v160[0] = 10; /*0x2a17*/ - n2000 = 2560; /*0x2a1c*/ - n196608 = 196608; /*0x2a21*/ - n131073_0 = 131073; /*0x2a2b*/ - n327684 = 327684; /*0x2a35*/ - n196608_0 = 196608; /*0x2a3f*/ - n131073_1 = 131073; /*0x2a49*/ - n327684_0 = 327684; /*0x2a53*/ - n196608_1 = 196608; /*0x2a5d*/ - n524293 = 524293; /*0x2a67*/ - n131073 = 131073; /*0x2a71*/ - n458758 = 458758; /*0x2a7b*/ - n589828 = 589828; /*0x2a85*/ - n2 = 2; /*0x2a8f*/ - *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x2a96*/ - byte_7A20 = 1; /*0x2a9e*/ - LOWORD(n33686016) = 512; /*0x2aa5*/ - BYTE2(n33686016) = 2; /*0x2aae*/ - n2_0 = 2; /*0x2ab5*/ - n2_8 = 0; /*0x2abc*/ - n16843009 = 16843009; /*0x2ac3*/ - v262 = 1; /*0x2acd*/ - v266 = 0; /*0x2ad4*/ - n2_12 = 1; /*0x2adb*/ - v209 = 0x101010101010101LL; /*0x2ae2*/ - v210 = 0x101010101010101LL; /*0x2ae9*/ - v211 = 0x101010101010101LL; /*0x2af0*/ - v212 = 0x101010101010101LL; /*0x2af7*/ - n256 = 256; /*0x2afe*/ - n2_21 = 1; /*0x2b07*/ - n3_1 = 2; /*0x2b0e*/ - n2_14 = 1; /*0x2b15*/ - n2_23 = 1; /*0x2b1c*/ - HIBYTE(v258) = 7; /*0x2b23*/ - v254[2] = 0; /*0x2b2a*/ - LOBYTE(n257) = 1; /*0x2b31*/ - v234[0] = 2; /*0x2b38*/ - LOBYTE(v234[1]) = 0; /*0x2b40*/ - v274 = 1; /*0x2b47*/ - v205 = 1; /*0x2b4e*/ - n3276800 = 3276801; /*0x2b55*/ - v269 = 0; /*0x2b5d*/ - v161[0] = 1; /*0x2b64*/ - HIWORD(n257) = 0; /*0x2b69*/ - n257_2 = 257; /*0x2b71*/ -LABEL_62: - *(_WORD *)v254 = 0; /*0x3689*/ - n3_3 = 0; /*0x3691*/ - v283 = 0; /*0x3698*/ - goto LABEL_63; /*0x3698*/ - } - v18 = n33 - 1; /*0x22ec*/ - if ( !v18 ) /*0x22ee*/ - { - n2_1 = 0; /*0x286d*/ - n10 = 10; /*0x2874*/ - v2 = 1; /*0x287b*/ - v160[0] = 10; /*0x287e*/ - n2000 = 2560; /*0x2883*/ - n196608 = 196608; /*0x2888*/ - n131073_0 = 131073; /*0x2892*/ - n327684 = 327684; /*0x289c*/ - n196608_0 = 196608; /*0x28a6*/ - n131073_1 = 131073; /*0x28b0*/ - n327684_0 = 327684; /*0x28ba*/ - n196608_1 = 196608; /*0x28c4*/ - n524293 = 524293; /*0x28ce*/ - n131073 = 131073; /*0x28d8*/ - n458758 = 458758; /*0x28e2*/ - n589828 = 589828; /*0x28ec*/ - n2 = 2; /*0x28f6*/ - *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x28fd*/ - byte_7A20 = 1; /*0x2905*/ - LOWORD(n33686016) = 512; /*0x290c*/ - BYTE2(n33686016) = 2; /*0x2915*/ - n2_0 = 2; /*0x291c*/ - n2_8 = 0; /*0x2923*/ - n16843009 = 16843009; /*0x292a*/ - v262 = 1; /*0x2934*/ - v266 = 0; /*0x293b*/ - n2_12 = 1; /*0x2942*/ - v209 = 0x101010101010101LL; /*0x2949*/ - v210 = 0x101010101010101LL; /*0x2950*/ - v211 = 0x101010101010101LL; /*0x2957*/ - v212 = 0x101010101010101LL; /*0x295e*/ - n256 = 256; /*0x2965*/ - n2_21 = 0; /*0x296e*/ - n3_1 = 2; /*0x2975*/ - n2_14 = 1; /*0x297c*/ - n2_23 = 0; /*0x2983*/ - memset(v254, 0, sizeof(v254)); /*0x298a*/ - n3_3 = 0; /*0x2992*/ - HIBYTE(v258) = 0; /*0x2999*/ - LOBYTE(n257) = 1; /*0x29a7*/ - v234[0] = 2; /*0x29ae*/ - LOBYTE(v234[1]) = 0; /*0x29b6*/ - n2_10 = 0; /*0x29bd*/ - v274 = 1; /*0x29c4*/ - v205 = 1; /*0x29cb*/ - n3276800 = 3276801; /*0x29d2*/ - v269 = 0; /*0x29da*/ - v161[0] = 1; /*0x29e1*/ - HIWORD(n257) = 0; /*0x29e6*/ - n257_2 = 257; /*0x29ee*/ - v283 = 1; /*0x29f5*/ -LABEL_64: - v158 = 0; /*0x36a6*/ - goto LABEL_65; /*0x36a6*/ - } - v19 = v18 - 1; /*0x22f4*/ - if ( !v19 ) /*0x22f6*/ - { - n2_1 = 1; /*0x26c6*/ - v2 = 1; /*0x26cd*/ - n196608 = 196608; /*0x26d0*/ - n131073_0 = 131073; /*0x26da*/ - n327684 = 327684; /*0x26e4*/ - n196608_0 = 196608; /*0x26f1*/ - n10 = 10; /*0x26fb*/ - n2000 = 2000; /*0x2702*/ - n2000_1 = 2000; /*0x2707*/ - n131073_1 = 131073; /*0x270e*/ - n327684_0 = 327684; /*0x2718*/ - n196608_1 = 196608; /*0x2722*/ - n524293 = 524293; /*0x272c*/ - n131073 = 131073; /*0x2736*/ - n458758 = 458758; /*0x2740*/ - n589828 = 589828; /*0x274a*/ - n2 = 0; /*0x2754*/ - *(__int16 *)((char *)&word_7A74 + 1) = 257; /*0x275b*/ - byte_7A20 = 1; /*0x2764*/ - n33686016 = 16843010; /*0x276b*/ - n2_0 = 1; /*0x2775*/ - n2_8 = 0; /*0x277c*/ - n16843009 = 16843009; /*0x2783*/ - v262 = 1; /*0x278d*/ - v266 = 0; /*0x2794*/ - v209 = 0x101010101010101LL; /*0x279b*/ - v210 = 0x101010101010101LL; /*0x27a2*/ - v211 = 0x101010101010101LL; /*0x27a9*/ - v212 = 0x101010101010101LL; /*0x27b0*/ - n256 = 1; /*0x27b7*/ - n3_1 = 2; /*0x27be*/ - n2_14 = 1; /*0x27c5*/ - n2_23 = 1; /*0x27cc*/ - v254[2] = 0; /*0x27d3*/ - LOBYTE(n257) = 0; /*0x27da*/ - v247 = 1; /*0x27e1*/ - v257 = 1; /*0x27e8*/ - v234[0] = 2; /*0x27ef*/ - LOBYTE(v234[1]) = 0; /*0x27f7*/ - n257_1 = 257; /*0x27fe*/ - v242 = 0; /*0x2807*/ - v243 = 1; /*0x280f*/ - v274 = 1; /*0x2816*/ - v205 = 1; /*0x281d*/ - n3276800 = 3276800; /*0x2824*/ - v269 = 0; /*0x282c*/ - n257_2 = 257; /*0x2833*/ - n3_2 = 3; /*0x283a*/ - v270 = 1; /*0x2840*/ - v236 = 1; /*0x2847*/ - v272 = 1; /*0x284e*/ - v207 = 0; /*0x2855*/ - v287 = 0; /*0x285c*/ -LABEL_61: - HIBYTE(v258) = 0; /*0x366f*/ - v160[0] = 1; /*0x3676*/ - HIWORD(n257) = 257; /*0x367b*/ - v161[0] = 0; /*0x3684*/ - goto LABEL_62; /*0x3684*/ - } - v20 = v19 - 1; /*0x22fc*/ - if ( !v20 ) /*0x22fe*/ - { - n2_1 = 1; /*0x2525*/ - v2 = 1; /*0x252c*/ - n196608 = 196608; /*0x252f*/ - n131073_0 = 131073; /*0x2539*/ - n327684 = 327684; /*0x2543*/ - n196608_0 = 196608; /*0x2550*/ - n10 = 10; /*0x255a*/ - n2000 = 2000; /*0x2561*/ - n2000_1 = 2000; /*0x2566*/ - n131073_1 = 131073; /*0x256d*/ - n327684_0 = 327684; /*0x2577*/ - n196608_1 = 196608; /*0x2581*/ - n524293 = 524293; /*0x258b*/ - n131073 = 131073; /*0x2595*/ - n458758 = 458758; /*0x259f*/ - n589828 = 589828; /*0x25a9*/ - n2 = 0; /*0x25b3*/ - *(__int16 *)((char *)&word_7A74 + 1) = 257; /*0x25ba*/ - byte_7A20 = 1; /*0x25c3*/ - n33686016 = 16843010; /*0x25ca*/ - n2_0 = 1; /*0x25d4*/ - n2_8 = 0; /*0x25db*/ - n16843009 = 16843009; /*0x25e2*/ - v262 = 1; /*0x25ec*/ - v266 = 0; /*0x25f3*/ - v209 = 0x101010101010101LL; /*0x25fa*/ - v210 = 0x101010101010101LL; /*0x2601*/ - v211 = 0x101010101010101LL; /*0x2608*/ - v212 = 0x101010101010101LL; /*0x260f*/ - n3_1 = 2; /*0x2616*/ - n2_14 = 1; /*0x261d*/ - n2_23 = 1; /*0x2624*/ - v254[2] = 0; /*0x262b*/ - LOBYTE(n257) = 0; /*0x2632*/ - v247 = 1; /*0x2639*/ - v257 = 1; /*0x2640*/ - v234[0] = 2; /*0x2647*/ - LOBYTE(v234[1]) = 0; /*0x264f*/ - n257_1 = 257; /*0x2656*/ - v242 = 0; /*0x265f*/ - v243 = 0; /*0x2667*/ - v274 = 1; /*0x266f*/ - v205 = 1; /*0x2676*/ - n3276800 = 3276800; /*0x267d*/ - v269 = 0; /*0x2685*/ - n257_2 = 257; /*0x268c*/ - n3_2 = 3; /*0x2693*/ - v270 = 1; /*0x2699*/ - v236 = 1; /*0x26a0*/ - v272 = 1; /*0x26a7*/ - v207 = 0; /*0x26ae*/ - v287 = 0; /*0x26b5*/ -LABEL_60: - n256 = 256; /*0x3666*/ - goto LABEL_61; /*0x3666*/ - } - v21 = v20 - 1; /*0x2304*/ - if ( !v21 ) /*0x2306*/ - { - n2_1 = 2; /*0x245d*/ - n10 = 10; /*0x2464*/ - LOWORD(n131073_0) = 1; /*0x246b*/ - n327684 = 262146; /*0x2472*/ - n5 = 5; /*0x247c*/ - n196608_1 = 3; /*0x2484*/ - n524293 = 327688; /*0x248e*/ - n131073 = 131073; /*0x2498*/ - n458758 = 458758; /*0x24a2*/ - n2 = 1; /*0x24ac*/ - *(__int16 *)((char *)&word_7A74 + 1) = 0; /*0x24b3*/ - LOWORD(n33686016) = 512; /*0x24bb*/ - v262 = 1; /*0x24c4*/ - v266 = 0; /*0x24cb*/ - n3_1 = 0; /*0x24d2*/ - n2_23 = 0; /*0x24d9*/ - n2_14 = 0; /*0x24e0*/ - v254[2] = 1; /*0x24e7*/ - memset(v234, 2, 3); /*0x24ee*/ - v205 = 0; /*0x24fe*/ - v274 = 0; /*0x2505*/ - n3276800 = 3276800; /*0x250c*/ - v269 = 0; /*0x2514*/ -LABEL_59: - n196608 = 196608; /*0x35f9*/ - v2 = 1; /*0x3603*/ - n196608_0 = 196608; /*0x3606*/ - n2000 = 2560; /*0x3610*/ - n16843009 = 16843009; /*0x3615*/ - n2_8 = 0; /*0x361f*/ - n2_0 = 2; /*0x3626*/ - BYTE2(n33686016) = 2; /*0x362d*/ - byte_7A20 = 1; /*0x3634*/ - n589828 = 589828; /*0x363b*/ - n327684_0 = 327684; /*0x3645*/ - n131073_1 = 131073; /*0x364f*/ - n257_2 = 0; /*0x3659*/ - LOBYTE(n257) = 1; /*0x365f*/ - goto LABEL_60; /*0x365f*/ - } - v22 = v21 - 1; /*0x230c*/ - if ( !v22 ) /*0x230e*/ - { - n2_1 = 2; /*0x23af*/ - n196608_1 = 3; /*0x23b6*/ - n524293 = 327688; /*0x23bc*/ - n131073 = 131073; /*0x23c6*/ - n458758 = 458758; /*0x23d3*/ - n10 = 10; /*0x23dd*/ - n2 = 2; /*0x23e4*/ - *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x23eb*/ - LOWORD(n33686016) = 512; /*0x23f4*/ - v266 = 1; /*0x23fd*/ - v209 = 0x101010101010101LL; /*0x2404*/ - v210 = 0x101010101010101LL; /*0x240b*/ - v211 = 0x101010101010101LL; /*0x2412*/ - v212 = 0x101010101010101LL; /*0x2419*/ - n3_1 = 3; /*0x2420*/ - v254[2] = 1; /*0x2426*/ - memset(v234, 2, 3); /*0x242d*/ - v269 = 0; /*0x243d*/ - v205 = 1; /*0x2444*/ - n3276800 = 16842752; /*0x244b*/ -LABEL_58: - n131073_0 = 131073; /*0x35d7*/ - n327684 = 327684; /*0x35e1*/ - n2_23 = 1; /*0x35eb*/ - v274 = 1; /*0x35f2*/ - goto LABEL_59; /*0x35f2*/ - } - if ( v22 == 1 ) /*0x2316*/ - { - n2_1 = 2; /*0x2321*/ - n131073 = 393217; /*0x2328*/ - n458758 = 458754; /*0x2332*/ - n2 = 0; /*0x233c*/ - *(__int16 *)((char *)&word_7A74 + 1) = 256; /*0x2346*/ - n10 = 10; /*0x234f*/ - LOWORD(n33686016) = 512; /*0x2356*/ - v266 = 1; /*0x235f*/ - v209 = 0x101010101010101LL; /*0x2366*/ - v210 = 0x101010101010101LL; /*0x236d*/ - v211 = 0x101010101010101LL; /*0x2374*/ - v212 = 0x101010101010101LL; /*0x237b*/ - n3_1 = 3; /*0x2382*/ - v254[2] = 1; /*0x2388*/ - v269 = 0; /*0x238f*/ - v205 = 1; /*0x2396*/ - n3276800 = 0x10000; /*0x239d*/ -LABEL_57: - v262 = 1; /*0x35ad*/ - n524293 = 524293; /*0x35b4*/ - n196608_1 = 196608; /*0x35be*/ - LOBYTE(v234[1]) = 0; /*0x35c8*/ - v234[0] = 2; /*0x35cf*/ - goto LABEL_58; /*0x35cf*/ - } - goto LABEL_45; /*0x2316*/ - } -LABEL_68: - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x36dc*/ - L"SocketProcessorCoreConfig", - &unk_7410, - v173, - n301, - &v261); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3731*/ - L"SocketMpLinkConfig", - &unk_74A0, - v191, - n341, - v233); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x375d*/ - L"SocketPowerManagementConfig", - &unk_7430, - v175, - n462, - v246); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x378c*/ - L"SocketIioConfig", - &unk_7470, - v170, - 6668, - v206); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x37b8*/ - L"SocketMemoryConfig", - &unk_73E0, - v192, - n514, - v237); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x37e4*/ - L"SocketCommonRcConfig", - &unk_74B0, - v174, - n224, - v230); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3810*/ - L"PchRcConfiguration", - &unk_73B0, - v193, - n1495, - v286); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x383d*/ - L"Setup", - &unk_7568, - v169, - n814, - &byte_7A20); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3869*/ - L"IntelSetup", - &unk_75D8, - v179, - n676, - v268); - (*(void (__fastcall **)(const __int16 *, _DWORD *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3890*/ - L"AMITSESetup", - v171, - v180, - n81, - v204); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x38ba*/ - L"PNP0501_1_NV", - &unk_74E0, - v181, - n3, - v161); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, __int16 *))(RuntimeServices + 88))( /*0x38e6*/ - L"NetworkStackVar", - &unk_74C0, - v172, - 10, - &n257_2); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x3912*/ - L"ServerSetup", - &unk_7460, - v182, - n1072, - v278); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _WORD *))(RuntimeServices + 88))( /*0x393c*/ - L"Timeout", - &unk_75C8, - v183, - n2, - v160); -LABEL_69: - v293 = 0; /*0x393f*/ - v292 = 0; /*0x3954*/ - sub_5768(&v293, &v292); /*0x395b*/ - n256_1 = HIBYTE(n256); /*0x3960*/ - if ( (_BYTE)n256 != HIBYTE(n256) && !v3 ) /*0x3981*/ - { - if ( (_BYTE)n256 ) /*0x3989*/ - { - v215 = 1; /*0x3999*/ - n16843009_1 = 16843009; /*0x39a0*/ - n16843009_2 = 16843009; /*0x39a6*/ - n22 = 22; /*0x39ac*/ - v223 = 1; /*0x39af*/ - v216 = 1; /*0x39b6*/ - v224 = 1; /*0x39bd*/ - do /*0x39f6*/ - { - v206[n22 + 11] = 0; /*0x39c4*/ - v206[n22 + 95] = 0; /*0x39cc*/ - v208[n22] = 0; /*0x39d4*/ - v208[n22 + 126] = 0; /*0x39dd*/ - v208[n22++ + 252] = 0; /*0x39e6*/ - } - while ( n22 < 0x1A ); /*0x39f6*/ - for ( i = 30; i < 0x22; ++i ) /*0x39f8*/ - { - v206[i + 11] = 0; /*0x39fb*/ - v206[i + 95] = 0; /*0x3a03*/ - v208[i] = 0; /*0x3a0b*/ - v208[i + 126] = 0; /*0x3a14*/ - v208[i + 252] = 0; /*0x3a1d*/ - } - } - else - { - v215 = 0; /*0x3a34*/ - n22_1 = 22; /*0x3a3b*/ - v223 = 0; /*0x3a3e*/ - v216 = 0; /*0x3a4a*/ - v224 = 0; /*0x3a51*/ - n16843009_1 = 0; /*0x3a58*/ - n16843009_2 = 0; /*0x3a5f*/ - do /*0x3a95*/ - { - v206[n22_1 + 11] = 1; /*0x3a66*/ - v206[n22_1 + 95] = 1; /*0x3a6e*/ - v208[n22_1] = 1; /*0x3a76*/ - v208[n22_1 + 126] = 32; /*0x3a7e*/ - v208[n22_1++ + 252] = 32; /*0x3a86*/ - } - while ( n22_1 < 0x1A ); /*0x3a95*/ - for ( j = 30; j < 0x22; ++j ) /*0x3a97*/ - { - v206[j + 11] = 1; /*0x3a9a*/ - v206[j + 95] = 1; /*0x3aa2*/ - v208[j] = 1; /*0x3aaa*/ - v208[j + 126] = 32; /*0x3ab2*/ - v208[j + 252] = 32; /*0x3aba*/ - } - } - n256_1 = HIBYTE(n256); /*0x3acb*/ - v2 = 1; /*0x3ad1*/ - } - v36 = v293; /*0x3ad4*/ - v37 = v292; /*0x3adb*/ - if ( v227 != v293 || v228 != v292 ) /*0x3af2*/ - goto LABEL_86; /*0x3af2*/ - if ( (_BYTE)n256 == n256_1 ) /*0x3afa*/ - goto LABEL_119; /*0x3afa*/ - if ( !v3 ) /*0x3b03*/ - { -LABEL_86: - sub_5B28(17170432, &v184); /*0x3b12*/ - n3_4 = 1; /*0x3b1f*/ - v213 = 0; /*0x3b21*/ - v221 = 0; /*0x3b28*/ - if ( v184 == 1 ) /*0x3b32*/ - { - v214 = 0; /*0x3b38*/ - v222 = 0; /*0x3b3f*/ - LOWORD(v217[0]) = 0; /*0x3b46*/ - n257_4 = 0; /*0x3b4e*/ - do /*0x3b88*/ - { - v206[n3_4 + 11] = 0; /*0x3b56*/ - v206[n3_4 + 95] = 0; /*0x3b5e*/ - v208[n3_4] = 0; /*0x3b66*/ - v208[n3_4 + 126] = 0; /*0x3b6f*/ - v208[n3_4++ + 252] = 0; /*0x3b78*/ - } - while ( n3_4 < 3 ); /*0x3b88*/ - for ( k = 9; k < 0xB; ++k ) /*0x3b90*/ - { - v206[k + 11] = 0; /*0x3b93*/ - v206[k + 95] = 0; /*0x3b9b*/ - v208[k] = 0; /*0x3ba3*/ - v208[k + 126] = 0; /*0x3bac*/ - v208[k + 252] = 0; /*0x3bb5*/ - } - if ( (_BYTE)n256 ) /*0x3bce*/ - { - if ( v36 ) /*0x3bd3*/ - { - v213 = 1; /*0x3bd5*/ - v221 = 1; /*0x3bdb*/ - LOWORD(v217[0]) = 257; /*0x3be1*/ - } - if ( v37 ) /*0x3bed*/ - { - v214 = 1; /*0x3bf3*/ - v222 = 1; /*0x3bf9*/ - n257_4 = 257; /*0x3bff*/ - } - } - else - { - if ( v36 ) /*0x3c15*/ - { - for ( m = 1; m < 3; ++m ) /*0x3c17*/ - { - v206[m + 11] = 1; /*0x3c1a*/ - v206[m + 95] = 1; /*0x3c21*/ - v208[m] = 1; /*0x3c28*/ - v208[m + 126] = 32; /*0x3c30*/ - v208[m + 252] = 32; /*0x3c38*/ - } - } - if ( v37 ) /*0x3c4c*/ - { - for ( n = 9; n < 0xB; ++n ) /*0x3c52*/ - { - v206[n + 11] = 1; /*0x3c55*/ - v206[n + 95] = 1; /*0x3c5c*/ - v208[n] = 1; /*0x3c63*/ - v208[n + 126] = 32; /*0x3c6b*/ - v208[n + 252] = 32; /*0x3c73*/ - } - } - } - } - else - { - v217[0] = 0; /*0x3c89*/ - do /*0x3cc2*/ - { - v206[n3_4 + 11] = 0; /*0x3c90*/ - v206[n3_4 + 95] = 0; /*0x3c98*/ - v208[n3_4] = 0; /*0x3ca0*/ - v208[n3_4 + 126] = 0; /*0x3ca9*/ - v208[n3_4++ + 252] = 0; /*0x3cb2*/ - } - while ( n3_4 < 5 ); /*0x3cc2*/ - if ( (_BYTE)n256 ) /*0x3ccb*/ - { - v213 = 0; /*0x3ccd*/ - if ( v36 ) /*0x3cd7*/ - { - v213 = 1; /*0x3cd9*/ - v221 = 1; /*0x3cdf*/ - LOWORD(v217[0]) = 257; /*0x3ce5*/ - } - if ( v37 ) /*0x3cf1*/ - { - v213 = 1; /*0x3cf7*/ - v221 = 1; /*0x3cfd*/ - HIWORD(v217[0]) = 257; /*0x3d03*/ - } - } - else - { - if ( v36 ) /*0x3d16*/ - { - for ( ii = 1; ii < 3; ++ii ) /*0x3d18*/ - { - v206[ii + 11] = 1; /*0x3d1b*/ - v206[ii + 95] = 1; /*0x3d22*/ - v208[ii] = 1; /*0x3d29*/ - v208[ii + 126] = 32; /*0x3d31*/ - v208[ii + 252] = 32; /*0x3d39*/ - } - } - if ( v37 ) /*0x3d4d*/ - { - for ( jj = 3; jj < 5; ++jj ) /*0x3d4f*/ - { - v206[jj + 11] = 1; /*0x3d54*/ - v206[jj + 95] = 1; /*0x3d5b*/ - v208[jj] = 1; /*0x3d62*/ - v208[jj + 126] = 32; /*0x3d6a*/ - v208[jj + 252] = 32; /*0x3d72*/ - } - } - } - } - n256_1 = HIBYTE(n256); /*0x3d83*/ - v2 = 1; /*0x3d89*/ - v227 = v36; /*0x3d8b*/ - v228 = v37; /*0x3d92*/ - } - if ( (_BYTE)n256 != n256_1 ) /*0x3da8*/ - { - v2 = 1; /*0x3daa*/ - HIBYTE(n256) = n256; /*0x3dac*/ - } -LABEL_119: - sub_5408(64, "(Before sync) ValidFlag = %x\n", v2); /*0x3db2*/ - v44 = 0; /*0x3dcb*/ - if ( v213 ) /*0x3dd7*/ - { - sub_5408(64, "VMDEnabled[0] Enable\n"); /*0x3f0b*/ - if ( v221 != 1 ) /*0x3f1b*/ - { - v221 = 1; /*0x3f24*/ - v2 = 1; /*0x3f2d*/ - sub_5408(64, "Hotplug\n"); /*0x3f2f*/ - } - while ( 1 ) /*0x3f5c*/ - { - sub_5408(64, "Index = %x\n", v44); /*0x3f5c*/ - if ( *((_BYTE *)v217 + v44) ) /*0x3f66*/ - { - sub_5408(64, "VMDPortEnable\n"); /*0x4036*/ - if ( v206[v44 + 12] ) /*0x403b*/ - { - v206[v44 + 12] = 0; /*0x4048*/ - v2 = 1; /*0x4055*/ - sub_5408(64, "1\n"); /*0x4058*/ - } - if ( v206[v44 + 96] ) /*0x405d*/ - { - v206[v44 + 96] = 0; /*0x406a*/ - v2 = 1; /*0x4077*/ - sub_5408(64, "2\n"); /*0x407a*/ - } - if ( v208[v44 + 1] ) /*0x407f*/ - { - v208[v44 + 1] = 0; /*0x4091*/ - v2 = 1; /*0x409f*/ - sub_5408(64, "3\n"); /*0x40a2*/ - } - if ( v208[v44 + 127] ) /*0x40a7*/ - { - v208[v44 + 127] = 0; /*0x40b9*/ - v2 = 1; /*0x40c7*/ - sub_5408(64, "4\n"); /*0x40ca*/ - } - if ( !v208[v44 + 253] ) /*0x40d8*/ - goto LABEL_159; /*0x40d8*/ - v208[v44 + 253] = 0; /*0x40da*/ - } - else - { - sub_5408(64, "VMDPortDisble\n"); /*0x3f7b*/ - if ( v206[v44 + 12] != 1 ) /*0x3f88*/ - { - v206[v44 + 12] = 1; /*0x3f8d*/ - v2 = 1; /*0x3f9a*/ - sub_5408(64, "1\n"); /*0x3f9d*/ - } - if ( v206[v44 + 96] != 1 ) /*0x3faa*/ - { - v206[v44 + 96] = 1; /*0x3faf*/ - v2 = 1; /*0x3fbc*/ - sub_5408(64, "2\n"); /*0x3fbf*/ - } - if ( v208[v44 + 1] != 1 ) /*0x3fcc*/ - { - v208[v44 + 1] = 1; /*0x3fd5*/ - v2 = 1; /*0x3fe2*/ - sub_5408(64, "3\n"); /*0x3fe5*/ - } - if ( v208[v44 + 127] != 32 ) /*0x3ff3*/ - { - v208[v44 + 127] = 32; /*0x3ffc*/ - v2 = 1; /*0x400a*/ - sub_5408(64, "4\n"); /*0x400d*/ - } - if ( v208[v44 + 253] == 32 ) /*0x401b*/ - goto LABEL_159; /*0x401b*/ - v208[v44 + 253] = 32; /*0x4021*/ - } - v2 = 1; /*0x40ef*/ - sub_5408(64, "5\n"); /*0x40f2*/ -LABEL_159: - if ( (unsigned __int64)++v44 >= 4 ) /*0x40fe*/ - goto LABEL_160; /*0x40fe*/ - } - } - sub_5408(64, "VMDEnabled[0] Disable\n"); /*0x3de4*/ - if ( v221 ) /*0x3df0*/ - { - v221 = 0; /*0x3df9*/ - v2 = 1; /*0x3e03*/ - sub_5408(64, "Hotplug\n"); /*0x3e06*/ - } - for ( kk = 1; kk < 5; ++kk ) /*0x3e17*/ - { - sub_5408(64, "Index = %x\n", kk); /*0x3e33*/ - if ( v206[kk + 11] != 1 ) /*0x3e40*/ - { - v206[kk + 11] = 1; /*0x3e45*/ - v2 = 1; /*0x3e52*/ - sub_5408(64, "1\n"); /*0x3e55*/ - } - if ( v206[kk + 95] != 1 ) /*0x3e62*/ - { - v206[kk + 95] = 1; /*0x3e67*/ - v2 = 1; /*0x3e74*/ - sub_5408(64, "2\n"); /*0x3e77*/ - } - if ( v208[kk] != 1 ) /*0x3e84*/ - { - v208[kk] = 1; /*0x3e8d*/ - v2 = 1; /*0x3e9a*/ - sub_5408(64, "3\n"); /*0x3e9d*/ - } - if ( v208[kk + 126] != 32 ) /*0x3eab*/ - { - v208[kk + 126] = 32; /*0x3eb4*/ - v2 = 1; /*0x3ec2*/ - sub_5408(64, "4\n"); /*0x3ec5*/ - } - if ( v208[kk + 252] != 32 ) /*0x3ed3*/ - { - v208[kk + 252] = 32; /*0x3edc*/ - v2 = 1; /*0x3eea*/ - sub_5408(64, "5\n"); /*0x3eed*/ - } - } -LABEL_160: - n22_2 = 22; /*0x4104*/ - if ( v214 ) /*0x4113*/ - { - sub_5408(64, "VMDEnabled[2] Enable\n"); /*0x4244*/ - if ( v222 != 1 ) /*0x4252*/ - { - v222 = 1; /*0x425b*/ - v2 = 1; /*0x4263*/ - sub_5408(64, "Hotplug\n"); /*0x4265*/ - } - n8 = 8; /*0x426a*/ - while ( 1 ) /*0x4288*/ - { - sub_5408(64, "Index = %x\n", n8); /*0x4288*/ - if ( *((_BYTE *)v217 + n8) ) /*0x4292*/ - { - sub_5408(64, "VMDPortEnable\n"); /*0x4362*/ - if ( v206[n8 + 12] ) /*0x4367*/ - { - v206[n8 + 12] = 0; /*0x4374*/ - v2 = 1; /*0x4381*/ - sub_5408(64, "1\n"); /*0x4384*/ - } - if ( v206[n8 + 96] ) /*0x4389*/ - { - v206[n8 + 96] = 0; /*0x4396*/ - v2 = 1; /*0x43a3*/ - sub_5408(64, "2\n"); /*0x43a6*/ - } - if ( v208[n8 + 1] ) /*0x43ab*/ - { - v208[n8 + 1] = 0; /*0x43bd*/ - v2 = 1; /*0x43cb*/ - sub_5408(64, "3\n"); /*0x43ce*/ - } - if ( v208[n8 + 127] ) /*0x43d3*/ - { - v208[n8 + 127] = 0; /*0x43e5*/ - v2 = 1; /*0x43f3*/ - sub_5408(64, "4\n"); /*0x43f6*/ - } - if ( !v208[n8 + 253] ) /*0x4404*/ - goto LABEL_201; /*0x4404*/ - v208[n8 + 253] = 0; /*0x4406*/ - } - else - { - sub_5408(64, "VMDPortDisble\n"); /*0x42a7*/ - if ( v206[n8 + 12] != 1 ) /*0x42b4*/ - { - v206[n8 + 12] = 1; /*0x42b9*/ - v2 = 1; /*0x42c6*/ - sub_5408(64, "1\n"); /*0x42c9*/ - } - if ( v206[n8 + 96] != 1 ) /*0x42d6*/ - { - v206[n8 + 96] = 1; /*0x42db*/ - v2 = 1; /*0x42e8*/ - sub_5408(64, "2\n"); /*0x42eb*/ - } - if ( v208[n8 + 1] != 1 ) /*0x42f8*/ - { - v208[n8 + 1] = 1; /*0x4301*/ - v2 = 1; /*0x430e*/ - sub_5408(64, "3\n"); /*0x4311*/ - } - if ( v208[n8 + 127] != 32 ) /*0x431f*/ - { - v208[n8 + 127] = 32; /*0x4328*/ - v2 = 1; /*0x4336*/ - sub_5408(64, "4\n"); /*0x4339*/ - } - if ( v208[n8 + 253] == 32 ) /*0x4347*/ - goto LABEL_201; /*0x4347*/ - v208[n8 + 253] = 32; /*0x434d*/ - } - v2 = 1; /*0x441b*/ - sub_5408(64, "5\n"); /*0x441e*/ -LABEL_201: - if ( (unsigned __int64)++n8 >= 0xA ) /*0x442e*/ - { - n22_2 = 22; /*0x4434*/ - goto LABEL_203; /*0x4434*/ - } - } - } - sub_5408(64, "VMDEnabled[2] Disable\n"); /*0x4123*/ - if ( v222 ) /*0x412f*/ - { - v222 = 0; /*0x4138*/ - v2 = 1; /*0x4142*/ - sub_5408(64, "Hotplug\n"); /*0x4145*/ - } - for ( mm = 9; mm < 0xB; ++mm ) /*0x414a*/ - { - sub_5408(64, "Index = %x\n", mm); /*0x4165*/ - if ( v206[mm + 11] != 1 ) /*0x4172*/ - { - v206[mm + 11] = 1; /*0x4177*/ - v2 = 1; /*0x4184*/ - sub_5408(64, "1\n"); /*0x4187*/ - } - if ( v206[mm + 95] != 1 ) /*0x4194*/ - { - v206[mm + 95] = 1; /*0x4199*/ - v2 = 1; /*0x41a6*/ - sub_5408(64, "2\n"); /*0x41a9*/ - } - if ( v208[mm] != 1 ) /*0x41b6*/ - { - v208[mm] = 1; /*0x41bf*/ - v2 = 1; /*0x41cc*/ - sub_5408(64, "3\n"); /*0x41cf*/ - } - if ( v208[mm + 126] != 32 ) /*0x41dd*/ - { - v208[mm + 126] = 32; /*0x41e6*/ - v2 = 1; /*0x41f4*/ - sub_5408(64, "4\n"); /*0x41f7*/ - } - if ( v208[mm + 252] != 32 ) /*0x4205*/ - { - v208[mm + 252] = 32; /*0x420e*/ - v2 = 1; /*0x421c*/ - sub_5408(64, "5\n"); /*0x421f*/ - } - } -LABEL_203: - n12 = 12; /*0x4438*/ - if ( v215 ) /*0x4449*/ - { - sub_5408(64, "VMDEnabled[3] Enable\n"); /*0x4577*/ - if ( v223 != 1 ) /*0x4589*/ - { - v223 = 1; /*0x4592*/ - v2 = 1; /*0x459d*/ - sub_5408(64, "Hotplug\n"); /*0x45a0*/ - } - while ( 1 ) /*0x45ba*/ - { - sub_5408(64, "Index = %x\n", n12); /*0x45ba*/ - if ( *((_BYTE *)v217 + n12) ) /*0x45c4*/ - { - sub_5408(64, "VMDPortEnable\n"); /*0x4696*/ - if ( v206[n12 + 21] ) /*0x469b*/ - { - v206[n12 + 21] = 0; /*0x46a8*/ - v2 = 1; /*0x46b5*/ - sub_5408(64, "1\n"); /*0x46b8*/ - } - if ( v206[n12 + 105] ) /*0x46bd*/ - { - v206[n12 + 105] = 0; /*0x46ca*/ - v2 = 1; /*0x46d7*/ - sub_5408(64, "2\n"); /*0x46da*/ - } - if ( v208[n12 + 10] ) /*0x46df*/ - { - v208[n12 + 10] = 0; /*0x46f0*/ - v2 = 1; /*0x46fd*/ - sub_5408(64, "3\n"); /*0x4700*/ - } - if ( v208[n12 + 136] ) /*0x4705*/ - { - v208[n12 + 136] = 0; /*0x4716*/ - v2 = 1; /*0x4723*/ - sub_5408(64, "4\n"); /*0x4726*/ - } - if ( !v208[n12 + 262] ) /*0x4733*/ - goto LABEL_242; /*0x4733*/ - v208[n12 + 262] = 0; /*0x4735*/ - } - else - { - sub_5408(64, "VMDPortDisble\n"); /*0x45d9*/ - if ( v206[n12 + 21] != 1 ) /*0x45e6*/ - { - v206[n12 + 21] = 1; /*0x45eb*/ - v2 = 1; /*0x45f8*/ - sub_5408(64, "1\n"); /*0x45fb*/ - } - if ( v206[n12 + 105] != 1 ) /*0x4608*/ - { - v206[n12 + 105] = 1; /*0x460d*/ - v2 = 1; /*0x461a*/ - sub_5408(64, "2\n"); /*0x461d*/ - } - if ( v208[n12 + 10] != 1 ) /*0x462b*/ - { - v208[n12 + 10] = 1; /*0x4634*/ - v2 = 1; /*0x4642*/ - sub_5408(64, "3\n"); /*0x4645*/ - } - if ( v208[n12 + 136] != 32 ) /*0x4653*/ - { - v208[n12 + 136] = 32; /*0x465c*/ - v2 = 1; /*0x466a*/ - sub_5408(64, "4\n"); /*0x466d*/ - } - if ( v208[n12 + 262] == 32 ) /*0x467b*/ - goto LABEL_242; /*0x467b*/ - v208[n12 + 262] = 32; /*0x4681*/ - } - v2 = 1; /*0x4749*/ - sub_5408(64, "5\n"); /*0x474c*/ -LABEL_242: - if ( (unsigned __int64)++n12 >= 0x10 ) /*0x4758*/ - goto LABEL_243; /*0x4758*/ - } - } - sub_5408(64, "VMDEnabled[3] Disable\n"); /*0x4456*/ - if ( v223 ) /*0x4467*/ - { - v223 = 0; /*0x4470*/ - v2 = 1; /*0x447a*/ - sub_5408(64, "Hotplug\n"); /*0x447d*/ - } - do /*0x455f*/ - { - sub_5408(64, "Index = %x\n", n22_2); /*0x4497*/ - if ( v206[n22_2 + 11] != 1 ) /*0x44a4*/ - { - v206[n22_2 + 11] = 1; /*0x44a9*/ - v2 = 1; /*0x44b6*/ - sub_5408(64, "1\n"); /*0x44b9*/ - } - if ( v206[n22_2 + 95] != 1 ) /*0x44c6*/ - { - v206[n22_2 + 95] = 1; /*0x44cb*/ - v2 = 1; /*0x44d8*/ - sub_5408(64, "2\n"); /*0x44db*/ - } - if ( v208[n22_2] != 1 ) /*0x44e9*/ - { - v208[n22_2] = 1; /*0x44f2*/ - v2 = 1; /*0x4500*/ - sub_5408(64, "3\n"); /*0x4503*/ - } - if ( v208[n22_2 + 126] != 32 ) /*0x4511*/ - { - v208[n22_2 + 126] = 32; /*0x451a*/ - v2 = 1; /*0x4528*/ - sub_5408(64, "4\n"); /*0x452b*/ - } - if ( v208[n22_2 + 252] != 32 ) /*0x4539*/ - { - v208[n22_2 + 252] = 32; /*0x4542*/ - v2 = 1; /*0x4550*/ - sub_5408(64, "5\n"); /*0x4553*/ - } - ++n22_2; /*0x4558*/ - } - while ( n22_2 < 0x1A ); /*0x455f*/ -LABEL_243: - n30 = 30; /*0x4760*/ - if ( v216 ) /*0x476d*/ - { - sub_5408(64, "VMDEnabled[5] Enable\n"); /*0x489a*/ - if ( v224 != 1 ) /*0x48a6*/ - { - v224 = 1; /*0x48af*/ - v2 = 1; /*0x48b9*/ - sub_5408(64, "Hotplug\n"); /*0x48bc*/ - } - n20 = 20; /*0x48c1*/ - while ( 1 ) /*0x48d3*/ - { - sub_5408(64, "Index = %x\n", n20); /*0x48d3*/ - if ( *((_BYTE *)v217 + n20) ) /*0x48db*/ - { - sub_5408(64, "VMDPortEnable\n"); /*0x49ab*/ - if ( v206[n20 + 21] ) /*0x49b0*/ - { - v206[n20 + 21] = 0; /*0x49bd*/ - v2 = 1; /*0x49c8*/ - sub_5408(64, "1\n"); /*0x49cb*/ - } - if ( v206[n20 + 105] ) /*0x49d0*/ - { - v206[n20 + 105] = 0; /*0x49dd*/ - v2 = 1; /*0x49e8*/ - sub_5408(64, "2\n"); /*0x49eb*/ - } - if ( v208[n20 + 10] ) /*0x49f0*/ - { - v208[n20 + 10] = 0; /*0x4a01*/ - v2 = 1; /*0x4a0c*/ - sub_5408(64, "3\n"); /*0x4a0f*/ - } - if ( v208[n20 + 136] ) /*0x4a14*/ - { - v208[n20 + 136] = 0; /*0x4a25*/ - v2 = 1; /*0x4a30*/ - sub_5408(64, "4\n"); /*0x4a33*/ - } - if ( !v208[n20 + 262] ) /*0x4a40*/ - goto LABEL_283; /*0x4a40*/ - v208[n20 + 262] = 0; /*0x4a42*/ - } - else - { - sub_5408(64, "VMDPortDisble\n"); /*0x48f0*/ - if ( v206[n20 + 21] != 1 ) /*0x48fd*/ - { - v206[n20 + 21] = 1; /*0x4902*/ - v2 = 1; /*0x490d*/ - sub_5408(64, "1\n"); /*0x4910*/ - } - if ( v206[n20 + 105] != 1 ) /*0x491d*/ - { - v206[n20 + 105] = 1; /*0x4922*/ - v2 = 1; /*0x492d*/ - sub_5408(64, "2\n"); /*0x4930*/ - } - if ( v208[n20 + 10] != 1 ) /*0x493e*/ - { - v208[n20 + 10] = 1; /*0x4947*/ - v2 = 1; /*0x4953*/ - sub_5408(64, "3\n"); /*0x4956*/ - } - if ( v208[n20 + 136] != 32 ) /*0x4968*/ - { - v208[n20 + 136] = 32; /*0x4971*/ - v2 = 1; /*0x497c*/ - sub_5408(64, "4\n"); /*0x497f*/ - } - if ( v208[n20 + 262] == 32 ) /*0x4991*/ - goto LABEL_283; /*0x4991*/ - v208[n20 + 262] = 32; /*0x4997*/ - } - v2 = 1; /*0x4a54*/ - sub_5408(64, "5\n"); /*0x4a57*/ -LABEL_283: - if ( (unsigned __int64)++n20 >= 0x18 ) /*0x4a63*/ - goto LABEL_284; /*0x4a63*/ - } - } - sub_5408(64, "VMDEnabled[5] Disable\n"); /*0x4781*/ - if ( v224 ) /*0x478d*/ - { - v224 = 0; /*0x4796*/ - v2 = 1; /*0x479f*/ - sub_5408(64, "Hotplug\n"); /*0x47a2*/ - } - do /*0x487c*/ - { - sub_5408(64, "Index = %x\n", n30); /*0x47b4*/ - if ( v206[n30 + 11] != 1 ) /*0x47c1*/ - { - v206[n30 + 11] = 1; /*0x47c6*/ - v2 = 1; /*0x47d1*/ - sub_5408(64, "1\n"); /*0x47d4*/ - } - if ( v206[n30 + 95] != 1 ) /*0x47e1*/ - { - v206[n30 + 95] = 1; /*0x47e6*/ - v2 = 1; /*0x47f1*/ - sub_5408(64, "2\n"); /*0x47f4*/ - } - if ( v208[n30] != 1 ) /*0x4802*/ - { - v208[n30] = 1; /*0x480b*/ - v2 = 1; /*0x4817*/ - sub_5408(64, "3\n"); /*0x481a*/ - } - if ( v208[n30 + 126] != 32 ) /*0x482d*/ - { - v208[n30 + 126] = 32; /*0x4836*/ - v2 = 1; /*0x4842*/ - sub_5408(64, "4\n"); /*0x4845*/ - } - if ( v208[n30 + 252] != 32 ) /*0x4858*/ - { - v208[n30 + 252] = 32; /*0x4861*/ - v2 = 1; /*0x486d*/ - sub_5408(64, "5\n"); /*0x4870*/ - } - ++n30; /*0x4875*/ - } - while ( n30 < 0x22 ); /*0x487c*/ -LABEL_284: - sub_5408(64, "(After sync) ValidFlag = %x\n", v2); /*0x4a69*/ - if ( v2 ) /*0x4a7e*/ - { - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x4aac*/ - L"SocketIioConfig", - &unk_7470, - v170, - 6668, - v206); - if ( (unsigned int)sub_5710() != 32 ) /*0x4abd*/ - { - __outbyte(0xCF9u, 0xEu); /*0x4aca*/ - v176 = 1; /*0x4acb*/ - while ( 1 ) /*0x4acf*/ - ; /*0x4acf*/ - } - return 0; /*0x4abd*/ - } - v54 = 0; /*0x4ae0*/ - for ( nn = 0; nn < 7; ++nn ) /*0x4ae3*/ - { - v56 = qword_7920; /*0x4aec*/ - if ( !qword_7920 ) /*0x4af6*/ - { - if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(::BootServices + 320))(&unk_7450, 0, &qword_7920) < 0 ) /*0x4b1c*/ - { - qword_7920 = 0; /*0x4b22*/ -LABEL_292: - sub_A6C(nn); /*0x4b29*/ - continue; /*0x4b2b*/ - } - v56 = qword_7920; /*0x4d9d*/ - } - v167[0] = nn; /*0x4da9*/ - n10_1 = 10; /*0x4dad*/ - LOBYTE(v53) = 17; /*0x4db1*/ - v167[1] = 0; /*0x4db9*/ - LOBYTE(v52) = 56; /*0x4dca*/ - LOBYTE(v156) = 2; /*0x4dd6*/ - if ( (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _BYTE *, int, char *, char *))(v56 + 16))( /*0x4df3*/ - v56, - v52, - 0, - v53, - v167, - v156, - v185, - &n10_1) < 0 - || v185[0] != 1 ) - { - goto LABEL_292; /*0x4df3*/ - } - v86 = qword_7920; /*0x4df9*/ - nn_1 = nn; /*0x4e00*/ - v276[0] = nn; /*0x4e02*/ - if ( qword_7920 ) /*0x4e0b*/ - goto LABEL_346; /*0x4e0b*/ - if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(::BootServices + 320))(&unk_7450, 0, &qword_7920) >= 0 ) /*0x4e2d*/ - { - v86 = qword_7920; /*0x4e3b*/ - nn_1 = v276[0]; /*0x4e42*/ -LABEL_346: - v168[0] = nn_1; /*0x4e48*/ - LOBYTE(v85) = 17; /*0x4e4c*/ - v168[1] = -1; /*0x4e54*/ - n10_2 = 10; /*0x4e59*/ - LOBYTE(v84) = 56; /*0x4e65*/ - LOBYTE(v156) = 2; /*0x4e7d*/ - if ( (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _BYTE *, int, char *, char *))(v86 + 16))( /*0x4e90*/ - v86, - v84, - 0, - v85, - v168, - v156, - &v288, - &n10_2) >= 0 ) - { - v277[256] = v288; /*0x4e9f*/ - v276[1] = v289; /*0x4eb6*/ - sub_6100(v277, v290, v289); /*0x4ebc*/ - } - goto LABEL_348; /*0x4ebc*/ - } - qword_7920 = 0; /*0x4e2f*/ -LABEL_348: - sub_121C(v276); /*0x4ec1*/ - sub_A6C(nn); /*0x4ecf*/ - v54 = 1; /*0x4ed4*/ - } - if ( v54 ) /*0x4b3c*/ - { - if ( (unsigned int)sub_5710() != 32 ) /*0x4b46*/ - { - __outbyte(0xCF9u, 0xEu); /*0x4b53*/ - v176 = 1; /*0x4b54*/ - while ( 1 ) /*0x4b58*/ - ; /*0x4b58*/ - } - return 0; /*0x4b46*/ - } - v57 = qword_7920; /*0x4b61*/ - if ( !qword_7920 ) /*0x4b6b*/ - { - if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(::BootServices + 320))(&unk_7450, 0, &qword_7920) < 0 ) /*0x4b91*/ - { - qword_7920 = 0; /*0x4b97*/ - goto LABEL_301; /*0x4b97*/ - } - v57 = qword_7920; /*0x4edc*/ - } - v186[0] = 0; /*0x4ee8*/ - LOBYTE(v53) = 44; /*0x4ef1*/ - v165 = 1; /*0x4ef8*/ - LOBYTE(v156) = 1; /*0x4f09*/ - LOBYTE(v52) = 46; /*0x4f13*/ - if ( (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, int, char *, char *))(v57 + 16))( /*0x4f1e*/ - v57, - v52, - 0, - v53, - v186, - v156, - v177, - &v165) < 0 ) -LABEL_301: - v58 = 0; /*0x4b9e*/ - else - v58 = v177[0] == 1; /*0x4f28*/ - sub_5408(64, "ModifyFlag %x\n", v58); /*0x4baf*/ - if ( v58 ) /*0x4bb9*/ - { - LOBYTE(n2_6) = 0; /*0x4bc6*/ - if ( sub_868(1, &n2_6, v60, v61) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4be0*/ - { - n2_23 = n2_6; /*0x4be2*/ - n2_6 = n2_6; /*0x4be8*/ - } - if ( sub_868(2, &n2_6, v62, v63) >= 0 ) /*0x4c00*/ - { - n2_7 = n2_8; /*0x4c09*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4c15*/ - n2_7 = n2_6; /*0x4c15*/ - n2_8 = n2_7; /*0x4c18*/ - } - if ( sub_868(3, &n2_6, v64, v65) >= 0 ) /*0x4c2f*/ - { - n2_9 = n2_10; /*0x4c38*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4c43*/ - n2_9 = (unsigned __int8)n2_6; /*0x4c43*/ - n2_10 = n2_9; /*0x4c47*/ - } - if ( sub_868(4, &n2_6, n2_9, v68) >= 0 ) /*0x4c5f*/ - { - n2_11 = n2_12; /*0x4c68*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4c74*/ - n2_11 = n2_6; /*0x4c74*/ - n2_12 = n2_11; /*0x4c77*/ - } - if ( sub_868(5, &n2_6, v69, v70) >= 0 ) /*0x4c8e*/ - { - n2_13 = BYTE1(n33686016); /*0x4c97*/ - if ( (unsigned __int8)n2_6 < 3u ) /*0x4ca1*/ - n2_13 = (unsigned __int8)n2_6; /*0x4ca1*/ - BYTE1(n33686016) = n2_13; /*0x4ca5*/ - } - if ( sub_868(6, &n2_6, n2_13, v73) >= 0 ) /*0x4cc0*/ - { - n257_5 = (unsigned __int8)n257; /*0x4cc9*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4cd4*/ - n257_5 = (unsigned __int8)n2_6; /*0x4cd4*/ - LOBYTE(n257) = n257_5; /*0x4cd8*/ - } - if ( sub_868(7, &n2_6, n257_5, v75) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4cfb*/ - { - n2_14 = n2_6; /*0x4cfd*/ - n2_2 = n2_6; /*0x4d03*/ - } - if ( sub_868(8, &n2_6, v76, v77) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4d25*/ - { - v254[2] = n2_6; /*0x4d27*/ - n2_3 = n2_6; /*0x4d2d*/ - } - if ( sub_868(11, &n2_6, v78, v79) >= 0 && (unsigned __int8)n2_6 < 2u ) /*0x4d4f*/ - { - v254[1] = n2_6; /*0x4d51*/ - n2_4 = n2_6; /*0x4d57*/ - } - if ( sub_868(13, &n2_6, v80, v81) >= 0 && (unsigned __int8)n2_6 < 3u ) /*0x4d7d*/ - { - LOBYTE(n33686016) = n2_6; /*0x4d83*/ - if ( (_BYTE)n2_6 ) /*0x4d8b*/ - { - if ( (_BYTE)n2_6 == 1 ) /*0x4f33*/ - { - n2_1 = 0; /*0x4f35*/ - } - else - { - n2_15 = n2_1; /*0x4f3e*/ - if ( (_BYTE)n2_6 == 2 ) /*0x4f48*/ - n2_15 = 1; /*0x4f48*/ - n2_1 = n2_15; /*0x4f4c*/ - } - } - else - { - n2_1 = 2; /*0x4d91*/ - } - } - if ( sub_868(14, &n2_6, v82, v83) >= 0 ) /*0x4f63*/ - { - n257_6 = n257_2; /*0x4f6c*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4f74*/ - n257_6 = n2_6; /*0x4f74*/ - LOBYTE(n257_2) = n257_6; /*0x4f77*/ - } - if ( sub_868(15, &n2_6, v89, v90) >= 0 ) /*0x4f8c*/ - { - n2_16 = (unsigned __int8)n2_5; /*0x4f95*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4fa0*/ - n2_16 = (unsigned __int8)n2_6; /*0x4fa0*/ - n2_5 = n2_16; /*0x4fa4*/ - } - if ( sub_868(16, &n2_6, n2_16, v93) >= 0 ) /*0x4fbc*/ - { - n2_17 = v206[0]; /*0x4fc5*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4fd0*/ - n2_17 = (unsigned __int8)n2_6; /*0x4fd0*/ - v206[0] = n2_17; /*0x4fd4*/ - } - if ( sub_868(17, &n2_6, n2_17, v95) >= 0 ) /*0x4fec*/ - { - n2_18 = n2_19; /*0x4ff5*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x4fff*/ - n2_18 = n2_6; /*0x4fff*/ - n2_19 = n2_18; /*0x5002*/ - } - if ( sub_868(18, &n2_6, v96, v97) >= 0 ) /*0x5019*/ - { - n2_20 = n2_21; /*0x5022*/ - if ( (unsigned __int8)n2_6 < 2u ) /*0x502c*/ - n2_20 = n2_6; /*0x502c*/ - n2_21 = n2_20; /*0x502f*/ - } - if ( sub_868(254, &n2_6, v99, v100) >= 0 && (_BYTE)n2_6 == 1 ) /*0x5053*/ - { - if ( sub_868(9, &n2_6, v102, v103) >= 0 && (unsigned __int8)n2_6 < 5u ) /*0x507b*/ - { - n3_1 = n2_6; /*0x5081*/ - v105 = byte_7580; /*0x5087*/ - v104 = 13LL * (unsigned __int8)n2_6; /*0x5091*/ - n2_14 = byte_7580[v104 + 1]; /*0x509a*/ - n2_23 = byte_7580[v104 + 2]; /*0x50a5*/ - LOBYTE(n257) = byte_7580[v104 + 3]; /*0x50b0*/ - v250 = byte_7580[v104 + 4]; /*0x50bb*/ - v251 = byte_7580[v104 + 5]; /*0x50c6*/ - n3_3 = byte_7580[v104 + 6]; /*0x50d1*/ - v254[1] = byte_7580[v104 + 7]; /*0x50dc*/ - v256 = byte_7580[v104 + 8]; /*0x50e7*/ - v259 = byte_7580[v104 + 9]; /*0x50f2*/ - HIBYTE(v258) = byte_7580[v104 + 10]; /*0x50fd*/ - v254[2] = byte_7580[v104 + 11]; /*0x5108*/ - n2_19 = byte_7580[v104 + 12]; /*0x5113*/ - } - sub_90C(254, 0, v104, (__int64)v105); /*0x511d*/ - } - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x514c*/ - L"Setup", - &unk_7568, - v169, - n814, - &byte_7A20); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, char *))(RuntimeServices + 88))( /*0x5178*/ - L"SocketProcessorCoreConfig", - &unk_7410, - v173, - n301, - &v261); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x51a4*/ - L"SocketCommonRcConfig", - &unk_74B0, - v174, - n224, - v230); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x51d0*/ - L"SocketPowerManagementConfig", - &unk_7430, - v175, - n462, - v246); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, __int16 *))(RuntimeServices + 88))( /*0x51fc*/ - L"NetworkStackVar", - &unk_74C0, - v172, - 10, - &n257_2); - (*(void (__fastcall **)(const __int16 *, void *, _QWORD, __int64, _BYTE *))(RuntimeServices + 88))( /*0x522b*/ - L"SocketIioConfig", - &unk_7470, - v170, - 6668, - v206); - sub_90C(0, 0, v106, v107); /*0x5232*/ - if ( (unsigned int)sub_5710() != 32 ) /*0x523f*/ - { - __outbyte(0xCF9u, 0xEu); /*0x524c*/ - v176 = 1; /*0x524d*/ - while ( 1 ) /*0x5251*/ - ; /*0x5251*/ - } - } - else - { - LOBYTE(v59) = n2_23; /*0x525f*/ - sub_90C(1, v59, v60, v61); /*0x5265*/ - LOBYTE(v108) = n2_8; /*0x526a*/ - sub_90C(2, v108, v109, v110); /*0x5273*/ - LOBYTE(v111) = n2_10; /*0x5278*/ - sub_90C(3, v111, v112, v113); /*0x5280*/ - LOBYTE(v114) = n2_12; /*0x5285*/ - sub_90C(4, v114, v115, v116); /*0x528d*/ - LOBYTE(v117) = BYTE1(n33686016); /*0x5292*/ - sub_90C(5, v117, v118, v119); /*0x529a*/ - LOBYTE(v120) = n257; /*0x529f*/ - sub_90C(6, v120, v121, v122); /*0x52aa*/ - LOBYTE(v123) = n2_14; /*0x52af*/ - sub_90C(7, v123, v124, v125); /*0x52b7*/ - LOBYTE(v126) = v254[2]; /*0x52bc*/ - sub_90C(8, v126, v127, v128); /*0x52c4*/ - LOBYTE(v129) = n3_1; /*0x52c9*/ - sub_90C(9, v129, v130, v131); /*0x52d4*/ - LOBYTE(v132) = v254[1]; /*0x52d9*/ - sub_90C(11, v132, v133, v134); /*0x52e1*/ - LOBYTE(v135) = n33686016; /*0x52e6*/ - sub_90C(13, v135, v136, v137); /*0x52ee*/ - LOBYTE(v138) = n257_2; /*0x52f3*/ - sub_90C(14, v138, v139, v140); /*0x52f9*/ - LOBYTE(v141) = n2_5; /*0x52fe*/ - sub_90C(15, v141, v142, v143); /*0x5306*/ - LOBYTE(v144) = v206[0]; /*0x530b*/ - sub_90C(16, v144, v145, v146); /*0x5313*/ - LOBYTE(v147) = n2_19; /*0x5318*/ - sub_90C(17, v147, v148, v149); /*0x5320*/ - LOBYTE(v150) = n2_21; /*0x5325*/ - sub_90C(18, v150, v151, v152); /*0x532d*/ - sub_90C(254, 0, v153, v154); /*0x5336*/ - } - return 0; /*0x5345*/ -} diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_2a0.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_2a0.txt deleted file mode 100644 index 5db8b51..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_2a0.txt +++ /dev/null @@ -1,5 +0,0 @@ -void *__fastcall sub_2A0(void *buf, unsigned __int64 count, char value) -{ - memset(buf, value, count); /*0x2aa*/ - return buf; /*0x2af*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_300.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_300.txt deleted file mode 100644 index a06be2a..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_300.txt +++ /dev/null @@ -1,4 +0,0 @@ -void sub_300() -{ - _mm_pause(); /*0x300*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_310.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_310.txt deleted file mode 100644 index 92c8c06..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_310.txt +++ /dev/null @@ -1,4 +0,0 @@ -unsigned __int64 sub_310() -{ - return __rdtsc(); /*0x319*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_320.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_320.txt deleted file mode 100644 index 52d5a8d..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_320.txt +++ /dev/null @@ -1,4 +0,0 @@ -void sub_320() -{ - _enable(); /*0x320*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_330.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_330.txt deleted file mode 100644 index 40ec600..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_330.txt +++ /dev/null @@ -1,4 +0,0 @@ -void sub_330() -{ - _disable(); /*0x330*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_340.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_340.txt deleted file mode 100644 index 05ca708..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_340.txt +++ /dev/null @@ -1,4 +0,0 @@ -unsigned __int64 sub_340() -{ - return __getcallerseflags(); /*0x342*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_350.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_350.txt deleted file mode 100644 index e5de170..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_350.txt +++ /dev/null @@ -1,25 +0,0 @@ -char *__fastcall sub_350(char *dst, char *src, unsigned __int64 count) -{ - char *dst_2; // rax - unsigned __int64 count_1; // rcx - char *dst_1; // rdi - char *src_1; // rsi - - dst_2 = dst; /*0x360*/ - if ( src < dst && &src[count - 1] >= dst ) /*0x368*/ - { - src_1 = &src[count - 1]; /*0x380*/ - dst_1 = &dst[count - 1]; /*0x383*/ - } - else - { - count_1 = count; /*0x36a*/ - count &= 7u; /*0x36d*/ - count_1 >>= 3; /*0x374*/ - qmemcpy(dst, src, 8 * count_1); /*0x378*/ - src_1 = &src[8 * count_1]; /*0x378*/ - dst_1 = &dst[8 * count_1]; /*0x378*/ - } - qmemcpy(dst_1, src_1, count); /*0x38c*/ - return dst_2; /*0x38f*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_3FC.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_3FC.txt deleted file mode 100644 index 8c7d1af..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_3FC.txt +++ /dev/null @@ -1,2 +0,0 @@ -Length: 8374 -{"addr":"0x3fc","code":"__int64 __fastcall sub_3FC(__int64 ImageHandle, __int64 a2)\n{\n __int64 v3; // rax\n __int64 v4; // rbx\n __int64 v5; // rax\n __int64 v6; // rax\n __int64 v7; // rax\n __int64 v8; // rbx\n __int64 v9; // rax\n __int64 v10; // rax\n __int64 v11; // rax\n __int64 v12; // rcx\n __int64 v13; // rax\n __int64 v14; // rax\n __int64 v15; // rax\n __int64 v16; // rax\n _BYTE *v17; // rax\n __int16 v18; // bx\n bool v19; // bl\n __int64 v20; // rdi\n int i; // eax\n\n ::ImageHandle = ImageHandle; /*0x415*/\n if ( !ImageHandle ) /*0x429*/\n sub_5450( /*0x438*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiBootServicesTableLib\\\\UefiBootServicesTableLib.c\",\n 51,\n \"gImageHandle != ((void *) 0)\");\n qword_7928 = a2; /*0x43d*/\n if ( !a2 ) /*0x447*/\n sub_5450(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiBootServicesTableLib\\\\UefiBootServicesTableLib.c\", 57, \"gST != ((void *) 0)\"); /*0x456*/\n qword_7930 = *(_QWORD *)(a2 + 96); /*0x45f*/\n if ( !qword_7930 ) /*0x469*/\n sub_5450(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiBootServicesTableLib\\\\UefiBootServicesTableLib.c\", 63, \"gBS != ((void *) 0)\"); /*0x478*/\n qword_7940 = *(_QWORD *)(a2 + 88); /*0x481*/\n if ( !qword_7940 ) /*0x48b*/\n sub_5450( /*0x49e*/\n \"e:\\\\hs\\\\MdePkg\\\\Library\\\\UefiRuntimeServicesTableLib\\\\UefiRuntimeServicesTableLib.c\",\n 47,\n \"gRT != ((void *) 0)\");\n v3 = sub_54E0(&unk_7490, &qword_7950); /*0x4b1*/\n v4 = v3; /*0x4bd*/\n if ( v3 < 0 ) /*0x4cf*/\n {\n sub_5408(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v3); /*0x4d9*/\n sub_5450(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeServicesTableLib\\\\DxeServicesTableLib.c\", 64, \"!EFI_ERROR (Status)\"); /*0x4ed*/\n }\n if ( !qword_7950 ) /*0x4fa*/\n sub_5450(\"e:\\\\hs\\\\MdePkg\\\\Library\\\\DxeServicesTableLib\\\\DxeServicesTableLib.c\", 65, \"gDS != ((void *) 0)\"); /*0x50f*/\n if ( v4 < 0 ) /*0x517*/\n {\n sub_5408(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v4); /*0x522*/\n sub_5450( /*0x536*/\n \"e:\\\\hs\\\\Build\\\\HR6N0XMLK\\\\DEBUG_VS2015\\\\X64\\\\LenovoServerPkg\\\\SetupDefaults\\\\SetupDefaultLoad\\\\DEBUG\\\\AutoGen.c\",\n 450,\n \"!EFI_ERROR (Status)\");\n }\n if ( !qword_7958 ) /*0x543*/\n {\n v5 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_7930 + 320))(&unk_73C0, 0, &qword_7958); /*0x55c*/\n if ( v5 < 0 ) /*0x565*/\n {\n sub_5408(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v5); /*0x570*/\n sub_5450(\"e:\\\\hs\\\\CpRcPkg\\\\Library\\\\DxeMmPciBaseLib\\\\DxeMmPciBaseLib.c\", 52, \"!EFI_ERROR (Status)\"); /*0x584*/\n }\n if ( !qword_7958 ) /*0x591*/\n sub_5450(\"e:\\\\hs\\\\CpRcPkg\\\\Library\\\\DxeMmPciBaseLib\\\\DxeMmPciBaseLib.c\", 53, \"mPciUsra != ((void *) 0)\"); /*0x5a6*/\n }\n sub_55D4(); /*0x5ab*/\n v6 = sub_5DF0(); /*0x5b0*/\n qword_7968 = (*(__int64 (__fastcall **)(__int64))(v6 + 32))(5); /*0x5bd*/\n v7 = sub_5DF0(); /*0x5c4*/\n v8 = (*(__int64 (__fastcall **)(__int64))(v7 + 40))(7); /*0x5d5*/\n v9 = sub_5DF0(); /*0x5d8*/\n if ( (unsigned __int64)(*(__int64 (__fastcall **)(__int64))(v9 + 56))(7) > 0x48 ) /*0x5e7*/\n sub_5450( /*0x5fb*/\n \"e:\\\\hs\\\\AmiCRBPkg\\\\Library\\\\AmiPcieSegBusLib\\\\AmiPcieSegBusDxeSmm.c\",\n 60,\n \"sizeof (PCIE_SEG_BUS_TABLE) >= LibPcdGetSize(7U)\");\n v10 = sub_5DF0(); /*0x600*/\n v11 = (*(__int64 (__fastcall **)(__int64))(v10 + 56))(7); /*0x608*/\n sub_5EAC(v12, v8, v11); /*0x611*/\n v13 = (*(__int64 (__fastcall **)(void *, _QWORD, void *))(qword_7930 + 320))(&unk_7440, 0, &unk_79D0); /*0x62d*/\n if ( v13 < 0 ) /*0x63d*/\n {\n sub_5408(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v13); /*0x648*/\n sub_5450(\"e:\\\\hs\\\\MdeModulePkg\\\\Library\\\\UefiHiiServicesLib\\\\UefiHiiServicesLib.c\", 88, \"!EFI_ERROR (Status)\"); /*0x658*/\n }\n v14 = (*(__int64 (__fastcall **)(void *, _QWORD, void *))(qword_7930 + 320))(&unk_7420, 0, &unk_79F0); /*0x674*/\n if ( v14 < 0 ) /*0x67d*/\n {\n sub_5408(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v14); /*0x688*/\n sub_5450(\"e:\\\\hs\\\\MdeModulePkg\\\\Library\\\\UefiHiiServicesLib\\\\UefiHiiServicesLib.c\", 94, \"!EFI_ERROR (Status)\"); /*0x698*/\n }\n v15 = (*(__int64 (__fastcall **)(void *, _QWORD, void *))(qword_7930 + 320))(&unk_73F0, 0, &unk_79E0); /*0x6b4*/\n if ( v15 < 0 ) /*0x6bd*/\n {\n sub_5408(0x80000000LL, \"\\nASSERT_EFI_ERROR (Status = %r)\\n\", v15); /*0x6c8*/\n sub_5450(\"e:\\\\hs\\\\MdeModulePkg\\\\Library\\\\UefiHiiServicesLib\\\\UefiHiiServicesLib.c\", 100, \"!EFI_ERROR (Status)\"); /*0x6d8*/\n }\n (*(void (__fastcall **)(void *, _QWORD, void *))(qword_7930 + 320))(&unk_74D0, 0, &unk_79D8); /*0x6f4*/\n (*(void (__fastcall **)(void *, _QWORD, void *))(qword_7930 + 320))(&unk_7400, 0, &unk_79E8); /*0x711*/\n if ( *(char *)sub_5658(1024068) >= 0 ) /*0x727*/\n {\n v16 = sub_5658(1024064); /*0x72c*/\n sub_5D6C(v16); /*0x734*/\n v17 = (_BYTE *)sub_5658(1024068); /*0x73b*/\n *v17 |= 0x80u; /*0x745*/\n }\n v18 = sub_340(); /*0x74c*/\n sub_330(); /*0x74f*/\n v19 = (v18 & 0x200) != 0; /*0x75e*/\n v20 = sub_5358(1288) & 0xFFFFFF; /*0x768*/\n sub_310(); /*0x76e*/\n for ( i = sub_5358(1288); (((_DWORD)v20 + 357 - i) & 0x800000) == 0; i = sub_5358(1288) ) /*0x775*/\n sub_300(); /*0x782*/\n sub_310(); /*0x79c*/\n if ( v19 ) /*0x7a3*/\n return sub_320(); /*0x7a5*/\n else\n return sub_330(); /*0x7ac*/\n}","refs":[{"addr":"0x7938","name":"ImageHandle"},{"addr":"0x5450","name":"sub_5450"},{"addr":"0x6a10","name":"aEHsMdepkgLibra","string":"e:\\hs\\MdePkg\\Library\\UefiBootServicesTableLib\\UefiBootServicesTableLib.c"},{"addr":"0x69e8","name":"aGimagehandleVo","string":"gImageHandle != ((void *) 0)"},{"addr":"0x7928","name":"qword_7928"},{"addr":"0x6a60","name":"aGstVoid0","string":"gST != ((void *) 0)"},{"addr":"0x7930","name":"qword_7930"},{"addr":"0x6a78","name":"aGbsVoid0","string":"gBS != ((void *) 0)"},{"addr":"0x7940","name":"qword_7940"},{"addr":"0x6ab0","name":"aEHsMdepkgLibra_0","string":"e:\\hs\\MdePkg\\Library\\UefiRuntimeServicesTableLib\\UefiRuntimeServicesTableLib.c"},{"addr":"0x6a90","name":"aGrtVoid0","string":"gRT != ((void *) 0)"},{"addr":"0x54e0","name":"sub_54E0"},{"addr":"0x7490","name":"unk_7490"},{"addr":"0x7950","name":"qword_7950"},{"addr":"0x5408","name":"sub_5408"},{"addr":"0x61c0","name":"aAssertEfiError","string":"\nASSERT_EFI_ERROR (Status = %r)\n"},{"addr":"0x6c38","name":"aEHsMdepkgLibra_1","string":"e:\\hs\\MdePkg\\Library\\DxeServicesTableLib\\DxeServicesTableLib.c"},{"addr":"0x61e8","name":"aEfiErrorStatus","string":"!EFI_ERROR (Status)"},{"addr":"0x6c78","name":"aGdsVoid0","string":"gDS != ((void *) 0)"},{"addr":"0x6200","name":"aEHsBuildHr6n0x","string":"e:\\hs\\Build\\HR6N0XMLK\\DEBUG_VS2015\\X64\\LenovoServerPkg\\SetupDefaults\\SetupDefaultLoad\\DEBUG\\AutoGen.c"},{"addr":"0x73c0","name":"unk_73C0"},{"addr":"0x7958","name":"qword_7958"},{"addr":"0x6c90","name":"aEHsCprcpkgLibr","string":"e:\\hs\\CpRcPkg\\Library\\DxeMmPciBaseLib\\DxeMmPciBaseLib.c"},{"addr":"0x6cc8","name":"aMpciusraVoid0","string":"mPciUsra != ((void *) 0)"},{"addr":"0x55d4","name":"sub_55D4"},{"addr":"0x5df0","name":"sub_5DF0"},{"addr":"0x7968","name":"qword_7968"},{"addr":"0x6dd8","name":"aEHsAmicrbpkgLi","string":"e:\\hs\\AmiCRBPkg\\Library\\AmiPcieSegBusLib\\AmiPcieSegBusDxeSmm.c"},{"addr":"0x6da0","name":"aSizeofPcieSegB","string":"sizeof (PCIE_SEG_BUS_TABLE) >= LibPcdGetSize(7U)"},{"addr":"0x5eac","name":"sub_5EAC"},{"addr":"0x7440","name":"unk_7440"},{"addr":"0x79d0","name":"unk_79D0"},{"addr":"0x6e20","name":"aEHsMdemodulepk","string":"e:\\hs\\MdeModulePkg\\Library\\UefiHiiServicesLib\\UefiHiiServicesLib.c"},{"addr":"0x7420","name":"unk_7420"},{"addr":"0x79f0","name":"unk_79F0"},{"addr":"0x73f0","name":"unk_73F0"},{"addr":"0x79e0","name":"unk_79E0"},{"addr":"0x74d0","name":"unk_74D0"},{"addr":"0x79d8","name":"unk_79D8"},{"addr":"0x7400","name":"unk_7400"},{"addr":"0x79e8","name":"unk_79E8"},{"addr":"0x5658","name":"sub_5658"},{"addr":"0x5d6c","name":"sub_5D6C"},{"addr":"0x340","name":"sub_340"},{"addr":"0x330","name":"sub_330"},{"addr":"0x5358","name":"sub_5358"},{"addr":"0x310","name":"sub_310"},{"addr":"0x300","name":"sub_300"},{"addr":"0x320","name":"sub_320"}]} diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5358.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5358.txt deleted file mode 100644 index 4e0d2c0..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5358.txt +++ /dev/null @@ -1,6 +0,0 @@ -unsigned __int32 __fastcall sub_5358(unsigned __int16 n1288) -{ - if ( (n1288 & 3) != 0 ) /*0x5364*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseIoLibIntrinsic\\IoLibMsc.c", 193, (__int64)"(Port & 3) == 0"); /*0x5379*/ - return __indword(n1288); /*0x5382*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5388.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5388.txt deleted file mode 100644 index 055673d..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5388.txt +++ /dev/null @@ -1,28 +0,0 @@ -__int64 sub_5388() -{ - __int64 result; // rax - unsigned __int64 n0x10; // rbx - __int64 v2; // rax - __int64 v3; // rcx - - result = qword_7948; /*0x5392*/ - if ( !qword_7948 ) /*0x539e*/ - { - n0x10 = (*(__int64 (__fastcall **)(__int64))(qword_7930 + 24))(31); /*0x53b7*/ - (*(void (__fastcall **)(unsigned __int64))(qword_7930 + 32))(n0x10); /*0x53ba*/ - if ( n0x10 <= 0x10 ) /*0x53c1*/ - { - v2 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_7930 + 320))(&unk_73A0, 0, &qword_7948); /*0x53de*/ - v3 = qword_7948; /*0x53e4*/ - if ( v2 < 0 ) /*0x53ee*/ - v3 = 0; /*0x53ee*/ - qword_7948 = v3; /*0x53f2*/ - return v3; /*0x53f9*/ - } - else - { - return 0; /*0x53c3*/ - } - } - return result; /*0x5401*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5408.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5408.txt deleted file mode 100644 index 9050c17..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5408.txt +++ /dev/null @@ -1,16 +0,0 @@ -__int64 sub_5408(__int64 a1, const char *a2, ...) -{ - __int64 result; // rax - __int64 (__fastcall **v4)(__int64, const char *, __int64 *); // r10 - va_list va; // [rsp+40h] [rbp+18h] BYREF - - va_start(va, a2); - result = sub_5388(); /*0x541f*/ - if ( result ) /*0x542a*/ - { - result = sub_5DA0(); /*0x542c*/ - if ( ((unsigned int)result & (unsigned int)a1) != 0 ) /*0x5437*/ - return (*v4)(a1, a2, (__int64 *)va); /*0x5446*/ - } - return result; /*0x5449*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5450.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5450.txt deleted file mode 100644 index 93c95be..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5450.txt +++ /dev/null @@ -1,9 +0,0 @@ -__int64 __fastcall sub_5450(__int64 a1, __int64 a2, __int64 a3) -{ - __int64 result; // rax - - result = sub_5388(); /*0x5468*/ - if ( result ) /*0x5470*/ - return (*(__int64 (__fastcall **)(__int64, __int64, __int64))(result + 8))(a1, a2, a3); /*0x547b*/ - return result; /*0x5488*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5490.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5490.txt deleted file mode 100644 index cf84a36..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5490.txt +++ /dev/null @@ -1,9 +0,0 @@ -void *__fastcall sub_5490(char *p_n2, unsigned __int64 n256) -{ - if ( n256 - 1 > -1 - (__int64)p_n2 ) /*0x54ae*/ - sub_5450( /*0x54c3*/ - (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\SetMemWrapper.c", - 54, - (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)Buffer)"); - return sub_2A0(p_n2, n256, 0); /*0x54d6*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_54e0.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_54e0.txt deleted file mode 100644 index c493d98..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_54e0.txt +++ /dev/null @@ -1,23 +0,0 @@ -unsigned __int64 __fastcall sub_54E0(__int64 a1, _QWORD *a2) -{ - __int64 v4; // rdi - __int64 v5; // rbx - __int64 i; // r14 - - if ( !a1 ) /*0x5502*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 97, (__int64)"TableGuid != ((void *) 0)"); /*0x5515*/ - if ( !a2 ) /*0x551d*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 98, (__int64)"Table != ((void *) 0)"); /*0x5530*/ - v4 = qword_7928; /*0x5535*/ - v5 = 0; /*0x553c*/ - *a2 = 0; /*0x553e*/ - if ( !*(_QWORD *)(v4 + 104) ) /*0x5542*/ - return 0x800000000000000EuLL; /*0x556b*/ - for ( i = 0; !(unsigned __int8)sub_5F54(a1, i + *(_QWORD *)(v4 + 112)); i += 24 ) /*0x5548*/ - { - if ( (unsigned __int64)++v5 >= *(_QWORD *)(v4 + 104) ) /*0x5569*/ - return 0x800000000000000EuLL; /*0x5569*/ - } - *a2 = *(_QWORD *)(*(_QWORD *)(v4 + 112) + 24 * v5 + 16); /*0x559f*/ - return 0; /*0x5589*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_55a4.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_55a4.txt deleted file mode 100644 index f7e5ba7..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_55a4.txt +++ /dev/null @@ -1,10 +0,0 @@ -__int64 sub_55A4() -{ - _DWORD v1[6]; // [rsp+20h] [rbp-18h] BYREF - - v1[3] = 0; /*0x55ab*/ - v1[1] = 0; /*0x55b3*/ - v1[2] = 512; /*0x55b7*/ - v1[0] = 1015808; /*0x55be*/ - return (*(__int64 (__fastcall **)(_DWORD *))(qword_7958 + 24))(v1); /*0x55cf*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_55d4.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_55d4.txt deleted file mode 100644 index 458bbd7..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_55d4.txt +++ /dev/null @@ -1,23 +0,0 @@ -__int64 sub_55D4() -{ - __int64 result; // rax - signed __int64 v1; // rax - - result = qword_7960; /*0x55d8*/ - if ( !qword_7960 ) /*0x55e2*/ - { - v1 = sub_54E0((__int64)&unk_7480, &qword_7960); /*0x55f2*/ - if ( v1 < 0 ) /*0x55fa*/ - { - sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v1); /*0x560b*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxeHobLib\\HobLib.c", 54, (__int64)"!EFI_ERROR (Status)"); /*0x5623*/ - } - result = qword_7960; /*0x5628*/ - if ( !qword_7960 ) /*0x5632*/ - { - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxeHobLib\\HobLib.c", 55, (__int64)"mHobList != ((void *) 0)"); /*0x5645*/ - return qword_7960; /*0x564a*/ - } - } - return result; /*0x5651*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5658.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5658.txt deleted file mode 100644 index 1391c98..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5658.txt +++ /dev/null @@ -1,9 +0,0 @@ -__int64 __fastcall sub_5658(__int64 n1024064) -{ - if ( (n1024064 & 0xFFFFFFFFF0000000uLL) != 0 ) /*0x5668*/ - sub_5450( /*0x567d*/ - (__int64)"e:\\hs\\MdePkg\\Library\\SmmPciExpressLib\\PciExpressLib.c", - 118, - (__int64)"((Address) & ~0xfffffff) == 0"); - return n1024064 + qword_7968; /*0x568c*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5694.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5694.txt deleted file mode 100644 index e1cc88f..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5694.txt +++ /dev/null @@ -1,42 +0,0 @@ -__int64 __fastcall sub_5694(unsigned __int64 a1) -{ - _BYTE *v1; // rdx - unsigned __int64 v2; // r9 - unsigned __int64 n8; // r10 - unsigned __int64 v4; // r8 - - v1 = &unk_75F0; /*0x5697*/ - v2 = a1 + 16; /*0x569e*/ - n8 = a1 & 7; /*0x56a2*/ - if ( (a1 & 7) != 0 && n8 == ((unsigned __int64)&unk_75F0 & 7) ) /*0x56b1*/ - { - v4 = 8 - n8; /*0x56b9*/ - if ( n8 != 8 ) /*0x56bc*/ - { - do /*0x56ce*/ - { - if ( *(_BYTE *)a1 != *v1 ) /*0x56c2*/ - break; /*0x56c2*/ - ++a1; /*0x56c4*/ - ++v1; /*0x56c7*/ - --v4; /*0x56ca*/ - } - while ( v4 ); /*0x56ce*/ - } - } - while ( a1 <= v2 - 8 && *(_QWORD *)a1 == *(_QWORD *)v1 ) /*0x56dc*/ - { - a1 += 8LL; /*0x56de*/ - v1 += 8; /*0x56e2*/ - } - while ( 1 ) /*0x56f9*/ - { - if ( a1 >= v2 ) /*0x56fc*/ - return 0; /*0x5700*/ - if ( *(_BYTE *)a1 != *v1 ) /*0x56f1*/ - break; /*0x56f1*/ - ++a1; /*0x56f3*/ - ++v1; /*0x56f6*/ - } - return *(char *)a1 - (char)*v1; /*0x5700*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5710.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5710.txt deleted file mode 100644 index f5d683d..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5710.txt +++ /dev/null @@ -1,29 +0,0 @@ -__int64 sub_5710() -{ - __int64 v0; // r11 - __int64 v1; // rbx - unsigned __int64 v2; // rdi - __int64 v3; // rax - - v0 = 0; /*0x5721*/ - v1 = *(_QWORD *)(SystemTable + 104); /*0x5724*/ - v2 = *(_QWORD *)(SystemTable + 112); /*0x5728*/ - if ( v1 ) /*0x572f*/ - { - while ( sub_5694(v2) ) /*0x573c*/ - { - v2 += 24LL; /*0x573e*/ - if ( !--v1 ) /*0x5746*/ - goto LABEL_4; /*0x5746*/ - } - v3 = *(_QWORD *)(v2 + 16); /*0x5762*/ - } - else - { -LABEL_4: - v3 = v0; /*0x5748*/ - } - if ( v3 ) /*0x574e*/ - LODWORD(v0) = *(_DWORD *)(v3 + 12); /*0x5750*/ - return (unsigned int)v0; /*0x575c*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5768.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5768.txt deleted file mode 100644 index b241aa5..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5768.txt +++ /dev/null @@ -1,16 +0,0 @@ -__int64 __fastcall sub_5768(_BYTE *a1, _BYTE *a2) -{ - __int64 result; // rax - int v5; // [rsp+30h] [rbp+8h] BYREF - - *a1 = 0; /*0x5775*/ - *a2 = 0; /*0x577b*/ - v5 = 1; /*0x5783*/ - sub_5B28(16842767, &v5); /*0x5790*/ - if ( !v5 ) /*0x579a*/ - *a1 = 1; /*0x579c*/ - result = sub_5B28(16842768, &v5); /*0x57a9*/ - if ( !v5 ) /*0x57b3*/ - *a2 = 1; /*0x57b5*/ - return result; /*0x57bd*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_57C4.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_57C4.txt deleted file mode 100644 index 52c0370..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_57C4.txt +++ /dev/null @@ -1,161 +0,0 @@ -__int64 __fastcall sub_57C4(__int64 a1, _BYTE *p_n8, _BYTE *a3, _BYTE *p_n4, _BYTE *n11_1) -{ - __int64 v5; // rax - _BYTE *n11_4; // r15 - _BYTE *p_n4_1; // rdi - bool v8; // r13 - _BYTE *p_n8_1; // r14 - char n11; // r12 - __int64 result; // rax - char n11_2; // cl - bool v14; // bl - bool v15; // zf - __int64 v16; // [rsp+40h] [rbp-C0h] BYREF - unsigned __int64 v17; // [rsp+48h] [rbp-B8h] - _BYTE v18[298]; // [rsp+50h] [rbp-B0h] BYREF - char n11_3; // [rsp+17Ah] [rbp+7Ah] - __int64 v20; // [rsp+3C0h] [rbp+2C0h] BYREF - unsigned int v21; // [rsp+3C8h] [rbp+2C8h] BYREF - __int64 n814; // [rsp+3D0h] [rbp+2D0h] BYREF - - v20 = a1; /*0x57c9*/ - v5 = qword_7920; /*0x57e8*/ - n11_4 = n11_1; /*0x57f1*/ - p_n4_1 = p_n4; /*0x57fb*/ - n814 = 814; /*0x57fe*/ - v8 = qword_7920 == 0; /*0x5809*/ - v16 = 0x4BB5EBA4EC87D643LL; /*0x580d*/ - v17 = 0xA90DB2363E3FE5A1uLL; /*0x5820*/ - p_n8_1 = p_n8; /*0x5828*/ - n11 = -1; /*0x5833*/ - *a3 = -1; /*0x5836*/ - *n11_4 = -1; /*0x583a*/ - *p_n8 = 0; /*0x583e*/ - *p_n4 = 0; /*0x5840*/ - v21 = 0; /*0x5843*/ - if ( v8 /*0x5887*/ - || (LOBYTE(v20) = 1, - LOBYTE(p_n4) = 89, - LOBYTE(p_n8) = 46, - (*(__int64 (__fastcall **)(__int64, _BYTE *, _QWORD, _BYTE *, _QWORD, _BYTE, _BYTE **, __int64 *, __int64, unsigned __int64))(v5 + 16))( - v5, - p_n8, - 0, - p_n4, - 0, - 0, - &n11_1, - &v20, - v16, - v17) < 0) ) - { - v8 = 1; /*0x5897*/ - } - else - { - n11 = (char)n11_1; /*0x5889*/ - } - if ( (*(__int64 (__fastcall **)(const __int16 *, __int64 *, unsigned int *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0x58cb*/ - L"Setup", - &v16, - &v21, - &n814, - v18) < 0 ) - return 0x8000000000000003uLL; /*0x58d7*/ - n11_2 = n11_3; /*0x58dc*/ - if ( !v8 ) /*0x58ee*/ - n11_2 = n11; /*0x58ee*/ - n11_3 = n11_2; /*0x58f1*/ - sub_5B28(17170432, &v20); /*0x58f9*/ - v14 = (_DWORD)v20 != 1; /*0x5911*/ - LODWORD(v20) = 0; /*0x5914*/ - sub_5B28(16973835, &v20); /*0x591d*/ - v15 = (_DWORD)v20 == 0; /*0x5924*/ - *p_n4_1 = 0; /*0x592a*/ - if ( v14 ) /*0x5932*/ - { - if ( v15 ) /*0x5970*/ - { - if ( !n11 ) /*0x5975*/ - { - *a3 = 4; /*0x5999*/ - *n11_4 = 0; /*0x599c*/ - goto LABEL_34; /*0x599f*/ - } - if ( n11 == 9 ) /*0x597b*/ - { - *p_n8_1 = 4; /*0x5990*/ - *a3 = 8; /*0x5994*/ - } - else - { - *p_n8_1 = 0; /*0x597d*/ - if ( n11 == 11 ) /*0x5984*/ - { - *a3 = 4; /*0x598b*/ - goto LABEL_15; /*0x598e*/ - } - *a3 = -1; /*0x5986*/ - } -LABEL_29: - *n11_4 = -1; /*0x59b8*/ - goto LABEL_35; /*0x59bc*/ - } - if ( !n11 ) /*0x59a4*/ - { - *n11_4 = 8; /*0x59c8*/ - goto LABEL_33; /*0x59c8*/ - } - *a3 = -1; /*0x59a6*/ - if ( n11 == 9 ) /*0x59ad*/ - { - *p_n8_1 = 4; /*0x59be*/ - } - else - { - *p_n8_1 = 0; /*0x59af*/ - if ( n11 != 11 ) /*0x59b6*/ - goto LABEL_29; /*0x59b6*/ - } - *n11_4 = 8; /*0x59c2*/ - goto LABEL_35; /*0x59c6*/ - } - if ( n11 == 1 ) /*0x593b*/ - { - *a3 = 2; /*0x5965*/ - *n11_4 = 6; /*0x5968*/ -LABEL_34: - *p_n8_1 = 0; /*0x59cf*/ - goto LABEL_35; /*0x59cf*/ - } - if ( n11 == 8 ) /*0x5940*/ - { - *p_n8_1 = 4; /*0x5958*/ - *a3 = 4; /*0x595c*/ - *n11_4 = 4; /*0x595f*/ - goto LABEL_35; /*0x5963*/ - } - if ( n11 != 10 ) /*0x5945*/ - { - *n11_4 = -1; /*0x5947*/ -LABEL_33: - *a3 = -1; /*0x59cc*/ - goto LABEL_34; /*0x59cc*/ - } - *p_n8_1 = 4; /*0x594d*/ - *a3 = 0; /*0x5951*/ -LABEL_15: - *n11_4 = 0; /*0x5953*/ -LABEL_35: - if ( v8 ) /*0x59d5*/ - return 0; /*0x59d5*/ - result = (*(__int64 (__fastcall **)(const __int16 *, __int64 *, _QWORD, __int64, _BYTE *))(qword_7940 + 88))( /*0x5a02*/ - L"Setup", - &v16, - v21, - n814, - v18); - if ( result >= 0 ) /*0x5a08*/ - return 0; /*0x5a0a*/ - return result; /*0x5a14*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5a28.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5a28.txt deleted file mode 100644 index 17c2d6a..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5a28.txt +++ /dev/null @@ -1,42 +0,0 @@ -unsigned __int64 __fastcall sub_5A28(unsigned int a1, __int64 a2, __int64 a3, char a4, int *a5) -{ - unsigned int v5; // ebx - unsigned __int64 v7; // rdi - __int64 v9; // rsi - _QWORD v10[5]; // [rsp+20h] [rbp-28h] BYREF - int v11; // [rsp+68h] [rbp+20h] BYREF - - LOBYTE(v11) = a4; /*0x5a32*/ - v5 = (unsigned __int16)a1; /*0x5a41*/ - v7 = BYTE2(a1); /*0x5a4a*/ - if ( !sub_5CFC(a1) ) - { - sub_5408( - 0x80000000LL, - "GPIO ERROR: Incorrect GpioPad define used on this chipset (Group=%d, Pad=%d)!\n", - (unsigned int)v7, - v5); - return 0x8000000000000003uLL; /*0x5a77*/ - } - v9 = sub_5C64(v10); /*0x5a86*/ - if ( v7 >= v10[0] ) - { - sub_5408(0x80000000LL, "GPIO ERROR: Group argument (%d) exceeds GPIO group range\n", (unsigned int)v7); - return 0x8000000000000002uLL; /*0x5ab1*/ - } - if ( v5 >= *(_DWORD *)(v9 + 60 * v7 + 56) ) - { - sub_5408(0x80000000LL, "GPIO ERROR: Pin number (%d) exceeds possible range for this group\n", v5); - return 0x8000000000000002uLL; /*0x5ac7*/ - } - sub_5B84(a1, &v11); /*0x5ad1*/ - if ( v11 ) - { - sub_5408(0x80000000LL, "GPIO ERROR: Accessing pad not owned by host (Group=%d, Pad=%d)!\n", (unsigned int)v7, v5); - return 0x8000000000000003uLL; /*0x5ae4*/ - } - *a5 = *(_DWORD *)((unsigned __int16)(*(_DWORD *)(v9 + 60 * v7 + 52) + 8 * v5) /*0x5b0f*/ - | ((*(unsigned __int8 *)(v9 + 60 * v7) | 0xFD00LL) << 16)) - & 2; - return 0; /*0x5b1d*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5b28.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5b28.txt deleted file mode 100644 index 354bb3a..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5b28.txt +++ /dev/null @@ -1,18 +0,0 @@ -__int64 __fastcall sub_5B28(int a1, _DWORD *a2, int a3, int a4) -{ - __int64 v5; // rax - __int64 v6; // rdi - - v5 = sub_5A28(a1, (_DWORD)a2, a3, a4, (__int64)a2); /*0x5b3a*/ - v6 = v5; /*0x5b3f*/ - if ( v5 < 0 ) /*0x5b45*/ - { - sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v5); /*0x5b56*/ - sub_5450( /*0x5b6e*/ - (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", - 935, - (__int64)"!EFI_ERROR (Status)"); - } - *a2 >>= 1; /*0x5b73*/ - return v6; /*0x5b7d*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5b84.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5b84.txt deleted file mode 100644 index 7dbfa6c..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5b84.txt +++ /dev/null @@ -1,33 +0,0 @@ -unsigned __int64 __fastcall sub_5B84(int a1, unsigned int *a2) -{ - unsigned int v2; // ebx - unsigned __int64 v3; // rdi - _DWORD *v5; // rax - __int64 n1389; // rdx - unsigned __int64 v8; // [rsp+40h] [rbp+18h] BYREF - - v2 = (unsigned __int16)a1; /*0x5b95*/ - v3 = BYTE2(a1); /*0x5ba0*/ - v5 = sub_5C64(&v8); /*0x5ba6*/ - if ( v3 >= v8 ) - { - sub_5408(0x80000000LL, "GPIO ERROR: Group argument (%d) exceeds GPIO group range\n", v3); - n1389 = 1389; /*0x5bcb*/ -LABEL_3: - sub_5450( /*0x5bd0*/ - (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", - n1389, - (__int64)"((BOOLEAN)(0==1))"); - return 0x8000000000000002uLL; /*0x5bed*/ - } - if ( v2 >= v5[15 * (unsigned int)v3 + 14] ) - { - sub_5408(0x80000000LL, "GPIO ERROR: Pin number (%d) exceeds possible range for this group\n", v2); - n1389 = 1398; /*0x5c0d*/ - goto LABEL_3; /*0x5c12*/ - } - *a2 = (*(_DWORD *)(((LOBYTE(v5[15 * (unsigned int)v3]) | 0xFD00LL) << 16) /*0x5c4d*/ - | (unsigned __int16)(LOWORD(v5[15 * (unsigned int)v3 + 1]) + 4 * (v2 >> 3))) - & (unsigned int)(3 << (4 * (v2 & 7)))) >> (4 * (v2 & 7)); - return 0; /*0x5c5b*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5c64.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5c64.txt deleted file mode 100644 index ddbb197..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5c64.txt +++ /dev/null @@ -1,36 +0,0 @@ -void *__fastcall sub_5C64(_QWORD *a1) -{ - int n2; // ebx - __int64 v3; // rax - unsigned __int16 v4; // ax - - n2 = n2_7; /*0x5c6e*/ - if ( n2_7 == 2 ) - { - v3 = sub_55A4(); /*0x5c7c*/ - v4 = sub_5D3C(v3 + 2); /*0x5c85*/ - if ( ((v4 + 24128) & 0xFF70) != 0 ) - { - sub_5408(0x80000000LL, "Unsupported PCH SKU, LpcDeviceId: 0x%04x!\n", v4); - sub_5450( /*0x5cc3*/ - (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmPchInfoLib\\PchInfoLib.c", - 290, - (__int64)"((BOOLEAN)(0==1))"); - } - else - { - n2 = 1; /*0x5cca*/ - } - n2_7 = n2; /*0x5ccf*/ - } - if ( n2 == 1 ) /*0x5cd8*/ - { - *a1 = 13; /*0x5cda*/ - return &unk_7600; /*0x5ce1*/ - } - else - { - *a1 = 0; /*0x5cea*/ - return 0; /*0x5cee*/ - } -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5cfc.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5cfc.txt deleted file mode 100644 index 976e130..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5cfc.txt +++ /dev/null @@ -1,11 +0,0 @@ -bool __fastcall sub_5CFC(int a1) -{ - int n2; // eax - - n2 = sub_5FBC(); /*0x5d04*/ - if ( n2 == 1 ) /*0x5d0c*/ - return (a1 & 0xFF000000) == 0x1000000; /*0x5d14*/ - if ( n2 != 2 ) /*0x5d23*/ - return 0; /*0x5d23*/ - return (a1 & 0xFF000000) == 0x2000000; /*0x5d35*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5d3c.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5d3c.txt deleted file mode 100644 index 8ef674b..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5d3c.txt +++ /dev/null @@ -1,6 +0,0 @@ -__int64 __fastcall sub_5D3C(unsigned __int16 *a1) -{ - if ( ((unsigned __int8)a1 & 1) != 0 ) /*0x5d48*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseIoLibIntrinsic\\IoLib.c", 151, (__int64)"(Address & 1) == 0"); /*0x5d5d*/ - return *a1; /*0x5d65*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5d6c.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5d6c.txt deleted file mode 100644 index bcc6b4a..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5d6c.txt +++ /dev/null @@ -1,7 +0,0 @@ -__int64 __fastcall sub_5D6C(_WORD *a1) -{ - if ( ((unsigned __int8)a1 & 1) != 0 ) /*0x5d78*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseIoLibIntrinsic\\IoLib.c", 183, (__int64)"(Address & 1) == 0"); /*0x5d8d*/ - *a1 = 1280; /*0x5d97*/ - return 1280; /*0x5d9a*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5da0.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5da0.txt deleted file mode 100644 index 58c37a1..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5da0.txt +++ /dev/null @@ -1,24 +0,0 @@ -__int64 sub_5DA0() -{ - unsigned __int8 v0; // al - char n3; // al - char n3_1; // cl - __int64 result; // rax - - v0 = __inbyte(0x70u); /*0x5da5*/ - __outbyte(0x70u, v0 & 0x80 | 0x4B); /*0x5daa*/ - n3 = __inbyte(0x71u); /*0x5db0*/ - n3_1 = n3; /*0x5db1*/ - if ( (unsigned __int8)n3 > 3u ) /*0x5db8*/ - { - n3_1 = n3; /*0x5dba*/ - if ( !n3 ) /*0x5dc2*/ - n3_1 = MEMORY[0xFDAF0490] & 2 | 1; /*0x5dce*/ - } - if ( (unsigned __int8)(n3_1 - 1) > 0xFDu ) /*0x5dd8*/ - return 0; /*0x5deb*/ - result = 2147483718LL; /*0x5ddd*/ - if ( n3_1 == 1 ) /*0x5de7*/ - return 2147483652LL; /*0x5de7*/ - return result; /*0x5dea*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5df0.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5df0.txt deleted file mode 100644 index 5762e9c..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5df0.txt +++ /dev/null @@ -1,23 +0,0 @@ -__int64 sub_5DF0() -{ - __int64 result; // rax - __int64 v1; // rax - - result = qword_79F8; /*0x5df4*/ - if ( !qword_79F8 ) /*0x5dfe*/ - { - v1 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_7930 + 320))(&unk_73D0, 0, &qword_79F8); /*0x5e17*/ - if ( v1 < 0 ) /*0x5e20*/ - { - sub_5408(0x80000000LL, "\nASSERT_EFI_ERROR (Status = %r)\n", v1); /*0x5e31*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxePcdLib\\DxePcdLib.c", 78, (__int64)"!EFI_ERROR (Status)"); /*0x5e49*/ - } - result = qword_79F8; /*0x5e4e*/ - if ( !qword_79F8 ) /*0x5e58*/ - { - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\DxePcdLib\\DxePcdLib.c", 79, (__int64)"mPcd != ((void *) 0)"); /*0x5e6b*/ - return qword_79F8; /*0x5e70*/ - } - } - return result; /*0x5e77*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5e7c.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5e7c.txt deleted file mode 100644 index ad6264e..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5e7c.txt +++ /dev/null @@ -1,6 +0,0 @@ -__int64 __fastcall sub_5E7C(__int64 a1) -{ - if ( !a1 ) /*0x5e88*/ - sub_5450((__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\Unaligned.c", 192, (__int64)"Buffer != ((void *) 0)"); /*0x5e9d*/ - return *(_QWORD *)a1; /*0x5ea5*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5eac.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5eac.txt deleted file mode 100644 index a0c821b..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5eac.txt +++ /dev/null @@ -1,22 +0,0 @@ -char *__fastcall sub_5EAC(__int64 a1, char *src, unsigned __int64 count) -{ - unsigned __int64 v6; // rbp - - if ( !count ) /*0x5ec9*/ - return dst; /*0x5ecb*/ - v6 = count - 1; /*0x5ee2*/ - if ( count - 1 > -1 - (__int64)dst ) /*0x5ee9*/ - sub_5450( /*0x5efe*/ - (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\CopyMemWrapper.c", - 56, - (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)DestinationBuffer)"); - if ( v6 > ~(unsigned __int64)src ) /*0x5f0c*/ - sub_5450( /*0x5f21*/ - (__int64)"e:\\hs\\MdePkg\\Library\\BaseMemoryLibRepStr\\CopyMemWrapper.c", - 57, - (__int64)"(Length - 1) <= (0xFFFFFFFFFFFFFFFFULL - (UINTN)SourceBuffer)"); - if ( dst == src ) /*0x5f29*/ - return dst; /*0x5f2b*/ - else - return sub_350(dst, src, count); /*0x5f39*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5f54.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5f54.txt deleted file mode 100644 index 4537073..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5f54.txt +++ /dev/null @@ -1,13 +0,0 @@ -bool __fastcall sub_5F54(__int64 a1, __int64 a2) -{ - __int64 v4; // rsi - __int64 v5; // rbx - __int64 v6; // rdi - __int64 v7; // rax - - v4 = ((__int64 (*)(void))sub_5E7C)(); /*0x5f76*/ - v5 = sub_5E7C(a2); /*0x5f82*/ - v6 = sub_5E7C(a1 + 8); /*0x5f8e*/ - v7 = sub_5E7C(a2 + 8); /*0x5f91*/ - return v4 == v5 && v6 == v7; /*0x5fb5*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5fbc.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5fbc.txt deleted file mode 100644 index 9f8b48f..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_5fbc.txt +++ /dev/null @@ -1,40 +0,0 @@ -__int64 sub_5FBC() -{ - __int64 n3_1; // rax - unsigned int n3; // ebx - __int64 v2; // rax - unsigned __int16 v3; // ax - int v4; // edx - int n335; // eax - - n3_1 = (unsigned int)n3_0; /*0x5fc2*/ - n3 = 3; /*0x5fc8*/ - if ( n3_0 == 3 ) - { - v2 = sub_55A4(); /*0x5fd1*/ - v3 = sub_5D3C(v2 + 2); /*0x5fda*/ - v4 = v3; /*0x5fdf*/ - if ( ((v3 + 24128) & 0xFF70) != 0 ) - { - if ( (unsigned __int16)(v3 + 25280) <= 8u && (n335 = 335, _bittest(&n335, v4 + 25280)) ) - { - n3 = 2; /*0x600a*/ - } - else - { - sub_5408(0x80000000LL, "Unsupported PCH SKU, LpcDeviceId: 0x%04x!\n", (unsigned __int16)v4); - sub_5450( /*0x6039*/ - (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmPchInfoLib\\PchInfoLib.c", - 252, - (__int64)"((BOOLEAN)(0==1))"); - } - } - else - { - n3 = 1; /*0x6040*/ - } - n3_0 = n3; /*0x6045*/ - return n3; /*0x604b*/ - } - return n3_1; /*0x604d*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_6060.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_6060.txt deleted file mode 100644 index e9e542e..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_6060.txt +++ /dev/null @@ -1,16 +0,0 @@ -__int64 __fastcall sub_6060(unsigned int _RAX_1, _DWORD *a2, _DWORD *a3, _DWORD *a4, _DWORD *a5) -{ - __int64 result; // rax - - _RAX = _RAX_1; /*0x606f*/ - __asm { cpuid } /*0x6074*/ - if ( a2 ) /*0x6079*/ - *a2 = result; /*0x607b*/ - if ( a3 ) /*0x6081*/ - *a3 = _RBX; /*0x6083*/ - if ( a4 ) /*0x6089*/ - *a4 = _RCX; /*0x608b*/ - if ( a5 ) /*0x6091*/ - *a5 = _RDX; /*0x6093*/ - return result; /*0x6096*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_60a0.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_60a0.txt deleted file mode 100644 index 4566827..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_60a0.txt +++ /dev/null @@ -1,35 +0,0 @@ -int *__fastcall sub_60A0(int *buf_1, int value_2, unsigned __int64 n4) -{ - int *buf; // rdi - int value_1; // eax - unsigned __int64 count; // rcx - __int16 value; // bx - int v7; // eax - __int64 v8; // rdx - char count_1; // dl - unsigned __int64 i; // rcx - - buf = buf_1; /*0x60a3*/ - value_1 = value_2; /*0x60a6*/ - count = n4; /*0x60a9*/ - BYTE1(value_1) = value_2; /*0x60ba*/ - value = value_1; /*0x60bc*/ - v7 = value_1 << 16; /*0x60bf*/ - LOWORD(v7) = value; /*0x60c3*/ - if ( n4 >= 4 ) /*0x60ca*/ - { - v8 = (unsigned __int8)buf & 3; /*0x60cf*/ - if ( ((unsigned __int8)buf & 3) != 0 ) /*0x60d3*/ - { - memset(buf, value, 4 - v8); /*0x60e2*/ - buf = (int *)((char *)buf + 4 - v8); /*0x60e2*/ - count = n4 - (4 - v8); /*0x60e4*/ - } - count_1 = count; /*0x60e7*/ - for ( i = count >> 2; i; --i ) /*0x60ea*/ - *buf++ = v7; /*0x60ee*/ - count = count_1 & 3; /*0x60f4*/ - } - memset(buf, value, count); /*0x60f7*/ - return buf_1; /*0x60fa*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_6100.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_6100.txt deleted file mode 100644 index 4510d9a..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_6100.txt +++ /dev/null @@ -1,75 +0,0 @@ -char *__fastcall sub_6100(char *dst_1, char *src, unsigned __int64 n8) -{ - char *dst; // rdi - unsigned __int64 count_2; // rcx - char v10; // dl - unsigned __int64 n8_1; // rax - unsigned __int64 count; // rax - __int64 count_1; // rbx - char count_3; // al - unsigned __int64 v15; // rcx - unsigned __int64 count_4; // rax - - __asm { pushf } /*0x6103*/ - dst = dst_1; /*0x6109*/ - count_2 = n8; /*0x610c*/ - v10 = 0; /*0x610f*/ - n8_1 = src - dst; /*0x6114*/ - if ( src < dst ) /*0x6117*/ - { - n8_1 = dst - src; /*0x611d*/ - if ( &src[n8] >= dst ) /*0x6123*/ - { - src += n8; /*0x6125*/ - dst += n8; /*0x6128*/ - v10 = 1; /*0x612c*/ - } - } - if ( n8 < 8 || n8_1 < 8 ) /*0x6139*/ - goto LABEL_19; /*0x6139*/ - count = (unsigned __int8)src & 7; /*0x6141*/ - count_1 = (unsigned __int8)dst & 7; /*0x6145*/ - if ( v10 ) /*0x614b*/ - { - --src; /*0x614d*/ - --dst; /*0x6150*/ - } - if ( count == count_1 && count ) /*0x615b*/ - { - if ( !v10 ) /*0x615f*/ - count = 8 - count; /*0x6164*/ - qmemcpy(dst, src, count); /*0x616d*/ - src += count; /*0x616d*/ - dst += count; /*0x616d*/ - count_2 = n8 - count; /*0x616f*/ - } - if ( v10 ) /*0x6174*/ - { - src -= 7; /*0x6176*/ - dst -= 7; /*0x617a*/ - } - count_3 = count_2; /*0x617e*/ - v15 = count_2 >> 3; /*0x6181*/ - qmemcpy(dst, src, 8 * v15); /*0x6185*/ - src += 8 * v15; /*0x6185*/ - dst += 8 * v15; /*0x6185*/ - count_4 = count_3 & 7; /*0x6188*/ - if ( count_4 ) /*0x618c*/ - { - if ( v10 ) /*0x6190*/ - { - src += 8; /*0x6192*/ - dst += 8; /*0x6196*/ - } - count_2 = count_4; /*0x619a*/ -LABEL_19: - if ( v10 ) /*0x619f*/ - { - --src; /*0x61a1*/ - --dst; /*0x61a4*/ - } - qmemcpy(dst, src, count_2); /*0x61a7*/ - } - __asm { popf } /*0x61a9*/ - return dst_1; /*0x61ac*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_7CC.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_7CC.txt deleted file mode 100644 index d35329c..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_7CC.txt +++ /dev/null @@ -1,37 +0,0 @@ -char __fastcall sub_7CC(__int64 a1, __int64 a2, __int64 a3, __int64 a4) -{ - __int64 v4; // rax - __int64 v6; // rax - char v7; // cl - char n3; // [rsp+50h] [rbp+8h] BYREF - char v9; // [rsp+58h] [rbp+10h] BYREF - char n2; // [rsp+60h] [rbp+18h] BYREF - - v4 = qword_7920; /*0x7d0*/ - if ( !qword_7920 ) /*0x7da*/ - { - if ( (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920) < 0 ) /*0x7fc*/ - { - qword_7920 = 0; /*0x7fe*/ - return 85; /*0x80b*/ - } - v4 = qword_7920; /*0x80d*/ - } - n2 = 2; /*0x819*/ - LOBYTE(a4) = 69; /*0x823*/ - n3 = 3; /*0x82b*/ - LOBYTE(a2) = 46; /*0x847*/ - v6 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, char, char *, char *))(v4 + 16))( /*0x84c*/ - v4, - a2, - 0, - a4, - &n2, - 1, - &v9, - &n3); - v7 = v9; /*0x84f*/ - if ( v6 < 0 ) /*0x85c*/ - return 85; /*0x85c*/ - return v7; /*0x861*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_868.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_868.txt deleted file mode 100644 index b3f19c4..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_868.txt +++ /dev/null @@ -1,41 +0,0 @@ -__int64 __fastcall sub_868(char a1, _BYTE *a2, __int64 a3, __int64 a4) -{ - __int64 v4; // rax - _BYTE *v5; // rbx - __int64 result; // rax - _BYTE v8[24]; // [rsp+40h] [rbp-18h] BYREF - char n3; // [rsp+70h] [rbp+18h] BYREF - char v10; // [rsp+78h] [rbp+20h] BYREF - - v4 = qword_7920; /*0x872*/ - v5 = a2; /*0x879*/ - if ( !qword_7920 ) /*0x882*/ - { - result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x89b*/ - if ( result < 0 ) /*0x8a4*/ - { - qword_7920 = 0; /*0x8a6*/ - return result; /*0x8ae*/ - } - v4 = qword_7920; /*0x8b0*/ - } - v8[0] = a1; /*0x8bc*/ - LOBYTE(a4) = 44; /*0x8c6*/ - n3 = 3; /*0x8ce*/ - LOBYTE(a2) = 46; /*0x8ea*/ - result = (*(__int64 (__fastcall **)(__int64, _BYTE *, _QWORD, __int64, _BYTE *, char, char *, char *))(v4 + 16))( /*0x8ef*/ - v4, - a2, - 0, - a4, - v8, - 1, - &v10, - &n3); - if ( result >= 0 ) /*0x8f5*/ - { - *v5 = v10; /*0x8fb*/ - return 0; /*0x8fd*/ - } - return result; /*0x904*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_90C.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_90C.txt deleted file mode 100644 index feb3d23..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_90C.txt +++ /dev/null @@ -1,36 +0,0 @@ -__int64 __fastcall sub_90C(char a1, __int64 a2, __int64 a3, __int64 a4) -{ - __int64 v4; // rax - char v5; // bl - __int64 result; // rax - _BYTE v8[24]; // [rsp+40h] [rbp-18h] BYREF - char n3; // [rsp+70h] [rbp+18h] BYREF - char v10; // [rsp+78h] [rbp+20h] BYREF - - v4 = qword_7920; /*0x916*/ - v5 = a2; /*0x91d*/ - if ( !qword_7920 ) /*0x925*/ - { - result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x93e*/ - if ( result < 0 ) /*0x947*/ - { - qword_7920 = 0; /*0x949*/ - return result; /*0x951*/ - } - v4 = qword_7920; /*0x953*/ - } - v8[0] = a1; /*0x95f*/ - LOBYTE(a4) = 43; /*0x969*/ - v8[1] = v5; /*0x971*/ - LOBYTE(a2) = 46; /*0x98c*/ - n3 = 3; /*0x991*/ - return (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _BYTE *, char, char *, char *))(v4 + 16))( /*0x99e*/ - v4, - a2, - 0, - a4, - v8, - 2, - &v10, - &n3); -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_9A4.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_9A4.txt deleted file mode 100644 index b22d79d..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_9A4.txt +++ /dev/null @@ -1,54 +0,0 @@ -__int64 __fastcall sub_9A4(char *a1, __int64 a2, __int64 a3, __int64 a4) -{ - __int64 v4; // r10 - __int64 result; // rax - unsigned __int8 v7; // di - int v8; // [rsp+28h] [rbp-20h] - char v9; // [rsp+58h] [rbp+10h] BYREF - char v10; // [rsp+60h] [rbp+18h] BYREF - char v11; // [rsp+68h] [rbp+20h] BYREF - unsigned __int8 v12; // [rsp+69h] [rbp+21h] - char v13; // [rsp+6Ah] [rbp+22h] - char v14; // [rsp+6Bh] [rbp+23h] - - v4 = qword_7920; /*0x9ae*/ - result = 0; /*0x9b5*/ - if ( !qword_7920 ) /*0x9bd*/ - { - result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x9d6*/ - if ( result < 0 ) /*0x9df*/ - { - qword_7920 = 0; /*0x9e1*/ - return result; /*0x9e1*/ - } - v4 = qword_7920; /*0x9f4*/ - } - v7 = 0; /*0x9fb*/ - if ( a1[1] ) /*0x9fe*/ - { - while ( 1 ) /*0xa06*/ - { - LOBYTE(a4) = 18; /*0xa06*/ - v11 = *a1; /*0xa09*/ - LOBYTE(a2) = 56; /*0xa14*/ - v12 = v7; /*0xa16*/ - v14 = 0; /*0xa1b*/ - v9 = 1; /*0xa20*/ - v13 = a1[v7 + 2]; /*0xa42*/ - LOBYTE(v8) = 4; /*0xa49*/ - result = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, int, char *, char *))(v4 + 16))( /*0xa53*/ - v4, - a2, - 0, - a4, - &v11, - v8, - &v10, - &v9); - if ( ++v7 >= (unsigned __int8)a1[1] ) /*0xa5e*/ - break; /*0xa5e*/ - v4 = qword_7920; /*0xa60*/ - } - } - return result; /*0x9ee*/ -} \ No newline at end of file diff --git a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_A6C.txt b/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_A6C.txt deleted file mode 100644 index 8e9c216..0000000 --- a/LenovoServerPkg/SetupDefaults/SetupDefaultLoad/sub_A6C.txt +++ /dev/null @@ -1,277 +0,0 @@ -__int64 __fastcall sub_A6C(unsigned __int8 a1) -{ - int v1; // ebx - __int64 v2; // rdx - __int64 n4; // r8 - __int64 v4; // r9 - __int64 v5; // rdi - __int64 v6; // rsi - __int64 v7; // rbx - char n2_4; // al - __int64 v9; // rax - char n2_2; // cl - char n2_1; // al - __int64 v12; // rax - char v13; // cl - __int64 v14; // rax - char v15; // dl - unsigned __int8 v17; // [rsp+30h] [rbp-D0h] BYREF - char n8; // [rsp+31h] [rbp-CFh] - char n2; // [rsp+32h] [rbp-CEh] BYREF - char v20; // [rsp+33h] [rbp-CDh] - char v21; // [rsp+34h] [rbp-CCh] - char n2_3; // [rsp+35h] [rbp-CBh] - char v23; // [rsp+36h] [rbp-CAh] - char v24; // [rsp+37h] [rbp-C9h] - char v25; // [rsp+38h] [rbp-C8h] - char v26; // [rsp+39h] [rbp-C7h] - _BYTE v27[72]; // [rsp+140h] [rbp+40h] BYREF - char n15; // [rsp+188h] [rbp+88h] - _BYTE v29[11]; // [rsp+310h] [rbp+210h] BYREF - char n3; // [rsp+31Bh] [rbp+21Bh] - _BYTE v31[52]; // [rsp+3F0h] [rbp+2F0h] BYREF - char n7; // [rsp+424h] [rbp+324h] - char v33; // [rsp+426h] [rbp+326h] - char v34; // [rsp+428h] [rbp+328h] - char v35; // [rsp+42Ah] [rbp+32Ah] - char v36; // [rsp+42Ch] [rbp+32Ch] - char v37; // [rsp+42Eh] [rbp+32Eh] - char v38; // [rsp+430h] [rbp+330h] - char n2_5; // [rsp+477h] [rbp+377h] - char v40; // [rsp+50Ah] [rbp+40Ah] - _BYTE v41[304]; // [rsp+720h] [rbp+620h] BYREF - _BYTE v42[352]; // [rsp+850h] [rbp+750h] BYREF - _BYTE v43[528]; // [rsp+9B0h] [rbp+8B0h] BYREF - _BYTE v44[1504]; // [rsp+BC0h] [rbp+AC0h] BYREF - char v45[6688]; // [rsp+11A0h] [rbp+10A0h] BYREF - char v46; // [rsp+2BD0h] [rbp+2AD0h] BYREF - __int64 n301; // [rsp+2BD8h] [rbp+2AD8h] BYREF - - n301 = 0; /*0xa83*/ - v1 = a1; /*0xa90*/ - v17 = a1; /*0xa98*/ - n8 = 0; /*0xa9c*/ - sub_5490(&n2, 256); /*0xaa1*/ - v5 = 0; /*0xaa6*/ - v6 = 0; /*0xaa8*/ - if ( !(_BYTE)v1 ) /*0xaae*/ - { - n8 = 8; /*0xf22*/ - n301 = 301; /*0xf48*/ - v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xf5d*/ - L"SocketProcessorCoreConfig", - &unk_7410, - &v46, - &n301, - v41); - if ( v7 >= 0 ) /*0xf63*/ - { - n2 = v41[5] == 0; /*0xf72*/ - v20 = v41[7]; /*0xf77*/ - } - n301 = 462; /*0xf7f*/ - v6 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xfb5*/ - L"SocketPowerManagementConfig", - &unk_7430, - &v46, - &n301, - v27); - if ( v6 >= 0 ) /*0xfbb*/ - { - v21 = v27[4]; /*0xfc0*/ - n2_3 = v27[24]; /*0xfc7*/ - v23 = v27[46]; /*0xfce*/ - v24 = v27[49]; /*0xfd5*/ - v25 = v27[48]; /*0xfdc*/ - v26 = v27[63]; /*0xfe3*/ - } - goto LABEL_53; /*0xfe3*/ - } - switch ( v1 ) - { - case 1: - n8 = 5; /*0xde5*/ - n301 = 341; /*0xe0b*/ - v12 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xe1d*/ - L"SocketMpLinkConfig", - &unk_74A0, - &v46, - &n301, - v42); - v13 = v20; /*0xe20*/ - v7 = v12; /*0xe2c*/ - n301 = 514; /*0xe2f*/ - if ( v12 >= 0 ) /*0xe52*/ - v13 = v42[21]; /*0xe52*/ - v20 = v13; /*0xe68*/ - v14 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xe73*/ - L"SocketMemoryConfig", - &unk_73E0, - &v46, - &n301, - v43); - v15 = v23; /*0xe76*/ - v6 = v14; /*0xe9a*/ - n301 = 224; /*0xe9d*/ - if ( v14 >= 0 ) /*0xea8*/ - v15 = v43[168]; /*0xea8*/ - v23 = v15; /*0xeb2*/ - v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xecd*/ - L"SocketCommonRcConfig", - &unk_74B0, - &v46, - &n301, - v29); - if ( v5 >= 0 ) - { - n2 = v29[9]; /*0xee4*/ - if ( n3 == 3 ) - v21 = 1; /*0xef2*/ - else - v21 = n3 != 0 ? v21 : 0; - n2_3 = v29[10]; /*0xf07*/ - n301 = 224; /*0xf0b*/ - } - goto LABEL_53; /*0xf16*/ - case 2: - n8 = 2; /*0xd06*/ - n301 = 462; /*0xd2c*/ - v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xd41*/ - L"SocketPowerManagementConfig", - &unk_7430, - &v46, - &n301, - v27); - if ( v5 >= 0 ) /*0xd47*/ - { - if ( n15 ) /*0xd51*/ - { - if ( n15 == 7 ) /*0xd5d*/ - { - n2 = 1; /*0xd5f*/ - } - else if ( n15 == 8 ) /*0xd69*/ - { - n2 = 2; /*0xd6b*/ - } - else - { - n2_1 = n2; /*0xd72*/ - if ( n15 == 15 ) /*0xd7f*/ - n2_1 = 3; /*0xd7f*/ - n2 = n2_1; /*0xd82*/ - } - } - else - { - n2 = 0; /*0xd53*/ - } - } - n301 = 814; /*0xd8d*/ - v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xdc3*/ - L"Setup", - &unk_7568, - &v46, - &n301, - v31); - if ( v7 < 0 ) /*0xdc9*/ - return v5; /*0xdc9*/ - v20 = v40; /*0xdd5*/ - goto LABEL_53; /*0xdd9*/ - case 3: - n8 = 5; /*0xc38*/ - n301 = 6668; /*0xc5e*/ - v9 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, char *))(qword_7940 + 72))( /*0xc70*/ - L"SocketIioConfig", - &unk_7470, - &v46, - &n301, - v45); - n2_2 = n2; /*0xc73*/ - v5 = v9; /*0xc7f*/ - n301 = 1495; /*0xc82*/ - if ( v9 >= 0 ) /*0xca5*/ - n2_2 = v45[0]; /*0xca5*/ - n2 = n2_2; /*0xcbb*/ - v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xcc9*/ - L"PchRcConfiguration", - &unk_73B0, - &v46, - &n301, - v44); - if ( v7 < 0 ) /*0xccf*/ - return v5; /*0xccf*/ - v20 = v44[196]; /*0xcdb*/ - v21 = v44[197]; /*0xce5*/ - n2_3 = v44[82]; /*0xcef*/ - v23 = v44[83]; /*0xcf9*/ - goto LABEL_53; /*0xcfd*/ - case 4: - n8 = 0; /*0xc27*/ - return sub_9A4((char *)&v17, v2, n4, v4); /*0x1000*/ - case 5: - n8 = 8; /*0xb49*/ - n301 = 814; /*0xb6f*/ - v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xb84*/ - L"Setup", - &unk_7568, - &v46, - &n301, - v31); - if ( v5 < 0 ) /*0xb8a*/ - return v5; /*0xb8a*/ - LOBYTE(v2) = n7; /*0xb96*/ - v20 = v37; /*0xb9c*/ - v21 = v38; /*0xba6*/ - v23 = v36; /*0xbb0*/ - v24 = v33 - 7; /*0xbbd*/ - v25 = v34 - 1; /*0xbc9*/ - if ( n7 == 3 ) /*0xbd4*/ - { - n2_3 = 0; /*0xbd6*/ - } - else - { - n4 = 4; /*0xbdd*/ - switch ( n7 ) /*0xbe6*/ - { - case 4: /*0xbe6*/ - n2_3 = 1; /*0xbe8*/ - break; - case 5: /*0xbe6*/ - n2_3 = 2; /*0xbf4*/ - break; - case 6: /*0xbe6*/ - n2_3 = 3; /*0xc00*/ - break; - default: - n2_4 = n2_3; /*0xc06*/ - if ( n7 == 7 ) /*0xc0e*/ - n2_4 = 4; /*0xc0e*/ - n2_3 = n2_4; /*0xc12*/ - break; - } - } - v26 = v35 != 1; /*0xc1d*/ - break; - case 6: - n8 = 1; /*0xaed*/ - n301 = 814; /*0xb12*/ - v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xb27*/ - L"Setup", - &unk_7568, - &v46, - &n301, - v31); - if ( v7 < 0 ) /*0xb2d*/ - return v5; /*0xb2d*/ - n2 = n2_5; /*0xb39*/ -LABEL_53: - if ( v7 < 0 || v6 < 0 ) /*0xfef*/ - return v5; /*0xfef*/ - break; - } - if ( v5 >= 0 ) /*0xff4*/ - return sub_9A4((char *)&v17, v2, n4, v4); /*0xff4*/ - return v5; /*0x100e*/ -} \ No newline at end of file diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/BaseMemoryStallHelpers.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/BaseMemoryStallHelpers.c new file mode 100644 index 0000000..d901e8e --- /dev/null +++ b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/BaseMemoryStallHelpers.c @@ -0,0 +1,86 @@ +/* Consolidated from decompiled shard files. */ +/* Source: ffd7f6ec.c */ +void *__cdecl FillBuffer(void *buf, unsigned int count, char value) +{ + memset(buf, value, count); /*0xffd7f6f9*/ + return buf; /*0xffd7f6ff*/ +} + +/* Source: ffd7f72c.c */ +char *__cdecl sub_FFD7F72C(char *dst, char *src, unsigned int count_1) +{ + unsigned int count; // edx + char *dst_1; // edi + char *src_1; // esi + + count = count_1; /*0xffd7f736*/ + if ( src < dst && &src[count_1 - 1] >= dst ) /*0xffd7f744*/ + { + src_1 = &src[count_1 - 1]; /*0xffd7f758*/ + dst_1 = &dst[count_1 - 1]; /*0xffd7f75a*/ + } + else + { + count = count_1 & 3; /*0xffd7f748*/ + qmemcpy(dst, src, 4 * (count_1 >> 2)); /*0xffd7f751*/ + src_1 = &src[4 * (count_1 >> 2)]; /*0xffd7f751*/ + dst_1 = &dst[4 * (count_1 >> 2)]; /*0xffd7f751*/ + } + qmemcpy(dst_1, src_1, count); /*0xffd7f761*/ + return dst; /*0xffd7f768*/ +} + +/* Source: ffd7f76c.c */ +int __cdecl StoreDwordPairs(int a1, int a2, int a3, int a4) +{ + do /*0xffd7f785*/ + { + *(_DWORD *)(a1 + 8 * a2 - 8) = a3; /*0xffd7f77d*/ + *(_DWORD *)(a1 + 8 * a2-- - 4) = a4; /*0xffd7f781*/ + } + while ( a2 ); /*0xffd7f785*/ + return a1; /*0xffd7f789*/ +} + +/* Source: ffd7f78c.c */ +void *__cdecl FillBuffer32(void *buf, unsigned int count, int value) +{ + memset32(buf, value, count); /*0xffd7f799*/ + return buf; /*0xffd7f79f*/ +} + +/* Source: ffd7f9f7.c */ +int __fastcall StallForTicks(unsigned int a1) +{ + unsigned int v1; // esi + int n0x400000; // edi + int v3; // ebx + int result; // eax + + v1 = a1 >> 22; /*0xffd7fa04*/ + n0x400000 = a1 & 0x3FFFFF; /*0xffd7fa07*/ + do /*0xffd7fa3f*/ + { + v3 = n0x400000 + (sub_FFD8CD6B(1288) & 0xFFFFFF); /*0xffd7fa1c*/ + n0x400000 = 0x400000; /*0xffd7fa1e*/ + while ( ((v3 - sub_FFD8CD6B(1288)) & 0x800000) == 0 ) /*0xffd7fa38*/ + _mm_pause(); /*0xffd7fa25*/ + result = v1--; /*0xffd7fa3a*/ + } + while ( result ); /*0xffd7fa3f*/ + return result; /*0xffd7fa41*/ +} + +/* Source: ffd7fa46.c */ +unsigned int __fastcall StallMicroseconds(unsigned int a1) +{ + unsigned int v2; // eax + unsigned __int64 v3; // rtt + + v2 = (3579545 * (unsigned __int64)a1) >> 32; /*0xffd7fa6c*/ + LODWORD(v3) = 3579545 * a1; /*0xffd7fa7c*/ + HIDWORD(v3) = v2 % 0xF4240; /*0xffd7fa7c*/ + StallForTicks(v3 / 0xF4240, v2 / 0xF4240); /*0xffd7fa81*/ + return a1; /*0xffd7fa88*/ +} + diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/EntryDebugPerformanceTraceHub.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/EntryDebugPerformanceTraceHub.c new file mode 100644 index 0000000..0d70938 --- /dev/null +++ b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/EntryDebugPerformanceTraceHub.c @@ -0,0 +1,367 @@ +/* Consolidated from decompiled shard files. */ +/* Source: ffd7f7a1.c */ +EFI_STATUS ModuleEntryPoint(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) +{ + int v2; // eax + int v3; // ecx + void *v4; // ecx + int v5; // ecx + int v6; // eax + int v7; // eax + int v8; // eax + unsigned __int64 v10; // [esp-Ch] [ebp-10h] + + if ( (sub_FFD9165B(1024068) & 0x80u) == 0 ) /*0xffd7f7b0*/ + { + sub_FFD9168B(); /*0xffd7f7b2*/ + v2 = sub_FFD9164F(); /*0xffd7f7b7*/ + *(_BYTE *)(v2 + 1024068) |= 0x80u; /*0xffd7f7c3*/ + } + DebugPrint(64, (int)"SiInitPrePolicy() Start\n"); /*0xffd7f88f*/ + TraceHubInitialize(0); /*0xffd7f898*/ + RecordPerformanceEntry(v3, __rdtsc()); /*0xffd7f8a3*/ + PrintPchInfo(); /*0xffd7f8a8*/ + DebugPrint(64, (int)"PchInitPrePolicy() - Start\n"); /*0xffd7f8b4*/ + PchWdtInit(); /*0xffd7f8b9*/ + InstallPchResetPpi(); /*0xffd7f8be*/ + InstallPchSpiPpi(); /*0xffd7f8c3*/ + PchInitPreMem(); /*0xffd7f8c8*/ + sub_FFD8B940(v4); /*0xffd7f8cd*/ + DebugPrint(64, (int)"PchInitPrePolicy() - End\n"); /*0xffd7f8d9*/ + v10 = __rdtsc(); /*0xffd7f8e5*/ + EndPerformanceMeasurement(v5, v10, HIDWORD(v10)); /*0xffd7f8e7*/ + v6 = sub_FFD8AD54(); /*0xffd7f8ec*/ + v7 = (*(int (__cdecl **)(int, void *))(*(_DWORD *)v6 + 36))(v6, &unk_FFD97FEC); /*0xffd7f8f9*/ + if ( v7 < 0 ) /*0xffd7f901*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v7); /*0xffd7f90e*/ + v8 = GetReportStatusCodePpi(); /*0xffd7f916*/ + if ( v8 ) /*0xffd7f91d*/ + (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffd7f92e*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SiInit\\Pei\\SiInitPreMem.c", + 155, + "!EFI_ERROR (Status)"); + } + DebugPrint(64, (int)"SiInitPrePolicy() - End\n"); /*0xffd7f93b*/ + return 0; /*0xffd7f947*/ +} + +/* Source: ffd7f97e.c */ +int GetReportStatusCodePpi() +{ + int v0; // eax + _BYTE v2[4]; // [esp+0h] [ebp-8h] BYREF + int v3; // [esp+4h] [ebp-4h] BYREF + + v0 = sub_FFD8AD54(); /*0xffd7f983*/ + if ( (*(int (__cdecl **)(int, void *, _DWORD, _BYTE *, int *))(*(_DWORD *)v0 + 32))(v0, &unk_FFD97EAC, 0, v2, &v3) >= 0 ) /*0xffd7f9a2*/ + return v3; /*0xffd7f9a8*/ + else + return 0; /*0xffd7f9a4*/ +} + +/* Source: ffd7f9af.c */ +int DebugPrint(int a1, int a2, ...) +{ + int result; // eax + int (__cdecl **v3)(int, int, char *); // esi + va_list va; // [esp+10h] [ebp+Ch] BYREF + + va_start(va, a2); + result = GetReportStatusCodePpi(); /*0xffd7f9b0*/ + v3 = (int (__cdecl **)(int, int, char *))result; /*0xffd7f9b5*/ + if ( result ) /*0xffd7f9b9*/ + { + result = sub_FFD8AD05(); /*0xffd7f9bb*/ + if ( (result & a1) != 0 ) /*0xffd7f9c6*/ + return (*v3)(a1, a2, (char *)va); /*0xffd7f9d2*/ + } + return result; /*0xffd7f9d7*/ +} + +/* Source: ffd7f9d9.c */ +int __fastcall sub_FFD7F9D9(int a1, int a2, const char *PeiServices____((void__)_0)) +{ + int result; // eax + + result = GetReportStatusCodePpi(); /*0xffd7f9df*/ + if ( result ) /*0xffd7f9e6*/ + return (*(int (__cdecl **)(int, int, const char *))(result + 4))(a1, a2, PeiServices____((void__)_0)); /*0xffd7f9ee*/ + return result; /*0xffd7f9f4*/ +} + +/* Source: ffd7fa8d.c */ +int __fastcall GetPerformanceLogBuffer(int *a1, int *a2) +{ + int v4; // eax + int v5; // eax + int v6; // eax + int v7; // edi + int v8; // eax + int result; // eax + int v10; // eax + int v11; // eax + + if ( !a1 ) /*0xffd7fa9d*/ + { + v4 = GetReportStatusCodePpi(); /*0xffd7fa9f*/ + if ( v4 ) /*0xffd7faa6*/ + (*(void (__cdecl **)(const char *, int, const char *))(v4 + 4))( /*0xffd7fab0*/ + "e:\\hs\\MdeModulePkg\\Library\\PeiPerformanceLib\\PeiPerformanceLib.c", + 57, + "PeiPerformanceLog != ((void *) 0)"); + } + if ( !a2 ) /*0xffd7fab8*/ + { + v5 = GetReportStatusCodePpi(); /*0xffd7faba*/ + if ( v5 ) /*0xffd7fac1*/ + (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd7facb*/ + "e:\\hs\\MdeModulePkg\\Library\\PeiPerformanceLib\\PeiPerformanceLib.c", + 58, + "PeiPerformanceIdArray != ((void *) 0)"); + } + v6 = sub_FFD8CE7C(&unk_FFD97F9C); /*0xffd7fad8*/ + if ( v6 ) /*0xffd7fadf*/ + { + *a1 = v6 + 24; /*0xffd7fae9*/ + v7 = sub_FFD8CE7C(&unk_FFD97ECC); /*0xffd7faf0*/ + if ( !v7 ) /*0xffd7faf4*/ + { + v8 = GetReportStatusCodePpi(); /*0xffd7faf6*/ + if ( v8 ) /*0xffd7fafd*/ + (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffd7fb07*/ + "e:\\hs\\MdeModulePkg\\Library\\PeiPerformanceLib\\PeiPerformanceLib.c", + 72, + "GuidHob != ((void *) 0)"); + } + result = v7 + 24; /*0xffd7fb0d*/ + } + else + { + v10 = sub_FFD8CF46(&unk_FFD97F9C, 40008); /*0xffd7fb1b*/ + *a1 = v10; /*0xffd7fb22*/ + *a1 = sub_FFD8D4C8(v10, 40008); /*0xffd7fb2b*/ + v11 = sub_FFD8CF46(&unk_FFD97ECC, 4000); /*0xffd7fb39*/ + *a2 = v11; /*0xffd7fb40*/ + result = sub_FFD8D4C8(v11, 4000); /*0xffd7fb44*/ + } + *a2 = result; /*0xffd7fb4a*/ + return result; /*0xffd7fb49*/ +} + +/* Source: ffd7fb51.c */ +int __thiscall FindLatestPerformanceEntry(unsigned int *this) +{ + int v2; // esi + unsigned int v3; // eax + int v4; // ebx + int v5; // ebp + unsigned int v7; // [esp+8h] [ebp-4h] + + v2 = 0; /*0xffd7fb56*/ + v3 = *this; /*0xffd7fb58*/ + v7 = *this; /*0xffd7fb5a*/ + if ( *this ) /*0xffd7fb58*/ + { + while ( 1 ) /*0xffd7fb68*/ + { + v4 = v3 - v2 - 1; /*0xffd7fb68*/ + v5 = 40 * v4; /*0xffd7fb69*/ + if ( !*((_QWORD *)this + 5 * v4 + 5) /*0xffd7fba8*/ + && *(_UNKNOWN **)((char *)this + v5 + 8) == &unk_FFD97F8C + && *(unsigned int *)((char *)this + v5 + 12) == (*(this + 10 * v4 + 11) | *(this + 10 * v4 + 10)) + && !sub_FFD8D0FF(7) + && !sub_FFD8D0FF(7) ) + { + break; /*0xffd7fba8*/ + } + v3 = v7; /*0xffd7fbb2*/ + if ( ++v2 >= v7 ) /*0xffd7fbb9*/ + return v2; /*0xffd7fbb9*/ + } + return v4; /*0xffd7fbbd*/ + } + return v2; /*0xffd7fbc1*/ +} + +/* Source: ffd7fbc7.c */ +int __cdecl RecordPerformanceEntry(int a1, __int64 a2) +{ + _DWORD *v2; // ecx + int v3; // edx + int v5; // edi + int v6; // esi + int v7; // eax + int v8; // edx + unsigned __int64 v9; // rax + int v10; // [esp+8h] [ebp-8h] BYREF + _DWORD *v11; // [esp+Ch] [ebp-4h] BYREF + + GetPerformanceLogBuffer((int *)&v11, &v10); /*0xffd7fbd4*/ + v2 = v11; /*0xffd7fbd9*/ + v3 = *v11; /*0xffd7fbdc*/ + if ( *v11 < 0x3E8u ) /*0xffd7fbe4*/ + { + v5 = HIDWORD(a2); /*0xffd7fbfe*/ + v6 = 10 * v3; /*0xffd7fc04*/ + *v11 = v3 + 1; /*0xffd7fc07*/ + v2[v6 + 3] = 0; /*0xffd7fc0b*/ + v2[v6 + 10] = 0; /*0xffd7fc0f*/ + v2[v6 + 11] = 0; /*0xffd7fc13*/ + v7 = v10; /*0xffd7fc17*/ + v2[v6 + 2] = &unk_FFD97F8C; /*0xffd7fc1a*/ + *(_DWORD *)(v7 + 4 * v3) = 20704; /*0xffd7fc22*/ + v8 = a2; /*0xffd7fc29*/ + if ( !a2 ) /*0xffd7fc30*/ + { + v9 = __rdtsc(); /*0xffd7fc32*/ + v5 = HIDWORD(v9); /*0xffd7fc34*/ + v8 = v9; /*0xffd7fc36*/ + } + v2[v6 + 8] = v8; /*0xffd7fc38*/ + v2[v6 + 9] = v5; /*0xffd7fc3e*/ + return 0; /*0xffd7fc3c*/ + } + else + { + DebugPrint(0x80000000, (int)"PEI performance log array out of resources\n"); /*0xffd7fbf0*/ + return -2147483639; /*0xffd7fbf7*/ + } +} + +/* Source: ffd7fc48.c */ +int __cdecl EndPerformanceMeasurement(int a1, unsigned __int64 a2) +{ + unsigned __int64 v2; // kr00_8 + unsigned int *v3; // ebx + unsigned int v4; // eax + int v6; // [esp+Ch] [ebp-4h] BYREF + + v2 = a2; /*0xffd7fc54*/ + if ( !a2 ) /*0xffd7fc59*/ + v2 = __rdtsc(); /*0xffd7fc5f*/ + GetPerformanceLogBuffer((int *)&a2 + 1, &v6); /*0xffd7fc67*/ + v3 = (unsigned int *)HIDWORD(a2); /*0xffd7fc6c*/ + v4 = sub_FFD7FB51((unsigned int *)HIDWORD(a2)); /*0xffd7fc74*/ + if ( v4 >= *v3 ) /*0xffd7fc7e*/ + return -2147483634; /*0xffd7fc80*/ + *(_QWORD *)&v3[10 * v4 + 10] = v2; /*0xffd7fc8b*/ + return 0; /*0xffd7fc94*/ +} + +/* Source: ffd7fc9b.c */ +int SetTraceHubFwBar() +{ + int v0; // eax + int v2; // esi + int v3; // eax + int v4; // [esp+4h] [ebp-4h] BYREF + + sub_FFD8C2A0(0xEFu, 0x2234u, 4, &v4); /*0xffd7fcb0*/ + if ( v4 < 0 ) /*0xffd7fcbf*/ + { + DebugPrint(0x80000000, (int)"TraceHubBaseSet Error. DMIC.SRL is set.\n"); /*0xffd7fcc7*/ + v0 = GetReportStatusCodePpi(); /*0xffd7fcce*/ + if ( v0 ) /*0xffd7fcd5*/ + (*(void (__cdecl **)(const char *, int, const char *))(v0 + 4))( /*0xffd7fce3*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmTraceHubInitLib\\PeiDxeSmmTraceHubInitLib.c", + 64, + "((BOOLEAN)(0==1))"); + return -2147483645; /*0xffd7fcee*/ + } + v2 = sub_FFD8CBBA(0, 31, 7); /*0xffd7fcfd*/ + if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v2) == 0xFFFF ) /*0xffd7fd0e*/ + { + v3 = GetReportStatusCodePpi(); /*0xffd7fd10*/ + if ( v3 ) /*0xffd7fd17*/ + (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd7fd20*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmTraceHubInitLib\\PeiDxeSmmTraceHubInitLib.c", + 74, + "((BOOLEAN)(0==1))"); + return -2147483645; /*0xffd7fd20*/ + } + *(_DWORD *)(v2 + 112) = -32768000; /*0xffd7fd2c*/ + *(_DWORD *)(v2 + 116) = 0; /*0xffd7fd2f*/ + sub_FFD8C497(4, -32768000); /*0xffd7fd40*/ + sub_FFD8C497(4, 0); /*0xffd7fd50*/ + sub_FFD8C5F6(255, 2); /*0xffd7fd63*/ + return 0; /*0xffd7fd6d*/ +} + +/* Source: ffd7fd72.c */ +int __fastcall TraceHubInitialize(char a1) +{ + int v2; // esi + int result; // eax + unsigned int v4; // [esp+Ch] [ebp-4h] BYREF + + DebugPrint(64, (int)"TraceHubInitialize() - Start\n"); /*0xffd7fd84*/ + sub_FFD8C909(&v4); /*0xffd7fd8c*/ + *(_BYTE *)(v4 + 1488) = 0; /*0xffd7fd9b*/ + v2 = sub_FFD8CBBA(0, 31, 7); /*0xffd7fdb0*/ + if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v2) == 0xFFFF ) /*0xffd7fdc1*/ + return DebugPrint(64, (int)"TraceHubInitialize() - End. TraceHub device is not present \n"); /*0xffd7fdc8*/ + if ( (*(_DWORD *)(v2 + 4) & 2) != 0 ) /*0xffd7fdd2*/ + { + DebugPrint(64, (int)"TraceHubInitialize() - End. Early init done already \n"); /*0xffd7fdda*/ + DebugPrint(64, (int)"TraceHubInitialize() - FW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 112)); /*0xffd7fde9*/ + DebugPrint(64, (int)"TraceHubInitialize() - MTB_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 16)); /*0xffd7fdfb*/ + DebugPrint(64, (int)"TraceHubInitialize() - SW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 24)); /*0xffd7fe0d*/ + result = MEMORY[0xFE1000E0]; /*0xffd7fe1a*/ + if ( (MEMORY[0xFE1000E0] & 0x1000000) != 0 ) /*0xffd7fe21*/ + return DebugPrint(64, (int)"TraceHubInitialize() - Trace Hub enabled due to SCRPD0.24\n"); /*0xffd7fe2c*/ + } + else + { + DebugPrint(64, (int)"TraceHubInitialize() - Setting MTB_BAR\n"); /*0xffd7fe37*/ + *(_DWORD *)(v2 + 16) = -32505856; /*0xffd7fe3e*/ + *(_DWORD *)(v2 + 20) = 0; /*0xffd7fe47*/ + *(_BYTE *)(v2 + 4) |= 2u; /*0xffd7fe4f*/ + if ( (MEMORY[0xFE1000E0] & 0x1000000) != 0 || a1 ) /*0xffd7fe62*/ + { + MEMORY[0xFE1000CC] = 357000000; /*0xffd7fe91*/ + *(_BYTE *)(v2 + 4) = 0; /*0xffd7fe9c*/ + DebugPrint(64, (int)"TraceHubInitialize() - Setting SW_BAR\n"); /*0xffd7fe9f*/ + *(_DWORD *)(v2 + 24) = -31457280; /*0xffd7fea9*/ + *(_DWORD *)(v2 + 28) = 0; /*0xffd7feb1*/ + DebugPrint(64, (int)"TraceHubInitialize() - Setting FW_BAR\n"); /*0xffd7feb8*/ + SetTraceHubFwBar(); /*0xffd7febd*/ + DebugPrint(64, (int)"TraceHubInitialize() - Enabling MSE and BME\n"); /*0xffd7fec8*/ + *(_BYTE *)(v2 + 4) |= 6u; /*0xffd7fed8*/ + DebugPrint(64, (int)"TraceHubInitialize () Assigned BARs:\n"); /*0xffd7fedb*/ + DebugPrint(64, (int)"TraceHubInitialize () FW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 112)); /*0xffd7feea*/ + DebugPrint(64, (int)"TraceHubInitialize () MTB_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 16)); /*0xffd7fefc*/ + DebugPrint(64, (int)"TraceHubInitialize () SW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 24)); /*0xffd7ff0e*/ + return DebugPrint(64, (int)"TraceHubInitialize () - End\n"); /*0xffd7ff1c*/ + } + else + { + *(_BYTE *)(v2 + 4) = 0; /*0xffd7fe6a*/ + DebugPrint(64, (int)"TraceHubInitialize() - Clearing MTB_BAR\n"); /*0xffd7fe6d*/ + *(_DWORD *)(v2 + 16) = 0; /*0xffd7fe78*/ + return DebugPrint( /*0xffd7fe7f*/ + 64, + (int)"TraceHubInitialize() - End. STT disconnected and Trace Hub requested to be disable\n"); + } + } + return result; /*0xffd7ff23*/ +} + +/* Source: ffd7f948.c */ +int __thiscall InstallPpi(void *this) +{ + int v2; // eax + + v2 = sub_FFD8AD54(); /*0xffd7f94b*/ + return (*(int (__cdecl **)(int, void *))(*(_DWORD *)v2 + 24))(v2, this); /*0xffd7f959*/ +} + +/* Source: ffd7f95b.c */ +int __fastcall sub_FFD7F95B(int a1, int a2, int a3, int a4) +{ + int v6; // eax + + v6 = sub_FFD8AD54(); /*0xffd7f962*/ + return (*(int (__cdecl **)(int, int, int, int, int))(*(_DWORD *)v6 + 32))(v6, a1, a2, a3, a4); /*0xffd7f97a*/ +} + diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/FailedDecompilePlaceholders.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/FailedDecompilePlaceholders.c new file mode 100644 index 0000000..4310220 --- /dev/null +++ b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/FailedDecompilePlaceholders.c @@ -0,0 +1,25 @@ +/* Consolidated from decompiled shard files. */ +/* Source: ffd83452.c */ +/* Decompilation failed at 0xffd83452 */ + +/* Source: ffd840b0.c */ +/* Decompilation failed at 0xffd840b0 */ + +/* Source: ffd84b0b.c */ +/* Decompilation failed at 0xffd84b0b */ + +/* Source: ffd84f8b.c */ +/* Decompilation failed at 0xffd84f8b */ + +/* Source: ffd858c3.c */ +/* Decompilation failed at 0xffd858c3 */ + +/* Source: ffd85bc2.c */ +/* Decompilation failed at 0xffd85bc2 */ + +/* Source: ffd86203.c */ +/* Decompilation failed at 0xffd86203 */ + +/* Source: ffd8733e.c */ +/* Decompilation failed at 0xffd8733e */ + diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/PchPreMemInit.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/PchPreMemInit.c new file mode 100644 index 0000000..fdbceb8 --- /dev/null +++ b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/PchPreMemInit.c @@ -0,0 +1,1263 @@ +/* Consolidated from decompiled shard files. */ +/* Source: ffd80210.c */ +int PchFabricErrorCheck() +{ + int v0; // eax + int v1; // eax + unsigned __int8 *v2; // esi + int v3; // edi + unsigned int i; // ebp + unsigned int v5; // ecx + unsigned int v6; // edx + unsigned int v7; // ebx + unsigned __int8 v8; // cl + unsigned int v9; // ebx + int v10; // ebx + unsigned int v11; // eax + int result; // eax + int v13; // [esp+0h] [ebp-24h] BYREF + int v14; // [esp+4h] [ebp-20h] + int v15; // [esp+8h] [ebp-1Ch] + _DWORD *v16; // [esp+Ch] [ebp-18h] BYREF + int n10; // [esp+10h] [ebp-14h] + int v18; // [esp+14h] [ebp-10h] BYREF + int v19; // [esp+18h] [ebp-Ch] BYREF + unsigned int v20; // [esp+1Ch] [ebp-8h] + unsigned int v21; // [esp+20h] [ebp-4h] + + v13 = 0; /*0xffd80213*/ + v0 = sub_FFD8AD54(); /*0xffd80217*/ + if ( (*(int (__cdecl **)(int, int, _DWORD **))(*(_DWORD *)v0 + 76))(v0, 4, &v16) ) /*0xffd80226*/ + { + v1 = GetReportStatusCodePpi(); /*0xffd80230*/ + if ( v1 ) /*0xffd80237*/ + (*(void (__cdecl **)(const char *, int, const char *))(v1 + 4))( /*0xffd80248*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", + 456, + "Status == 0"); + } + *v16 = 0; /*0xffd80255*/ + v2 = (unsigned __int8 *)&unk_FFD980CC; /*0xffd80258*/ + v15 = 0; /*0xffd8025d*/ + n10 = 10; /*0xffd80263*/ + do + { + v3 = 0; /*0xffd8026b*/ + for ( i = 0; i < 0xC00; i += 512 ) + { + v5 = 0; /*0xffd80272*/ + v6 = i + *((_DWORD *)v2 + 2); /*0xffd80274*/ + v14 = 0; /*0xffd80276*/ + v21 = v6; /*0xffd8027a*/ + if ( v2[v3 + 1] ) + { + while ( 1 ) /*0xffd80288*/ + { + v7 = v5; /*0xffd80288*/ + v8 = *v2; /*0xffd8028e*/ + v9 = v6 + 32 * v7; /*0xffd80294*/ + v20 = v9; /*0xffd8029b*/ + sub_FFD8C2A0(v8, v9, 4, &v18); /*0xffd8029f*/ + sub_FFD8C2A0(*v2, v9, 4, &v19); /*0xffd802b0*/ + v10 = v18; /*0xffd802b5*/ + if ( v18 == v19 ) /*0xffd802c0*/ + { + v13 = v18; /*0xffd802dd*/ + } + else + { + sub_FFD8C2A0(*v2, v20, 4, &v13); /*0xffd802d0*/ + v10 = v13; /*0xffd802d5*/ + } + if ( v10 ) /*0xffd802e3*/ + break; /*0xffd802e3*/ + v11 = v2[v3 + 1]; /*0xffd802e9*/ + v5 = v14 + 1; /*0xffd802ee*/ + v6 = v21; /*0xffd802ef*/ + v14 = v5; /*0xffd802f3*/ + if ( v5 >= v11 ) /*0xffd802f9*/ + goto LABEL_14; /*0xffd802f9*/ + } + *v16 |= (v10 & 7) << v15; /*0xffd80311*/ + DebugPrint(0x80000000, (int)"ERROR: Internal fabric error detected!! "); + DebugPrint( /*0xffd80331*/ + 0x80000000, + (int)"PSF PID:0x%x, RSx/PortGroup:0x%x, Port:0x%x, Channel:0, error bits:0x%x\n", + *v2, + v3, + v14, + v10); + } +LABEL_14: + ++v3; /*0xffd8033f*/ + } + v15 += 3; /*0xffd8034c*/ + v2 += 12; /*0xffd80351*/ + --n10; /*0xffd80354*/ + } + while ( n10 ); + result = sub_FFD8CFB4(&unk_FFD97F6C, 4); /*0xffd8036a*/ + if ( !result ) /*0xffd80376*/ + { + result = GetReportStatusCodePpi(); /*0xffd80378*/ + if ( result ) /*0xffd8037f*/ + return (*(int (__cdecl **)(const char *, int, const char *))(result + 4))( /*0xffd80390*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", + 504, + "HobPtr != 0"); + } + return result; /*0xffd80396*/ +} + +/* Source: ffd8040b.c */ +int __thiscall sub_FFD8040B(_BYTE *this) +{ + int v3; // [esp+8h] [ebp-8h] BYREF + + sub_FFD8C578(-983041, 0); /*0xffd80425*/ + if ( (*(this + 3504) & 1) != 0 ) /*0xffd80434*/ + { + sub_FFD8C578(-1, 16); /*0xffd8047a*/ +LABEL_6: + MEMORY[0xFE0005D0] = 0x80000000; /*0xffd80481*/ + return sub_FFD8C578(-1, 1); /*0xffd80481*/ + } + if ( (*(this + 3504) & 2) != 0 ) /*0xffd8043d*/ + { + sub_FFD8C2A0(0xB8u, 4u, 4, &v3); /*0xffd8044a*/ + if ( (v3 & 0x600) != 0 ) /*0xffd8045d*/ + goto LABEL_6; /*0xffd8045d*/ + } + sub_FFD8C578(-17, 1); /*0xffd80468*/ + return sub_FFD8C578(-1, 1); /*0xffd8049b*/ +} + +/* Source: ffd804a1.c */ +int __thiscall PchMiscInit(_BYTE *this) +{ + int v2; // eax + + if ( (unsigned __int8)sub_FFD8D59A() ) + { + DebugPrint(64, (int)"DWR: PchMiscInit() End\n"); + } + else + { + sub_FFD8BE68(); /*0xffd804c0*/ + v2 = sub_FFD8CBBA(0, 31, 2); /*0xffd804ce*/ + *(_DWORD *)(v2 + 172) &= ~0x100000u; /*0xffd804e5*/ + if ( *(this + 1) ) /*0xffd804f0*/ + sub_FFD8C5F6(255, 8); /*0xffd80506*/ + else + sub_FFD8C5F6(247, 0); /*0xffd804fd*/ + sub_FFD8C578(-1793, 8207); /*0xffd80521*/ + sub_FFD8C578(-1, 0x80000000); /*0xffd80535*/ + sub_FFD8C5F6(223, 0); /*0xffd80556*/ + } + return 0; /*0xffd8055d*/ +} + +/* Source: ffd80563.c */ +int __thiscall sub_FFD80563(int this) +{ + int v2; // ebx + unsigned int v3; // esi + + v2 = sub_FFD8CBBA(0, 31, 1); /*0xffd80574*/ + if ( (*(_DWORD *)(this + 2727) & 2) != 0 ) /*0xffd8057f*/ + sub_FFD8CCD3( /*0xffd805aa*/ + v2 + 112, + (*(_DWORD *)(this + 2727) >> 21) & 7 + | (unsigned __int16)(8 * ((32 * *(unsigned __int8 *)(this + 2728)) | HIWORD(*(_DWORD *)(this + 2727)) & 0x1F))); + v3 = *(_DWORD *)(this + 2731); /*0xffd805af*/ + if ( !v3 ) /*0xffd805b7*/ + v3 = -19922944; /*0xffd805b9*/ + *(_BYTE *)(v2 + 96) = *(_BYTE *)(v2 + 96) & 0xFC | (v3 >> 12) & 3 | 0x80; /*0xffd805d0*/ + if ( (*(_BYTE *)(this + 2727) & 1) != 0 ) /*0xffd805dd*/ + *(_DWORD *)(v3 + 16) |= 1u; /*0xffd805e5*/ + sub_FFD8CF04(v3, 0); /*0xffd805ed*/ + return sub_FFD8D005(v3, 0); /*0xffd805ff*/ +} + +/* Source: ffd80603.c */ +int __thiscall ProgramSvidSid(int this) +{ + unsigned __int8 n0x2C; // bl + int v3; // ecx + unsigned __int16 *v4; // edi + unsigned __int8 v6; // [esp+Fh] [ebp-1h] + + DebugPrint(64, (int)"ProgramSvidSid() Start\n"); /*0xffd80613*/ + sub_FFD8BE68(); /*0xffd8061a*/ + if ( (unsigned __int8)sub_FFD8D59A() ) + { + DebugPrint(64, (int)"DWR: ProgramSvidSid() End\n"); + } + else + { + n0x2C = 0; /*0xffd8062f*/ + if ( *(_WORD *)(this + 8) || *(_WORD *)(this + 10) ) /*0xffd80637*/ + { + do /*0xffd80693*/ + { + v3 = 3 * n0x2C; /*0xffd80640*/ + v6 = byte_FFD97FFE[v3]; /*0xffd80658*/ + v4 = (unsigned __int16 *)sub_FFD8CBBA(0, byte_FFD97FFC[v3], byte_FFD97FFD[v3]); /*0xffd80667*/ + if ( (unsigned __int16)sub_FFD8CCA5(v4) == 0x8086 ) /*0xffd80678*/ + *(_DWORD *)((char *)v4 + v6) = *(_DWORD *)(this + 8); /*0xffd8068b*/ + ++n0x2C; /*0xffd8068e*/ + } + while ( n0x2C < 0x2Cu ); /*0xffd80693*/ + } + DebugPrint(64, (int)"ProgramSvidSid() End\n"); /*0xffd8069c*/ + } + return 0; /*0xffd806a3*/ +} + +/* Source: ffd806ac.c */ +int __thiscall sub_FFD806AC(char *this) +{ + char *this_1; // ebx + unsigned int v2; // ebp + int v3; // eax + unsigned int n3; // esi + unsigned int v5; // edi + _DWORD *v6; // ebx + int v7; // edx + int v10; // [esp+18h] [ebp-Ch] + int v11; // [esp+1Ch] [ebp-8h] + int v12; // [esp+20h] [ebp-4h] + + v10 = 0; /*0xffd806b9*/ + this_1 = this; /*0xffd806ba*/ + v11 = 0; /*0xffd806c0*/ + v12 = 0; /*0xffd806c1*/ + v2 = (unsigned __int8)sub_FFD8BFFD(); /*0xffd806c7*/ + if ( (v2 & 0xFFFFFFF8) > 0x18 ) /*0xffd806d2*/ + { + v3 = GetReportStatusCodePpi(); /*0xffd806d4*/ + if ( v3 ) /*0xffd806db*/ + (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd806ec*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", + 958, + "(MaxPciePortNum / 8) <= 3"); + } + n3 = 0; /*0xffd806f2*/ + v5 = 0; /*0xffd806f4*/ + if ( v2 ) /*0xffd806f8*/ + { + v6 = this_1 + 28; /*0xffd806fa*/ + do /*0xffd8072a*/ + { + if ( (*v6 & 0x800) != 0 ) /*0xffd80705*/ + v7 = (unsigned __int16)*v6 >> 12; /*0xffd8070a*/ + else + v7 = 0; /*0xffd8070f*/ + v6 += 25; /*0xffd8071e*/ + *(&v10 + (v5 >> 3)) |= v7 << (4 * (v5 & 7)); /*0xffd80723*/ + ++v5; /*0xffd80727*/ + } + while ( v5 < v2 ); /*0xffd8072a*/ + this_1 = this; /*0xffd8072c*/ + } + v12 |= (*(_DWORD *)(this_1 + 2755) & 0xFFFFFF80) << 21; /*0xffd80747*/ + DebugPrint(64, (int)"DRCRM: 0x%08x 0x%08x 0x%08x\n", v10, v11, v12); + do /*0xffd80779*/ + sub_FFD8C497(4, *(&v10 + n3++)); /*0xffd8076e*/ + while ( n3 < 3 ); /*0xffd80779*/ + return sub_FFD8C578(-1, -2147254272); /*0xffd8078e*/ +} + +/* Source: ffd80796.c */ +// positive sp value has been detected, the output may be wrong! +int __thiscall sub_FFD80796(int this) +{ + int v2; // ebx + int v3; // esi + int v4; // ebp + int v5; // eax + int v6; // eax + int v7; // eax + int v8; // eax + int v9; // eax + int v10; // eax + int v11; // eax + int v12; // eax + bool v13; // zf + char v14; // bl + _BYTE *v15; // eax + int n3; // ecx + int v17; // edx + int v18; // eax + int v19; // edx + int v20; // eax + int v21; // eax + int v22; // eax + int v23; // eax + int v24; // eax + int v25; // eax + int v26; // eax + int v27; // eax + int v28; // ecx + _DWORD v30[3]; // [esp+4h] [ebp-14h] BYREF + int v31; // [esp+10h] [ebp-8h] BYREF + + DebugPrint(64, (int)"PchOnPolicyInstalled() - Start\ +"); /*0xffd807ab*/ + v2 = sub_FFD8CBBA(0, 31, 0); /*0xffd807c1*/ + v3 = sub_FFD8CBBA(0, 31, 2); /*0xffd807d5*/ + v4 = sub_FFD8CBBA(0, 31, 5); /*0xffd807e1*/ + v5 = sub_FFD8C632(*(_WORD *)(this + 2)); /*0xffd807e3*/ + if ( v5 < 0 ) /*0xffd807ea*/ + { + DebugPrint(0x8000... [6904 chars total] + +/* Source: ffd80ba6.c */ +int __thiscall PchEarlyDisabledDeviceHandling(int *this) +{ + int v2; // esi + int v3; // edi + int v4; // ebx + int v5; // ebp + int n2_1; // ebx + int v7; // ebx + __int16 v8; // si + int v9; // ebx + int v10; // eax + int v11; // eax + int v12; // eax + int v14; // [esp+10h] [ebp-54h] BYREF + int v15; // [esp+14h] [ebp-50h] BYREF + int v16; // [esp+18h] [ebp-4Ch] BYREF + int n2; // [esp+1Ch] [ebp-48h] + int v18; // [esp+20h] [ebp-44h] BYREF + int v19; // [esp+24h] [ebp-40h] BYREF + int v20; // [esp+28h] [ebp-3Ch] BYREF + int v21; // [esp+2Ch] [ebp-38h] BYREF + int v22; // [esp+30h] [ebp-34h] + int v23; // [esp+34h] [ebp-30h] BYREF + int n704654080; // [esp+38h] [ebp-2Ch] + int n671099136; // [esp+3Ch] [ebp-28h] + int n637544192; // [esp+40h] [ebp-24h] + int n603989248; // [esp+44h] [ebp-20h] + int n570434304; // [esp+48h] [ebp-1Ch] + int n536879360; // [esp+4Ch] [ebp-18h] + int n637544192_1; // [esp+50h] [ebp-14h] + int n603989248_1; // [esp+54h] [ebp-10h] + int n570434304_1; // [esp+58h] [ebp-Ch] + i... [12460 chars total] + +/* Source: ffd813d1.c */ +int __thiscall PchEarlyInit(int *this) +{ + int v2; // eax + int v3; // edi + unsigned __int8 v4; // al + unsigned __int8 v5; // al + unsigned __int8 v6; // al + unsigned __int8 v7; // al + + DebugPrint(64, (int)"PchEarlyInit() - Start\ +"); /*0xffd813df*/ + sub_FFD82723(); /*0xffd813e4*/ + sub_FFD81769(); /*0xffd813e9*/ + sub_FFD8C497(2, 1); /*0xffd813fc*/ + sub_FFD8C5F6(255, 3); /*0xffd81414*/ + sub_FFD8C578(-2, 0); /*0xffd81425*/ + v2 = sub_FFD8CBBA(0, 31, 1); /*0xffd81431*/ + *(_DWORD *)(v2 + 128) = 0; /*0xffd8143b*/ + *(_DWORD *)(v2 + 132) = 0; /*0xffd81441*/ + *(_DWORD *)(v2 + 136) = 0; /*0xffd81447*/ + *(_DWORD *)(v2 + 140) = 0; /*0xffd8144d*/ + *(_DWORD *)(v2 + 144) = 0; /*0xffd81453*/ + *(_DWORD *)(v2 + 148) = 61440; /*0xffd81459*/ + *(_DWORD *)(v2 + 152) = 16; /*0xffd81463*/ + *(_DWORD *)(v2 + 156) = 0; /*0xffd8146d*/ + *(_BYTE *)(v2 + 244) |= 1u; /*0xffd8147d*/ + v3 = sub_FFD8CBBA(0, 31, 2); /*0xffd8148d*/ + if ( (*(_BYTE *)(v3 + 164) & 4) != 0 ) /*0xffd81499*/ + { + __outbyte(0x74u, 0xAu); /*0xffd814a3*/ + v4 = __inbyte(0x74u); /*0xffd814a4*/ + __outbyte(0x75u, v4 & 0x8F | 0x60); /*0xffd814af*/ + __outbyte(0x74u, 0xBu); /*0xffd814b5*/ + v5 = __inbyte(0x75u); /*0xffd814b9*/ + __outbyte(0x75u, v5 | 0x80); /*0xffd814bc*/ + __outbyte(0x74u, 0xAu); /*0xffd814c2*/ + v6 = __inbyte(0x75u); /*0xffd814c6*/ + __outbyte(0x75u, v6 & 0x8F | 0x20); /*0xffd814cb*/ + __outbyte(0x74u, 0xBu); /*0xffd814d1*/ + v7 = __inbyte(0x75u); /*0xffd814d5*/ + __outbyte(0x75u, v7 & 0x7F); /*0xffd814d8*/ + } + *(this + 4) = 16; /*0xffd814d9*/ + *(_DWORD *)(v3 + 172) &= ~0x100000u; /*0xffd814ed*/ + *(this + 53) = 0; /*0xffd814f3*/ + *(this + 61) = 0; /*0xffd814f9*/ + PchEarlyDisabledDeviceHandling(this); /*0xffd814ff*/ + sub_FFD905CC(); /*0xffd81504*/ + sub_FFD8C497(4, 0); /*0xffd81518*/ + sub_FFD8C497(4, 18875648); /*0xffd8152c*/ + sub_FFD8C497(4, 0); /*0xffd81539*/ + sub_FFD8C497(4, 18875648); /*0xffd81545*/ + return DebugPrint(64, (int)"PchEarlyInit() - End\ +"); /*0xffd81559*/ +} + +/* Source: ffd8155f.c */ +int PchInitPreMem() +{ + int v0; // eax + int v1; // esi + int v2; // eax + int v3; // eax + int v4; // esi + int v5; // eax + int *v7; // [esp+10h] [ebp-4h] BYREF + + DebugPrint(64, (int)"PchInitPreMem() - Start\ +"); /*0xffd8156b*/ + if ( !(unsigned __int8)sub_FFD8BDC8() ) /*0xffd81572*/ + { + DebugPrint(0x80000000, (int)"PCH SKU is not supported due to no proper PCH LPC found!\ +"); /*0xffd8158b*/ + v0 = GetReportStatusCodePpi(); /*0xffd81592*/ + if ( v0 ) /*0xffd81599*/ + (*(void (__cdecl **)(const char *, int, const char *))(v0 + 4))( /*0xffd815a6*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", + 1948, + "((BOOLEAN)(0==1))"); + } + v1 = sub_FFD8CBBA(0, 31, 1); /*0xffd815b8*/ + if ( (*(_DWORD *)(v1 + 16) & 0xFF000000) == 0 ) /*0xffd815c4*/ + { + DebugPrint(64, (int)"SBREG should be programmed before here\ +"); /*0xffd815cd*/ + *(_DWORD *)(v1 + 16) = -50331648; /*0xffd815d2*/ + *(_BYTE *)(v1 + 4) |= 2u; /*0xffd815e0*/ + } + sub_FFD8C632(0x500u); /*0xffd815e8*/ + sub_FFD8C80A(); /*0xffd815ed*/ + sub_FFD8C99B(); /*0xffd815f2*/ + sub_FFD8C909((unsigned int *)&v7); /*0xffd815fb*/ + DebugPrint(64, (int)"PCH PWRM Base needs to be programmed before here\ +"); /*0xffd81607*/ + if ( !v7 ) /*0xffd81613*/ + { + v2 = GetReportStatusCodePpi(); /*0xffd81615*/ + if ( v2 ) /*0xffd8161c*/ + (*(void (__cdecl **)(const char *, int, const char *))(v2 + 4))( /*0xffd81629*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", + 1993, + "PchPwrmBase != 0"); + } + if ( (unsigned __int8)sub_FFD8D59A() ) + { + DebugPrint(0x80000000, (int)"DWR: DWR detected - install PPI\ +"); + if ( InstallPpi(&unk_FFD98084) >= 0 ) + DebugPrint(0x80000000, (int)"DWR: DWR PPI has been installed\ +"); + else + DebugPrint(0x80000000, (int)"ERROR: Can't install DWR PPI\ +"); + } + PchFabricErrorCheck(); /*0xffd81667*/ + PchEarlyInit(v7); /*0xffd81670*/ + v3 = InstallPpi(&unk_FFD980AC); /*0xffd8167a*/ + v4 = v3; /*0xffd8167f*/ + if ( v3 < 0 ) /*0xffd81683*/ + { + DebugPrint(0x80000000, (int)"\ +ASSERT_EFI_ERROR (Status = %r)\ +", v3); /*0xffd8168c*/ + v5 = GetReportStatusCodePpi(); /*0xffd81694*/ + if ( v5 ) /*0xffd8169b*/ + (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd816a8*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", + 2007, + "!EFI_ERROR (Status)"); + } + DebugPrint(64, (int)"PchInitPreMem() - End\ +"); /*0xffd816b5*/ + return v4; /*0xffd816bc*/ +} + +/* Source: ffd816c4.c */ +int PrintPchInfo() +{ + int v0; // esi + int v1; // ecx + __int16 v2; // ax + double v4; // [esp-4h] [ebp-34h] + double v5; // [esp-4h] [ebp-34h] + double v6; // [esp-4h] [ebp-34h] + _BYTE v7[32]; // [esp+Ch] [ebp-24h] BYREF + int p_n32; // [esp+2Ch] [ebp-4h] BYREF + + v0 = sub_FFD8CBBA(0, 31, 0); /*0xffd816db*/ + p_n32 = 32; /*0xffd816e3*/ + sub_FFD8BE68(); /*0xffd816e6*/ + sub_FFD8C111(&p_n32); /*0xffd816f1*/ + LODWORD(v4) = v7; /*0xffd816fa*/ + DebugPrint(64, (int)"PCH Series : %a\ +", v4); + p_n32 = 32; /*0xffd8170a*/ + sub_FFD8BB3A(v1); /*0xffd81712*/ + sub_FFD8C06D(&p_n32); /*0xffd8171d*/ + LODWORD(v5) = v7; /*0xffd81726*/ + DebugPrint(64, (int)"PCH Stepping : %a\ +", v5); + p_n32 = 32; /*0xffd81736*/ + v2 = sub_FFD8CCA5((unsigned __int16 *)(v0 + 2)); /*0xffd81740*/ + sub_FFD8C1B5(v2, v7, &p_n32); /*0xffd8174a*/ + LODWORD(v6) = v7; /*0xffd81753*/ + return DebugPrint(64, (int)"PCH SKU : %a\ +", v6); +} + +/* Source: ffd821b8.c */ +int __fastcall sub_FFD821B8(int a1, char a2, int a3, unsigned __int8 n2) +{ + unsigned __int8 n2_1; // bh + char v5; // bl + int v7; // edi + int v8; // eax + __int16 v9; // si + int v10; // edx + unsigned __int8 v11; // bl + char v12; // al + char v13; // al + char n2_2; // [esp+11h] [ebp-3h] BYREF + char v16; // [esp+12h] [ebp-2h] + char v17; // [esp+13h] [ebp-1h] BYREF + + n2_1 = n2; /*0xffd821ba*/ + v5 = 0; /*0xffd821be*/ + v16 = a2; /*0xffd821c0*/ + if ( n2 == 1 ) + { + DebugPrint(64, (int)"EarlyConfigurePchHSata() - First Controller - Start\ +"); /*0xffd821d5*/ + v7 = sub_FFD8CBBA(0, 23, 0); /*0xffd821e9*/ + sub_FFD8C019(); /*0xffd821eb*/ + } + else + { + if ( n2 != 2 ) + { + DebugPrint(0x80000000, (int)"Error: Invalid SATA controller!\ +"); + return -2147483646; /*0xffd8244e*/ + } + DebugPrint(64, (int)"EarlyConfigurePchHSata() - Second Controller - Start\ +"); /*0xffd82202*/ + v7 = sub_FFD8CBBA(0, 17, 5); /*0xffd82216*/ + } + v8 = sub_FFD8CBBA(0, 31, 0); /*0xffd8221f*/ + v9 = sub_FFD8CCA5((unsigned __int16 *)(v8 + 2)); /*0xffd8222d*/ + if ( !(unsigned __int8)sub_FFD8D58A() ) /*0xffd82230*/ + { + if ( n2_1 == 1 ) /*0xffd8223c*/ + v5 = sub_FFD81814(); /*0xffd82243*/ + if ( n2_1 != 2 ) /*0xffd82248*/ + goto LABEL_14; /*0xffd82248*/ + v11 = 0; /*0xffd8224a*/ + while ( 1 ) /*0xffd82253*/ + { + sub_FFD8E7BA(v11, &n2); /*0xffd82253*/ + sub_FFD8E062(n2, &v17, &n2_2); /*0xffd82266*/ + if ( n2_2 == 2 ) /*0xffd82271*/ + break; /*0xffd82271*/ + if ( ++v11 >= 6u ) /*0xffd82278*/ + { + v5 = 0; /*0xffd8227a*/ + goto LABEL_14; /*0xffd8227c*/ + } + } + } + v5 = 1; /*0xffd8227e*/ +LABEL_14: + if ( (*(_BYTE *)a1 & 1) != 0 && (v5 || *(_DWORD *)(a1 + 4)) ) /*0xffd8228e*/ + { + *(_BYTE *)(v7 + 160) = -104; /*0xffd82298*/ + *(_DWORD *)(v7 + 164) = *(_DWORD *)(v7 + 164) & 0xFFFFFE00 | 0x183; /*0xffd822ad*/ + *(_BYTE *)(v7 + 160) = -104; /*0xffd822b3*/ + *(_DWORD *)(v7 + 164) |= 0x8000u; /*0xffd822c5*/ + *(_BYTE *)(v7 + 160) = -92; /*0xffd822cb*/ + *(_DWORD *)(v7 + 164) |= 0x40u; /*0xffd822db*/ + if ( v9 == -24254 /*0xffd8237d*/ + || v9 == -24253 + || v9 == -24252 + || v9 == -24251 + || v9 == -24250 + || v9 == -24249 + || v9 == -24248 + || v9 == -24256 + || v9 == -24255 + || v9 == -24243 + || v9 == -24242 + || v9 == -24241 + || v9 == -25280 + || v9 == -25279 + || v9 == -25278 + || v9 == -25277 + || v9 == -25274 + || v9 == -25272 ) + { + *(_BYTE *)(v7 + 160) = -100; /*0xffd8237f*/ + *(_DWORD *)(v7 + 164) |= 0x400000u; /*0xffd82391*/ + } + *(_BYTE *)(v7 + 160) = -100; /*0xffd82397*/ + *(_DWORD *)(v7 + 164) = *(_DWORD *)(v7 + 164) & 0xDF63E013 | 0x209C0224; /*0xffd823ae*/ + if ( n2_1 == 1 ) /*0xffd823b7*/ + { + *(_BYTE *)(v7 + 160) = -100; /*0xffd823b9*/ + *(_DWORD *)(v7 + 164) |= 0x40000000u; /*0xffd823cb*/ + } + v12 = *(_BYTE *)(v7 + 156) | 0x20; /*0xffd823d7*/ + if ( *(_DWORD *)(a1 + 4) == 1 ) /*0xffd823dd*/ + { + if ( (*(_BYTE *)(a1 + 76) & 1) != 0 ) /*0xffd823e5*/ + v12 = *(_BYTE *)(v7 + 156) & 0x1F | 0xA0; /*0xffd823e7*/ + else + v12 = *(_BYTE *)(v7 + 156) & 0x1F | 0x60; /*0xffd823eb*/ + } + if ( v16 ) /*0xffd823f2*/ + v13 = v12 & 0xE1 | 6; /*0xffd823f6*/ + else + v13 = v12 & 0xE8 | 0x10; /*0xffd823fc*/ + *(_BYTE *)(v7 + 156) = v13 & 0xF8 | 6; /*0xffd8240d*/ + sub_FFD8CC4F(v7 + 148, 255); /*0xffd82413*/ + sub_FFD7FA46(2u); /*0xffd8241b*/ + DebugPrint(64, (int)"EarlyConfigurePchHSata() End\ +"); /*0xffd82427*/ + return 0; /*0xffd8242c*/ + } + else + { + LOBYTE(v10) = n2_1; /*0xffd82434*/ + sub_FFD81FF5(a3, v10); /*0xffd82436*/ + return 0; /*0xffd8243b*/ + } +} + +/* Source: ffd8245b.c */ +int __cdecl sub_FFD8245B(int n2) +{ + int v1; // ecx + int v2; // ebx + int v3; // edi + int v4; // esi + unsigned int n6; // ebp + int v6; // eax + unsigned __int8 n6_1; // cl + int v8; // eax + + v2 = 0; /*0xffd82460*/ + v3 = v1; /*0xffd8246c*/ + if ( (_BYTE)n2 == 1 ) /*0xffd8246e*/ + { + DebugPrint(64, (int)"ConfigurePchHSata() - First Controller - Start\ +"); /*0xffd82477*/ + v4 = sub_FFD8CBBA(0, 23, 0); /*0xffd8248a*/ + n6 = (unsigned __int8)sub_FFD8C019(); /*0xffd82491*/ + } + else + { + DebugPrint(64, (int)"ConfigurePchHSata() - Second Controller - Start\ +"); /*0xffd8249d*/ + v4 = sub_FFD8CBBA(0, 17, 5); /*0xffd824b1*/ + n6 = 6; /*0xffd824b5*/ + } + v6 = sub_FFD8CBBA(0, 31, 0); /*0xffd824bc*/ + sub_FFD8CCA5((unsigned __int16 *)(v6 + 2)); /*0xffd824c5*/ + sub_FFD81B92(n2); /*0xffd824d4*/ + if ( (*(_BYTE *)v3 & 8) != 0 ) /*0xffd824dd*/ + { + n6_1 = 0; /*0xffd824e3*/ + if ( n6 ) /*0xffd824e7*/ + { + v8 = 0; /*0xffd824e9*/ + do /*0xffd82506*/ + { + if ( (*(_BYTE *)(v3 + 8 * v8 + 12) & 1) != 0 && (*(_DWORD *)(v3 + 8 * v8 + 12) & 0x40000A) != 0 ) /*0xffd824fa*/ + v2 |= 1 << v8; /*0xffd824fc*/ + v8 = ++n6_1; /*0xffd82501*/ + } + while ( n6_1 < n6 ); /*0xffd82506*/ + } + *(_BYTE *)(v4 + 160) = -112; /*0xffd82508*/ + *(_DWORD *)(v4 + 164) |= (unsigned __int8)~(_BYTE)v2; /*0xffd82521*/ + *(_BYTE *)(v4 + 160) = 0x80; /*0xffd8252c*/ + *(_DWORD *)(v4 + 164) |= v2 << 16; /*0xffd8253b*/ + *(_BYTE *)(v4 + 160) = -116; /*0xffd82541*/ + *(_DWORD *)(v4 + 164) |= 0xFF00FFu; /*0xffd82550*/ + *(_BYTE *)(v4 + 160) = -96; /*0xffd82556*/ + *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xFF037FFF | 0x588000; /*0xffd8256d*/ + *(_BYTE *)(v4 + 160) = -124; /*0xffd82573*/ + *(_DWORD *)(v4 + 164) |= 0xFF00FFu; /*0xffd82582*/ + *(_BYTE *)(v4 + 160) = -92; /*0xffd82588*/ + *(_DWORD *)(v4 + 164) |= 0x4000u; /*0xffd8259a*/ + *(_BYTE *)(v4 + 160) = -52; /*0xffd825a0*/ + *(_DWORD *)(v4 + 164) = -2009296895; /*0xffd825a7*/ + *(_BYTE *)(v4 + 160) = -48; /*0xffd825b1*/ + *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xFFFF0000 | 0x8828; /*0xffd825c8*/ + *(_BYTE *)(v4 + 160) = -56; /*0xffd825ce*/ + *(_DWORD *)(v4 + 164) |= 8u; /*0xffd825de*/ + *(_BYTE *)(v4 + 160) = -56; /*0xffd825e4*/ + *(_DWORD *)(v4 + 164) |= 1u; /*0xffd825f4*/ + *(_BYTE *)(v4 + 160) = -56; /*0xffd825fa*/ + *(_DWORD *)(v4 + 164) |= 2u; /*0xffd8260a*/ + } + *(_BYTE *)(v4 + 160) = -88; /*0xffd82610*/ + *(_DWORD *)(v4 + 164) &= 0xFFF0FFFF; /*0xffd82622*/ + *(_BYTE *)(v4 + 160) = -44; /*0xffd82628*/ + *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xC0C0E0E0 | 0x2C1E1108; /*0xffd8263f*/ + *(_BYTE *)(v4 + 158) &= ~1u; /*0xffd8264d*/ + if ( *(_DWORD *)(v3 + 4) == 1 ) /*0xffd82657*/ + *(_BYTE *)(v4 + 158) |= 1u; /*0xffd82661*/ + if ( (_BYTE)n2 == 1 ) /*0xffd8266c*/ + return DebugPrint(64, (int)"ConfigurePchHSata() - First Controller - End\ +"); /*0xffd82673*/ + else + return DebugPrint(64, (int)"ConfigurePchHSata() - Second Controller - End\ +"); /*0xffd8267c*/ +} + +/* Source: ffd826ae.c */ +bool __fastcall sub_FFD826AE(int a1, int a2, char a3) +{ + int v5; // eax + int v6; // ecx + int n17; // [esp+Ch] [ebp-10h] BYREF + int v9; // [esp+10h] [ebp-Ch] + int v10; // [esp+14h] [ebp-8h] BYREF + char n2; // [esp+1Bh] [ebp-1h] + + v5 = sub_FFD8AD54(); /*0xffd826bb*/ + (*(void (__cdecl **)(int, int *))(*(_DWORD *)v5 + 40))(v5, &n17); /*0xffd826c7*/ + n2 = *(_BYTE *)(100 * a2 + a1 + 5); /*0xffd826d6*/ + sub_FFD8D75C(&v10); /*0xffd826dd*/ + v6 = sub_FFD8CBBA(0, v9, v10); /*0xffd826f3*/ + return (!n2 || n2 == 2) && n17 == 17 && (*(_BYTE *)(v6 + 76) & 0xFu) >= 3 && a3 == 1; /*0xffd8271c*/ +} + +/* Source: ffd83186.c */ +int __thiscall sub_FFD83186(char *this) +{ + int v2; // eax + int v3; // eax + int v4; // eax + int v5; // eax + int v6; // esi + double v8; // [esp-4h] [ebp-20h] + int v9; // [esp+14h] [ebp-8h] BYREF + + v2 = sub_FFD8D75C(&v9); /*0xffd8319f*/ + if ( v2 < 0 ) /*0xffd831b1*/ + { + DebugPrint(0x80000000, (int)"\ +ASSERT_EFI_ERROR (Status = %r)\ +", v2); /*0xffd831be*/ + v3 = GetReportStatusCodePpi(); /*0xffd831c6*/ + if ( v3 ) /*0xffd831cd*/ + (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd831d6*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", + 1132, + "!EFI_ERROR (Status)"); + } + v4 = sub_FFD9041E(&v9); /*0xffd831e8*/ + if ( v4 < 0 ) /*0xffd831f0*/ + { + DebugPrint(0x80000000, (int)"\ +ASSERT_EFI_ERROR (Status = %r)\ +", v4); /*0xffd831fd*/ + v5 = GetReportStatusCodePpi(); /*0xffd83205*/ + if ( v5 ) /*0xffd8320c*/ + (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd83215*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", + 1135, + "!EFI_ERROR (Status)"); + } + v6 = (unsigned __int16)v9 >> 14; /*0xffd83225*/ + LODWORD(v8) = off_FFD93F7C[v6]; // "4x1" /*0xffd83228*/ + DebugPrint(64, (int)"PCIe SP%c is %a\ +", this + 65, v8); /*0xffd83237*/ + return v6; /*0xffd83241*/ +} + +/* Source: ffd85246.c */ +int __fastcall sub_FFD85246(int a1, int a2, int a3) +{ + int n15000_6; // edi + int v5; // ebx + int n15000_5; // esi + unsigned __int8 v7; // al + int v8; // ebp + _DWORD *n15000_8; // ebp + int v10; // edi + int v11; // esi + unsigned __int8 v12; // al + int v13; // edi + unsigned int v14; // eax + int v15; // ecx + unsigned __int8 v16; // al + int v17; // esi + int v18; // eax + bool v19; // zf + unsigned __int16 *i; // ecx + int v21; // ecx + _WORD *n15000_7; // esi + int v23; // edi + int v24; // edx + int v25; // ebx + int v26; // esi + int v27; // eax + int j; // ebx + int n15000_3; // edi + int v30; // eax + unsigned int j_1; // ecx + int v32; // esi + unsigned int v33; // edx + int v34; // edx + char *v35; // edi + int v36; // ecx + char v37; // al + int v38; // ebx + int v39; // edi + int v40; // esi + int n15000_4; // edx + unsigned int v42; // ecx + int v43; // eax + int v44; // eax + unsigned __int8 v46; // [esp+10h] [ebp-48h] + unsigned __int8 v47; // [esp+11h] [ebp-47h] + ... [11197 chars total] + +/* Source: ffd85f37.c */ +int sub_FFD85F37() +{ + int v0; // eax + int v1; // eax + int v2; // esi + int v3; // eax + _DWORD v5[2]; // [esp+8h] [ebp-8h] BYREF + + v0 = sub_FFD8AD54(); /*0xffd85f3e*/ + v1 = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, _DWORD *))(*(_DWORD *)v0 + 32))(v0, &unk_FFD97EEC, 0, 0, v5); /*0xffd85f53*/ + v2 = v1; /*0xffd85f56*/ + if ( v1 < 0 ) + { + DebugPrint(0x80000000, (int)"ERROR: DWR Can't find PCH Policy (Status: %r)\n", v1); + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v2); /*0xffd85f78*/ + v3 = GetReportStatusCodePpi(); /*0xffd85f80*/ + if ( v3 ) /*0xffd85f88*/ + (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd85f99*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", + 4100, + "!EFI_ERROR (Status)"); + v5[1] = 0; /*0xffd85f9f*/ + while ( 1 ) /*0xffd85fa2*/ + ; /*0xffd85fa2*/ + } + return (unsigned __int8)(*(_DWORD *)(v5[0] + 2975) >> 18); /*0xffd85faa*/ +} + +/* Source: ffd86e4d.c */ +int __usercall sub_FFD86E37@(int a1@, int a2@, int a3, int a4, int a5, int a6, int a7, ...) +{ + int v7; // ebx + unsigned int n8_3; // esi + unsigned int v9; // edi + unsigned __int8 *v10; // ebx + unsigned __int8 n8; // al + int n8_4; // ebp + int v13; // eax + unsigned int n8_1; // ecx + _DWORD *v15; // edx + int v16; // eax + unsigned int v17; // edi + unsigned __int8 *v18; // ebp + unsigned __int8 n8_2; // al + int n8_5; // ebx + int v21; // eax + _DWORD *v22; // ecx + int result; // eax + unsigned int retaddr; // [esp+5Ch] [ebp+0h] + int v27; // [esp+74h] [ebp+18h] BYREF + va_list va; // [esp+74h] [ebp+18h] + int v29; // [esp+78h] [ebp+1Ch] + int v30; // [esp+7Ch] [ebp+20h] + int v31; // [esp+80h] [ebp+24h] + int v32; // [esp+84h] [ebp+28h] + int v33; // [esp+88h] [ebp+2Ch] + int v34; // [esp+8Ch] [ebp+30h] + int v35; // [esp+90h] [ebp+34h] + va_list va1; // [esp+94h] [ebp+38h] BYREF + + va_start(va1, a7); + va_start(va, a7); + v27 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v29 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v30 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v31 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v32 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v33 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v34 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v35 = va_arg(va1, _DWORD); /*0xffd86e37*/ + v7 = a2; /*0xffd86e3e*/ + sub_FFD8D4C8(va1, retaddr); /*0xffd86e4f*/ + sub_FFD8D4C8((int *)va, retaddr); /*0xffd86e5b*/ + sub_FFD8BF54(); /*0xffd86e60*/ + n8_3 = 0; /*0xffd86e65*/ + v9 = 0; /*0xffd86e67*/ + if ( (unsigned __int8)sub_FFD8C051() ) /*0xffd86e69*/ + { + v10 = (unsigned __int8 *)(v7 + 264); /*0xffd86e72*/ + do /*0xffd86ebd*/ + { + n8 = *v10; /*0xffd86e78*/ + if ( *v10 != 8 ) /*0xffd86e7c*/ + { + n8_4 = n8; /*0xffd86e7e*/ + if ( n8 >= 8u ) /*0xffd86e84*/ + { + v13 = GetReportStatusCodePpi(); /*0xffd86e86*/ + if ( v13 ) /*0xffd86e8d*/ + (*(void (**)(void))(v13 + 4))(); /*0xffd86e9e*/ + } + *((int *)va + n8_4) |= 1 << v9; /*0xffd86eab*/ + } + ++v9; /*0xffd86eaf*/ + v10 += 16; /*0xffd86eb0*/ + } + while ( v9 < (unsigned __int8)sub_FFD8C051() ); /*0xffd86ebd*/ + v7 = a2; /*0xffd86ebf*/ + } + n8_1 = 0; /*0xffd86ec7*/ + v15 = (_DWORD *)(a1 + 208); /*0xffd86ec9*/ + do /*0xffd86edc*/ + { + v16 = *((int *)va + n8_1++); /*0xffd86ecf*/ + *v15++ = v16; /*0xffd86ed4*/ + } + while ( n8_1 < 8 ); /*0xffd86edc*/ + v17 = 0; /*0xffd86ede*/ + v18 = (unsigned __int8 *)(v7 + 8); /*0xffd86ee0*/ + while ( (unsigned int)(sub_FFD8BE68() - 1) <= 1 && v17 < retaddr ) /*0xffd86efb*/ + { + n8_2 = *v18; /*0xffd86efd*/ + if ( *v18 != 8 ) /*0xffd86f02*/ + { + n8_5 = n8_2; /*0xffd86f04*/ + if ( n8_2 >= 8u ) /*0xffd86f0a*/ + { + v21 = GetReportStatusCodePpi(); /*0xffd86f0c*/ + if ( v21 ) /*0xffd86f13*/ + (*(void (**)(void))(v21 + 4))(); /*0xffd86f24*/ + } + va1[n8_5] = (void *)((unsigned int)va1[n8_5] | (1 << v17)); /*0xffd86f31*/ + } + ++v17; /*0xffd86f35*/ + v18 += 16; /*0xffd86f36*/ + } + v22 = (_DWORD *)(a1 + 176); /*0xffd86f3f*/ + do /*0xffd86f52*/ + { + result = (int)va1[n8_3++]; /*0xffd86f45*/ + *v22++ = result; /*0xffd86f4a*/ + } + while ( n8_3 < 8 ); /*0xffd86f52*/ + return result; /*0xffd86f54*/ +} + +/* Source: ffd879ed.c */ +int __thiscall sub_FFD879ED(_DWORD *this) +{ + unsigned __int8 i; // bl + int v3; // ecx + int v5; // [esp-4h] [ebp-20h] + unsigned __int8 v6; // [esp+11h] [ebp-Bh] + char v7; // [esp+12h] [ebp-Ah] BYREF + char v8; // [esp+13h] [ebp-9h] BYREF + _BYTE v9[2]; // [esp+14h] [ebp-8h] BYREF + + DebugPrint(64, (int)"XhciUsb3Tune() Start\n"); /*0xffd879fd*/ + for ( i = 0; i < (unsigned __int8)sub_FFD8C051(); ++i ) /*0xffd87a06*/ + { + if ( (*(_BYTE *)(this + 4 * i + 67) & 0x81) != 0 ) /*0xffd87a22*/ + { + sub_FFD8E3BE(); /*0xffd87a2c*/ + sub_FFD8E062(v6, &v8, &v7); /*0xffd87a41*/ + v3 = v5; /*0xffd87a4b*/ + if ( v7 == 1 ) /*0xffd87a4c*/ + { + LOBYTE(v3) = v6; /*0xffd87a56*/ + sub_FFD8EBC8(v3, v9); /*0xffd87a58*/ + if ( (*(this + 4 * i + 67) & 1) != 0 ) /*0xffd87a6e*/ + sub_FFD8C578(-4128769, (*(this + 4 * i + 67) & 0x7E) << 15); /*0xffd87a85*/ + if ( (*(this + 4 * i + 67) & 0x80u) != 0 ) /*0xffd87a95*/ + sub_FFD8C578(-4128769, (*(this + 4 * i + 67) & 0x3F00) << 8); /*0xffd87aae*/ + sub_FFD8C578(-3, 0); /*0xffd87ac9*/ + sub_FFD8C578(-1, 2); /*0xffd87ad6*/ + } + } + } + return DebugPrint(64, (int)"XhciUsb3Tune() End\n"); /*0xffd87afb*/ +} + +/* Source: ffd87d42.c */ +int InstallPchSpiPpi() +{ + int v0; // eax + int v1; // eax + _DWORD *v2; // edi + int v4; // eax + int v5; // esi + int v6; // eax + + DebugPrint(64, (int)"InstallPchSpi() Start\n"); /*0xffd87d4c*/ + v0 = sub_FFD8CBBA(0, 31, 5); /*0xffd87d58*/ + *(_DWORD *)(v0 + 16) = -33488896; /*0xffd87d60*/ + *(_DWORD *)(v0 + 4) |= 2u; /*0xffd87d6d*/ + v1 = sub_FFD8ADB0(104); /*0xffd87d73*/ + v2 = (_DWORD *)v1; /*0xffd87d78*/ + if ( !v1 ) /*0xffd87d7c*/ + return -2147483639; /*0xffd87d7e*/ + sub_FFD8F09A((_DWORD *)(v1 + 12)); /*0xffd87d88*/ + *v2 = -2147483632; /*0xffd87d90*/ + v2[1] = &unk_FFD97EBC; /*0xffd87d98*/ + v2[2] = v2 + 5; /*0xffd87d9f*/ + v4 = InstallPpi(v2); /*0xffd87da2*/ + v5 = v4; /*0xffd87da7*/ + if ( v4 < 0 ) /*0xffd87dab*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v4); /*0xffd87db8*/ + v6 = GetReportStatusCodePpi(); /*0xffd87dc0*/ + if ( v6 ) /*0xffd87dc7*/ + (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffd87dd8*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchSpi.c", + 130, + "!EFI_ERROR (Status)"); + } + DebugPrint(64, (int)"SPI PPI Installed\n"); /*0xffd87de5*/ + DebugPrint(64, (int)"InstallPchSpi() End\n"); /*0xffd87df1*/ + return v5; /*0xffd87dfb*/ +} + +/* Source: ffd87dff.c */ +int __thiscall ConfigureLpcOnPolicy(_BYTE *this) +{ + int result; // eax + int v3; // esi + int n128; // ecx + _DWORD v5[4]; // [esp+8h] [ebp-10h] BYREF + + result = DebugPrint(64, (int)"ConfigureLpcOnPolicy()\n"); /*0xffd87e0f*/ + if ( (*(this + 3514) & 1) == 0 ) /*0xffd87e1d*/ + { + DebugPrint(64, (int)"Disable EnhancePort8xhDecoding\n"); /*0xffd87e26*/ + sub_FFD8D48A(v5, 16); /*0xffd87e33*/ + result = sub_FFD8CA98(v5); /*0xffd87e3b*/ + v3 = 0; /*0xffd87e40*/ + while ( 1 ) /*0xffd87e42*/ + { + n128 = v5[v3]; /*0xffd87e42*/ + if ( (_WORD)n128 == 128 && (n128 & 0x7FFF0000) == 0x100000 ) /*0xffd87e59*/ + break; /*0xffd87e59*/ + if ( (unsigned int)++v3 >= 4 ) /*0xffd87e5f*/ + return result; /*0xffd87e5f*/ + } + *(_DWORD *)(sub_FFD8CBBA(0, 31, 0) + 4 * v3 + 132) = 0; /*0xffd87e83*/ + return sub_FFD8C497(4, 0); /*0xffd87e8d*/ + } + return result; /*0xffd87e94*/ +} + +/* Source: ffd87e99.c */ +bool PchWdtIsUnexpectedReset() +{ + int v0; // esi + int n5120; // eax + bool result; // al + unsigned __int16 v3; // [esp+4h] [ebp-4h] BYREF + + sub_FFD8C76F(&v3); /*0xffd87ea1*/ + v0 = v3; /*0xffd87ea6*/ + result = 0; /*0xffd87ee2*/ + if ( (sub_FFD8CD06(v3) & 0x8000u) != 0 ) /*0xffd87eb9*/ + { + n5120 = sub_FFD8CD06(v0 + 4) & 0x1C00; /*0xffd87ed0*/ + if ( (_WORD)n5120 == 5120 || (_WORD)n5120 == 6144 ) /*0xffd87ee0*/ + return 1; /*0xffd87eb9*/ + } + return result; /*0xffd87ee8*/ +} + +/* Source: ffd87eed.c */ +int PchWdtInit() +{ + int v0; // eax + int v1; // ebx + __int16 v2; // bp + int v3; // eax + int result; // eax + char v5; // cl + _DWORD *v6; // edi + unsigned int v7; // ebx + unsigned int v8; // ebx + int v9; // eax + int v10; // eax + int v11; // esi + int v12; // eax + int v13; // [esp+14h] [ebp-8h] BYREF + int v14; // [esp+18h] [ebp-4h] + + v0 = sub_FFD8EEB6(); /*0xffd87ef4*/ + v1 = sub_FFD8CD6B(v0); /*0xffd87f00*/ + DebugPrint(64, (int)"(WDT) Readback = 0x%08x\n", v1); /*0xffd87f0a*/ + if ( (v1 & 0x4000) != 0 ) /*0xffd87f18*/ + { + LOBYTE(v14) = 1; /*0xffd87f1c*/ + v2 = (v1 & 0x3FF) + 1; /*0xffd87f27*/ + } + else + { + v14 = 0; /*0xffd87f2e*/ + v2 = 0; /*0xffd87f32*/ + } + v3 = sub_FFD8AD54(); /*0xffd87f34*/ + result = (*(int (__cdecl **)(int, int, int, int *))(*(_DWORD *)v3 + 52))(v3, 4, 28, &v13); /*0xffd87f45*/ + if ( result >= 0 ) /*0xffd87f4d*/ + { + v5 = v14; /*0xffd87f5c*/ + v6 = (_DWORD *)(v13 + 8); /*0xffd87f60*/ + *(_DWORD *)(v13 + 8) = unk_FFD97F0C; /*0xffd87f63*/ + *++v6 = unk_FFD97F10; /*0xffd87f64*/ + *++v6 = unk_FFD97F14; /*0xffd87f65*/ + v6[1] = unk_FFD97F18; /*0xffd87f66*/ + *(_BYTE *)(v13 + 26) = v5; /*0xffd87f75*/ + *(_WORD *)(v13 + 24) = v2; /*0xffd87f7c*/ + if ( (v1 & 0x3000000) != 0 ) /*0xffd87f82*/ + { + DebugPrint(0x80000000, (int)"(WDT) Expiration detected.\n", v1); /*0xffd87f8b*/ + v7 = v1 & 0xFC3FFFFF | 0x3800000; /*0xffd87f99*/ + } + else + { + if ( (v1 & 0x400000) == 0 || PchWdtIsUnexpectedReset() ) /*0xffd87fa9*/ + { + DebugPrint(64, (int)"(WDT) Status OK.\n", v1); /*0xffd87fcf*/ + v8 = v1 & 0xFF7FFFFF; /*0xffd87fd7*/ + } + else + { + DebugPrint(0x80000000, (int)"(WDT) Unexpected reset detected and ignored.\n"); /*0xffd87fb8*/ + v8 = v1 & 0xFF3FFFFF; /*0xffd87fbf*/ + } + v7 = v8 | 0x3000000; /*0xffd87fdd*/ + } + v9 = sub_FFD8EEB6(); /*0xffd87fdf*/ + sub_FFD8CD97(v9, v7); /*0xffd87fe8*/ + InstallPpi(&unk_FFD9816C); /*0xffd87ff2*/ + v10 = InstallPpi(&unk_FFD98144); /*0xffd87ffc*/ + v11 = v10; /*0xffd88001*/ + if ( v10 < 0 ) /*0xffd88005*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v10); /*0xffd8800e*/ + v12 = GetReportStatusCodePpi(); /*0xffd88016*/ + if ( v12 ) /*0xffd8801d*/ + (*(void (__cdecl **)(const char *, int, const char *))(v12 + 4))( /*0xffd8802e*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\Wdt.c", + 216, + "!EFI_ERROR (Status)"); + } + return v11; /*0xffd88034*/ + } + return result; /*0xffd88036*/ +} + +/* Source: ffd880d2.c */ +int InstallPchResetPpi() +{ + int v0; // eax + _DWORD *v1; // edi + int v2; // eax + int v3; // eax + _DWORD *v4; // esi + _DWORD *v5; // eax + int v6; // eax + int v7; // esi + int v8; // eax + int v10; // eax + + DebugPrint(64, (int)"InstallPchReset() Start\n"); /*0xffd880de*/ + v0 = sub_FFD8ADB0(40); /*0xffd880e8*/ + v1 = (_DWORD *)v0; /*0xffd880ed*/ + if ( !v0 ) /*0xffd880f1*/ + return -2147483639; /*0xffd881e7*/ + sub_FFD90233(v0 + 12); /*0xffd880fc*/ + v1[5] = PchResetInitCallback; /*0xffd88106*/ + *v1 = -2147483632; /*0xffd8810c*/ + v1[1] = &unk_FFD97FAC; /*0xffd88112*/ + v1[2] = v1 + 5; /*0xffd88119*/ + v2 = InstallPpi(v1); /*0xffd8811c*/ + if ( v2 < 0 ) /*0xffd88132*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v2); /*0xffd8813b*/ + v3 = GetReportStatusCodePpi(); /*0xffd88143*/ + if ( v3 ) /*0xffd8814a*/ + (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd88153*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchReset.c", + 132, + "!EFI_ERROR (Status)"); + } + v4 = (_DWORD *)sub_FFD8ADB0(12); /*0xffd88164*/ + v5 = (_DWORD *)sub_FFD8ADB0(4); /*0xffd88166*/ + if ( !v4 || !v5 ) /*0xffd88171*/ + { + v10 = GetReportStatusCodePpi(); /*0xffd881cd*/ + if ( v10 ) /*0xffd881d4*/ + (*(void (__cdecl **)(const char *, int, const char *))(v10 + 4))( /*0xffd881e1*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchReset.c", + 139, + "((BOOLEAN)(0==1))"); + return -2147483639; /*0xffd881e1*/ + } + *v5 = PchResetCallback2; /*0xffd88173*/ + *v4 = -2147483632; /*0xffd8817b*/ + v4[1] = &unk_FFD97F2C; /*0xffd88181*/ + v4[2] = v5; /*0xffd88188*/ + v6 = InstallPpi(v4); /*0xffd8818b*/ + v7 = v6; /*0xffd88190*/ + if ( v6 < 0 ) /*0xffd88194*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v6); /*0xffd8819d*/ + v8 = GetReportStatusCodePpi(); /*0xffd881a5*/ + if ( v8 ) /*0xffd881ac*/ + (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffd881b5*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchReset.c", + 153, + "!EFI_ERROR (Status)"); + } + DebugPrint(64, (int)"InstallPchReset() End\n"); /*0xffd881c2*/ + return v7; /*0xffd881ec*/ +} + +/* Source: ffd8ad54.c */ +int sub_FFD8AD54() +{ + int v0; // esi + int __return_address; // [esp+0h] [ebp-Ch] + int v3; // [esp+6h] [ebp-6h] + + sub_FFD8D30B(__return_address); /*0xffd8ad5d*/ + v0 = *(_DWORD *)(v3 - 4); /*0xffd8ad65*/ + if ( !v0 ) /*0xffd8ad6a*/ + sub_FFD7F9D9( /*0xffd8ad79*/ + (int)"e:\\hs\\MdePkg\\Library\\PeiServicesTablePointerLibIdt\\PeiServicesTablePointer.c", + 48, + "PeiServices != ((void *) 0)"); + return v0; /*0xffd8ad81*/ +} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/PcieRootPortDwr.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/PcieRootPortDwr.c new file mode 100644 index 0000000..37a0e07 --- /dev/null +++ b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/PcieRootPortDwr.c @@ -0,0 +1,299 @@ +/* Consolidated from decompiled shard files. */ +/* Source: ffd82c71.c */ +int PciERWORegInit() +{ + unsigned int i; // edi + int v1; // ebx + unsigned __int16 v2; // ax + char v4; // [esp+10h] [ebp-8h] + int v5; // [esp+14h] [ebp-4h] BYREF + + DebugPrint(64, (int)"PciERWORegInit() Start\ +"); /*0xffd82c81*/ + if ( (unsigned __int8)sub_FFD8D59A() ) + { + DebugPrint(64, (int)"DWR: PciERWORegInit() End\ +"); + } + else + { + sub_FFD8BE68(); /*0xffd82c9b*/ + for ( i = 0; i < (unsigned __int8)sub_FFD8BFFD(); ++i ) /*0xffd82ca2*/ + { + sub_FFD8D75C(&v5); /*0xffd82cb4*/ + v1 = sub_FFD8CBBA(0, v4, v5); /*0xffd82cc8*/ + if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v1) != 0xFFFF ) /*0xffd82cd9*/ + { + v2 = sub_FFD8CCA5((unsigned __int16 *)(v1 + 68)); /*0xffd82cde*/ + sub_FFD8CCD3(v1 + 68, v2); /*0xffd82ce9*/ + *(_DWORD *)(v1 + 76) = *(_DWORD *)(v1 + 76); /*0xffd82cf1*/ + *(_DWORD *)(v1 + 84) = *(_DWORD *)(v1 + 84); /*0xffd82cf7*/ + *(_DWORD *)(v1 + 216) |= 0x800000u; /*0xffd82d05*/ + } + } + DebugPrint(64, (int)"PciERWORegInit() End\ +"); /*0xffd82d1f*/ + } + return 0; /*0xffd82d26*/ +} + +/* Source: ffd82d2f.c */ +int __fastcall PchPcieRpSpeedChange(int a1, int a2) +{ + unsigned __int8 i_1; // al + unsigned int i_2; // esi + unsigned int i; // ebx + int v5; // eax + int v6; // edi + unsigned int j; // esi + int v8; // ebp + unsigned int n0x96; // ebp + unsigned int i_3; // esi + unsigned int k; // ebp + int v12; // esi + unsigned int n0x96_2; // ebp + unsigned int i_4; // esi + unsigned int n0x96_1; // [esp+14h] [ebp-60h] BYREF + unsigned int v17; // [esp+18h] [ebp-5Ch] + int v18; // [esp+1Ch] [ebp-58h] + int v19; // [esp+20h] [ebp-54h] + _DWORD v20[20]; // [esp+24h] [ebp-50h] + + v18 = a2; /*0xffd82d36*/ + v19 = a1; /*0xffd82d3a*/ + if ( (unsigned __int8)sub_FFD8D59A() ) + { + DebugPrint(64, (int)"DWR: PchPcieRpSpeedChange() End\ +"); + } + else + { + i_1 = sub_FFD8BFFD(); /*0xffd82d5a*/ + i_2 = 0; /*0xffd82d5f*/ + for ( i = i_1; i_2 < i; ++i_2 ) /*0xffd82d66*/ + { + v20[i_2] = 0; /*0xffd82d68*/ + if ( sub_FFD8D75C(&n0x96_1) >= 0 ) /*0xffd82d80*/ + { + v20[i_2] = sub_FFD8CBBA(0, v17, n0x96_1); /*0xffd82db2*/ + } + else + { + v5 = GetReportStatusCodePpi(); /*0xffd82d82*/ + if ( v5 ) /*0xffd82d89*/ + (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd82d9a*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", + 822, + "((BOOLEAN)(0==1))"); + } + } + v6 = 0; /*0xffd82dbb*/ + for ( j = 0; j < i; ++j ) /*0xffd82dc1*/ + { + v8 = v20[j]; /*0xffd82dc3*/ + if ( v8 ) /*0xffd82dc9*/ + { + if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v20[j]) != 0xFFFF ) /*0xffd82dda*/ + { + v17 = *(_DWORD *)(v8 + 76) & 0xF; /*0xffd82de2*/ + if ( v17 > 1 && !sub_FFD826AE(v19 + 28, j, *(_BYTE *)(j + v18)) ) /*0xffd82dfd*/ + { + sub_FFD8CC85(v17); /*0xffd82e13*/ + if ( (sub_FFD8CCA5((unsigned __int16 *)(v8 + 90)) & 0x40) != 0 ) /*0xffd82e23*/ + { + sub_FFD8CC4F(v8 + 80, 32); /*0xffd82e2b*/ + v6 |= 1 << j; /*0xffd82e30*/ + } + } + } + } + } + n0x96 = 0; /*0xffd82e38*/ + n0x96_1 = 0; /*0xffd82e3a*/ + if ( v6 ) /*0xffd82e40*/ + { + do /*0xffd82e90*/ + { + if ( n0x96 >= 0x96 ) /*0xffd82e4c*/ + break; /*0xffd82e4c*/ + sub_FFD7FA46(0x64u); /*0xffd82e51*/ + i_3 = 0; /*0xffd82e56*/ + if ( i ) /*0xffd82e5a*/ + { + do /*0xffd82e83*/ + { + if ( ((1 << i_3) & v6) != 0 && (sub_FFD8CCA5((unsigned __int16 *)(v20[i_3] + 82)) & 0x2000) != 0 ) /*0xffd82e7b*/ + v6 &= ~(1 << i_3); /*0xffd82e7d*/ + ++i_3; /*0xffd82e80*/ + } + while ( i_3 < i ); /*0xffd82e83*/ + n0x96 = n0x96_1; /*0xffd82e85*/ + } + n0x96_1 = ++n0x96; /*0xffd82e8a*/ + } + while ( v6 ); /*0xffd82e90*/ + if ( v6 ) /*0xffd82e94*/ + { + for ( k = 0; k < i; ++k ) /*0xffd82e9e*/ + { + if ( ((1 << k) & v6) != 0 ) /*0xffd82ea9*/ + { + v12 = v20[k]; /*0xffd82eab*/ + sub_FFD8CC85(1); /*0xffd82eb9*/ + sub_FFD8CC4F(v12 + 80, 32); /*0xffd82ec5*/ + } + } + n0x96_2 = 0; /*0xffd82ecf*/ + n0x96_1 = 0; /*0xffd82ed1*/ + do /*0xffd82f1f*/ + { + if ( n0x96_2 >= 0x96 ) /*0xffd82edb*/ + break; /*0xffd82edb*/ + sub_FFD7FA46(0x64u); /*0xffd82ee0*/ + i_4 = 0; /*0xffd82ee5*/ + if ( i ) /*0xffd82ee9*/ + { + do /*0xffd82f12*/ + { + if ( ((1 << i_4) & v6) != 0 && (sub_FFD8CCA5((unsigned __int16 *)(v20[i_4] + 82)) & 0x2000) != 0 ) /*0xffd82f0a*/ + v6 &= ~(1 << i_4); /*0xffd82f0c*/ + ++i_4; /*0xffd82f0f*/ + } + while ( i_4 < i ); /*0xffd82f12*/ + n0x96_2 = n0x96_1; /*0xffd82f14*/ + } + n0x96_1 = ++n0x96_2; /*0xffd82f19*/ + } + while ( v6 ); /*0xffd82f1f*/ + } + } + } + return 0; /*0xffd82f21*/ +} + +/* Source: ffd82f2b.c */ +bool __fastcall GetPciEndpointInfo(int a1, unsigned __int8 a2, unsigned __int16 *a3) +{ + char v5; // bl + unsigned int v7; // ebp + unsigned __int8 v8; // al + unsigned __int16 *v9; // ecx + unsigned int *v11; // [esp+1Ch] [ebp+4h] + + v5 = 0; /*0xffd82f40*/ + *(_DWORD *)(a3 + 1) = 0xFFFF; /*0xffd82f42*/ + *a3 = -1; /*0xffd82f49*/ + if ( (sub_FFD8CCA5((unsigned __int16 *)(a1 + 90)) & 0x40) == 0 ) /*0xffd82f56*/ + return 0; /*0xffd82f58*/ + *(_DWORD *)(a1 + 24) = *(_DWORD *)(a1 + 24) & 0xFF0000FF | ((a2 | (a2 << 8)) << 8); /*0xffd82f7c*/ + v11 = (unsigned int *)sub_FFD8CBBA(a2, 0, 0); /*0xffd82f8b*/ + sub_FFD8CCD3(v11, 0); /*0xffd82f8f*/ + v7 = *v11; /*0xffd82f94*/ + *(_DWORD *)a3 = *v11; /*0xffd82f9c*/ + if ( v7 != -1 ) /*0xffd82fa6*/ + { + v8 = sub_FFD90A71(0, HIWORD(v7)); /*0xffd82fb0*/ + if ( v8 ) /*0xffd82fb9*/ + { + v9 = (unsigned __int16 *)((char *)v11 + v8 + 12); /*0xffd82fc5*/ + v5 = *(_BYTE *)v9 & 0xF; /*0xffd82fc9*/ + *((_BYTE *)a3 + 5) = ((unsigned __int16)sub_FFD8CCA5(v9) >> 4) & 0x3F; /*0xffd82fd7*/ + } + *((_BYTE *)a3 + 4) = v5; /*0xffd82fda*/ + } + *(_DWORD *)(a1 + 24) &= 0xFF0000FF; /*0xffd82fe5*/ + DebugPrint( + 64, + (int)"VID: %04X DID: %04X MLS: %d MLW: %d\ +", + *a3, + a3[1], + *((unsigned __int8 *)a3 + 4), + *((unsigned __int8 *)a3 + 5)); + return v7 != -1; /*0xffd83012*/ +} + +/* Source: ffd83019.c */ +int DirtyWarmResetExecute() +{ + int result; // eax + int v1; // eax + int v2; // esi + int v3; // eax + int *v4; // eax + int *v5; // esi + int v6; // ecx + int v7; // eax + int v8; // esi + int v9; // eax + _DWORD v10[2]; // [esp+0h] [ebp-10h] BYREF + char v11[8]; // [esp+8h] [ebp-8h] BYREF + + result = sub_FFD8D59A(); /*0xffd8301c*/ + if ( (_BYTE)result ) + { + DebugPrint(0x80000000, (int)"\ +DirtyWarmResetExecute() - Start\ +"); /*0xffd83037*/ + v1 = sub_FFD85F37(); /*0xffd8303c*/ + v2 = sub_FFD8D921(v1); /*0xffd83048*/ + if ( GetPciEndpointInfo(v2, 2u, (unsigned __int16 *)v11) ) + { + *(_DWORD *)(v2 + 24) = *(_DWORD *)(v2 + 24) & 0xFF0000FF | 0x20200; /*0xffd83083*/ + v3 = sub_FFD8CBBA(2u, 0, 0); /*0xffd83086*/ + sub_FFD8CCD3(v3, 0); /*0xffd83090*/ + } + else + { + DebugPrint(0x80000000, (int)"ERROR: DirtyWarmReset: can't get end point device available...\ +"); + } + v4 = (int *)sub_FFD8CC10(); /*0xffd83099*/ + v5 = v4; /*0xffd8309e*/ + v6 = *v4; /*0xffd830a8*/ + if ( (*v4 & 0x2000000) != 0 && v6 != -1 ) /*0xffd830b5*/ + *v4 = v6 | 0x4000000; /*0xffd830b9*/ + DebugPrint(64, (int)"DWR: Sending DirtyWarmReset Notification ...\ +"); + InstallPpi(&unk_FFD93FB4); /*0xffd830cc*/ + DebugPrint(64, (int)"DWR: DirtyWarmReset Notification completed\ +"); + if ( (*v5 & 0x2000000) != 0 && *v5 != -1 ) + { + DebugPrint(64, (int)"\ +DWR: Stalling in DWR flow to allow error collection.\ +"); + while ( (*v5 & 0x4000000) != 0 ) /*0xffd83100*/ + ; /*0xffd830fc*/ + } + v7 = sub_FFD8AD54(); /*0xffd83102*/ + v8 = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, _DWORD *))(*(_DWORD *)v7 + 32))(v7, &unk_FFD97FAC, 0, 0, v10); /*0xffd8311c*/ + if ( v8 < 0 ) + { + DebugPrint(0x80000000, (int)"\ +DWR: ERROR: Can't get reset PPI\ +"); + DebugPrint(0x80000000, (int)"\ +ASSERT_EFI_ERROR (Status = %r)\ +", v8); /*0xffd83142*/ + v9 = GetReportStatusCodePpi(); /*0xffd8314a*/ + if ( v9 ) /*0xffd83151*/ + (*(void (__cdecl **)(const char *, int, const char *))(v9 + 4))( /*0xffd83162*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", + 1104, + "!EFI_ERROR (Status)"); + } + else + { + (*(void (__cdecl **)(_DWORD, int))v10[0])(v10[0], 5); /*0xffd8312a*/ + } + DebugPrint(0x80000000, (int)"\ +DWR: Waiting for reset.\ +"); + v10[1] = 0; /*0xffd83175*/ + while ( 1 ) /*0xffd83179*/ + ; /*0xffd83179*/ + } + return result; /*0xffd83182*/ +} + diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/XhciGpioPpiGlue.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/XhciGpioPpiGlue.c new file mode 100644 index 0000000..8a97053 --- /dev/null +++ b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/XhciGpioPpiGlue.c @@ -0,0 +1,289 @@ +/* Consolidated from decompiled shard files. */ + +/* Source: ffd860b8.c */ +int __thiscall sub_FFD860B8(int this) +{ + int v2; // esi + int v3; // edi + int v4; // eax + _DWORD *v5; // eax + int n8; // edx + int v8; // [esp+14h] [ebp-8h] BYREF + int n17; // [esp+18h] [ebp-4h] BYREF + + DebugPrint(64, (int)"ConfigureXhci() - Start\n"); /*0xffd860c8*/ + v2 = *(_DWORD *)(this + 3510); /*0xffd860cd*/ + sub_FFD8BE68(); /*0xffd860d9*/ + v3 = sub_FFD8CBBA(0, 20, 0); /*0xffd860f1*/ + sub_FFD8C76F(&v8); /*0xffd860f3*/ + *(_DWORD *)(v3 + 16) = v2; /*0xffd860fd*/ + sub_FFD8CC4F(v3 + 4, 6); /*0xffd86101*/ + if ( (*(_BYTE *)(this + 2263) & 2) != 0 ) /*0xffd86109*/ + *(_DWORD *)(v2 + 33004) |= 1u; /*0xffd86114*/ + v4 = sub_FFD8AD54(); /*0xffd8611a*/ + (*(void (__cdecl **)(int, int *))(*(_DWORD *)v4 + 40))(v4, &n17); /*0xffd86127*/ + if ( n17 == 17 ) /*0xffd86133*/ + sub_FFD86747(this + 2263); /*0xffd86137*/ + else + sub_FFD85FBC(); /*0xffd8613e*/ + sub_FFD861FF(this, v2, v3); /*0xffd86148*/ + sub_FFD8701A(this, v2); /*0xffd86151*/ + DebugPrint(64, (int)"xHCI: XhciPostInitDone Start\n"); + *(_DWORD *)(v2 + 32992) &= ~0x10000u; /*0xffd86174*/ + *(_DWORD *)(v3 + 80) = 265186911; /*0xffd8617c*/ + DebugPrint(64, (int)"xHCI: XhciPostInitDone End\n"); + if ( (*(_BYTE *)(this + 2263) & 4) != 0 ) /*0xffd8618e*/ + { + sub_FFD86E37(this + 2263, v3); /*0xffd86194*/ + } + else + { + DebugPrint(0x80000000, (int)"Clear Over-Current registers\n"); /*0xffd861a5*/ + v5 = (_DWORD *)(v3 + 208); /*0xffd861ae*/ + n8 = 8; /*0xffd861b4*/ + do /*0xffd861c8*/ + { + *(v5 - 8) = 0; /*0xffd861b5*/ + *v5++ = 0; /*0xffd861bc*/ + --n8; /*0xffd861c5*/ + } + while ( n8 ); /*0xffd861c8*/ + } + sub_FFD8687F(this + 2263, v2); /*0xffd861ce*/ + sub_FFD8CC6A(v3 + 4, 65529); /*0xffd861db*/ + *(_DWORD *)(v3 + 16) = 0; /*0xffd861e7*/ + DebugPrint(64, (int)"ConfigureXhciPreMem () - End\n"); /*0xffd861ee*/ + return 0; /*0xffd861f5*/ +} + +/* Source: ffd8690c.c */ +int __fastcall sub_FFD8690C(int a1, int a2) +{ + int v2; // ebp + int n15_1; // ebx + unsigned __int8 i_4; // cl + unsigned __int8 i_1; // al + unsigned __int64 v6; // rdi + int v7; // ebx + int v8; // ebp + _DWORD *v9; // eax + _DWORD *v10; // esi + unsigned int v11; // ecx + int result; // eax + int v13; // [esp-8h] [ebp-34h] + char v14; // [esp+11h] [ebp-1Bh] BYREF + unsigned __int8 i; // [esp+12h] [ebp-1Ah] + unsigned __int8 i_3; // [esp+13h] [ebp-19h] + unsigned int n1342177280; // [esp+14h] [ebp-18h] BYREF + int v18; // [esp+18h] [ebp-14h] + int v19; // [esp+1Ch] [ebp-10h] + int n15; // [esp+20h] [ebp-Ch] BYREF + unsigned int i_2; // [esp+24h] [ebp-8h] BYREF + unsigned int v22; // [esp+28h] [ebp-4h] BYREF + + v2 = a2; /*0xffd86913*/ + v19 = a1; /*0xffd86915*/ + v18 = a2; /*0xffd86920*/ + DebugPrint(64, (int)"xHCI: Usb2AfeProgramming Start\n"); + sub_FFD8BE68(); /*0xffd86929*/ + sub_FFD8BB3A(v13); /*0xffd8692e*/ + sub_FFD8C909(&v22); /*0xffd86937*/ + n15_1 = sub_FFD8CBBA(0, 31, 2); /*0xffd8694b*/ + n15 = n15_1; /*0xffd86951*/ + sub_FFD8ADCC(202, 6, 16427, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd86970*/ + n1342177280 |= 0x400000u; /*0xffd86975*/ + sub_FFD8ADCC(202, 7, 16427, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86999*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd869a9*/ + sub_FFD8ADCC(202, 6, 16385, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd869cc*/ + n1342177280 |= 0x3000000u; /*0xffd869d8*/ + sub_FFD8ADCC(202, 7, 16385, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd869f5*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86a05*/ + sub_FFD8ADCC(202, 6, 28672, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd86a2a*/ + n1342177280 = (unsigned __int16)n1342177280 | 0x50500000; /*0xffd86a41*/ + sub_FFD8ADCC(202, 7, 28672, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86a59*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86a69*/ + n1342177280 = 1342177280; /*0xffd86a71*/ + sub_FFD8ADCC(202, 7, 28724, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86a95*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86aa5*/ + n1342177280 = 175176950; /*0xffd86aad*/ + sub_FFD8ADCC(202, 7, 28728, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86ad3*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86ae3*/ + n1342177280 = 532398080; /*0xffd86aeb*/ + sub_FFD8ADCC(202, 7, 28732, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b0f*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b1f*/ + n1342177280 = 34432; /*0xffd86b27*/ + sub_FFD8ADCC(202, 7, 32516, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b4d*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b5d*/ + n1342177280 = 67251212; /*0xffd86b65*/ + sub_FFD8ADCC(202, 7, 28712, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b8b*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b9b*/ + n1342177280 = 184552192; /*0xffd86ba9*/ + sub_FFD8ADCC(202, 7, 32515, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86bc9*/ + sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86bd9*/ + i_4 = sub_FFD8C035(); /*0xffd86be6*/ + i_1 = 1; /*0xffd86be8*/ + i_3 = i_4; /*0xffd86bea*/ + for ( i = 1; i_1 <= i_3; i = i_1 ) /*0xffd86bf4*/ + { + i_2 = i_1; /*0xffd86c07*/ + v6 = (unsigned __int64)(i_1 | 0x40u) << 8; /*0xffd86c25*/ + sub_FFD8ADCC(202, 6, v6, SHIDWORD(v6), 0, 0, &n1342177280, &v14, 6); /*0xffd86c2c*/ + v7 = 2 * i; /*0xffd86c3d*/ + n1342177280 = n1342177280 & 0xFFFF80FF /*0xffd86c87*/ + | ((*(_BYTE *)(v19 + 16 * i - 3) & 7 + | (8 * (*(_BYTE *)(v19 + 16 * i - 4) & 7 | (8 * (*(_BYTE *)(v19 + 16 * i - 1) & 1))))) << 8) + | 0xFC000010; + sub_FFD8ADCC(202, 7, v6, SHIDWORD(v6), 1u, 0, &n1342177280, &v14, 7); /*0xffd86c93*/ + sub_FFD8A1DE(n1342177280, v18, n15); /*0xffd86ca9*/ + v8 = (unsigned __int64)i_2 >> 24; /*0xffd86cb9*/ + LODWORD(v6) = i_2 << 8; /*0xffd86cbd*/ + HIDWORD(v6) = (i_2 << 8) | 0x4026; /*0xffd86cca*/ + n1342177280 = 0; /*0xffd86cd8*/ + sub_FFD8ADCC(202, 6, SHIDWORD(v6), v8, 0, 0, &n1342177280, &v14, 6); /*0xffd86ce2*/ + n1342177280 ^= (n1342177280 ^ (*(unsigned __int8 *)(v19 + 8 * v7 - 2) << 23)) & 0x1800000; /*0xffd86d0b*/ + sub_FFD8ADCC(202, 7, SHIDWORD(v6), v8, 1u, 0, &n1342177280, &v14, 7); /*0xffd86d22*/ + n15_1 = n15; /*0xffd86d27*/ + sub_FFD8A1DE(n1342177280, v18, n15); /*0xffd86d39*/ + LODWORD(v6) = v6 | 0x4008; /*0xffd86d47*/ + sub_FFD8ADCC(202, 6, v6, v8, 0, 0, &n1342177280, &v14, 6); /*0xffd86d61*/ + n1342177280 = n1342177280 & 0xFFFFC17F | 0x1A80; /*0xffd86d7c*/ + sub_FFD8ADCC(202, 7, v6, v8, 1u, 0, &n1342177280, &v14, 7); /*0xffd86d94*/ + v2 = v18; /*0xffd86d99*/ + sub_FFD8A1DE(n1342177280, v18, n15_1); /*0xffd86da8*/ + i_1 = i + 1; /*0xffd86db4*/ + } + if ( sub_FFD8BE68() == 2 ) /*0xffd86dcc*/ + { + i_3 = sub_FFD89FDC(&i_2); /*0xffd86ddd*/ + v9 = (_DWORD *)sub_FFD8A048(); /*0xffd86de1*/ + v10 = v9; /*0xffd86de6*/ + if ( v9 ) /*0xffd86dea*/ + { + v11 = i_2 + *v9; /*0xffd86df2*/ + n15 = 15; /*0xffd86df8*/ + sub_FFD8D51B(v11, &n15, 4); /*0xffd86e00*/ + *v10 += 4; /*0xffd86e05*/ + if ( i_3 == 1 ) /*0xffd86e0e*/ + sub_FFD8A02F(n15_1); /*0xffd86e12*/ + } + } + sub_FFD8A2C4(v2, n15_1); /*0xffd86e1b*/ + result = *(_DWORD *)(v22 + 24) | 0x20000000; /*0xffd86e2a*/ + *(_DWORD *)(v22 + 24) = result; /*0xffd86e2f*/ + return result; /*0xffd86e24*/ +} + +/* Source: ffd87b03.c */ +int __thiscall sub_FFD87B03(int this) +{ + int v2; // edi + int v3; // ebx + int v5; // ebp + unsigned int n0x3E8; // esi + unsigned int i; // ebp + int n2; // esi + int n35; // edi + unsigned int v10; // [esp+10h] [ebp-4h] BYREF + + v2 = *(_DWORD *)(this + 3510); /*0xffd87b11*/ + v3 = sub_FFD8CBBA(0, 20, 1); /*0xffd87b1d*/ + if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v3) == 0xFFFF ) + { + DebugPrint(64, (int)"xDCI: Pci device NOT found\n"); + return -2147483634; /*0xffd87b3e*/ + } + else + { + v5 = sub_FFD8CBBA(0, 20, 0); /*0xffd87b63*/ + sub_FFD8C578(-1, 63); /*0xffd87b65*/ + sub_FFD8C5B5(); /*0xffd87b6a*/ + if ( (*(_BYTE *)(this + 2683) & 1) != 0 ) + { + *(_DWORD *)(v5 + 16) = v2; /*0xffd87cfb*/ + sub_FFD8CC4F(v5 + 4, 2); /*0xffd87cfe*/ + *(_DWORD *)(v2 + 32984) &= 0xFFCFFFFF; /*0xffd87d11*/ + sub_FFD8CC6A(v5 + 4, 65533); /*0xffd87d1e*/ + *(_DWORD *)(v5 + 16) = 0; /*0xffd87d2b*/ + sub_FFD8CC85(4); /*0xffd87d34*/ + } + else + { + DebugPrint(64, (int)"xDCI: Device disabled\n"); + *(_DWORD *)(v5 + 16) = v2; /*0xffd87b91*/ + sub_FFD8CC4F(v5 + 4, 2); /*0xffd87b95*/ + *(_DWORD *)(v2 + 32984) |= 0x200000u; /*0xffd87ba5*/ + n0x3E8 = 0; /*0xffd87bb6*/ + *(_DWORD *)(v2 + 32984) &= ~0x100000u; /*0xffd87bb8*/ + while ( (*(_DWORD *)(v2 + 32988) & 0x20000000) == 0 && n0x3E8 < 0x3E8 ) /*0xffd87bc6*/ + { + sub_FFD7FA46(0x64u); /*0xffd87bcb*/ + ++n0x3E8; /*0xffd87bd0*/ + } + *(_DWORD *)(v2 + 32984) = *(_DWORD *)(v2 + 32984) & 0xFFFFFFFC | 1; /*0xffd87bf4*/ + sub_FFD8CC6A(v5 + 4, 65533); /*0xffd87bfa*/ + *(_DWORD *)(v5 + 16) = 0; /*0xffd87c01*/ + *(_DWORD *)(v3 + 16) = v2; /*0xffd87c0c*/ + sub_FFD8CC4F(v3 + 4, 2); /*0xffd87c0f*/ + *(_DWORD *)(v2 + 49424) |= 2u; /*0xffd87c23*/ + *(_DWORD *)(v2 + 49664) |= 0x40u; /*0xffd87c32*/ + *(_DWORD *)(v2 + 49856) |= 0x8000000u; /*0xffd87c46*/ + sub_FFD8CC4F(v2 + 1112088, 3); /*0xffd87c4c*/ + for ( i = 0; (sub_FFD8CCA5((unsigned __int16 *)(v2 + 1112080)) & 0xF00) == 0 && i < 0x3E8; ++i ) /*0xffd87c51*/ + sub_FFD7FA46(0x64u); /*0xffd87c60*/ + sub_FFD8CC6A(v3 + 4, 65533); /*0xffd87c80*/ + *(_DWORD *)(v3 + 16) = 0; /*0xffd87c85*/ + *(_DWORD *)(v3 + 132) |= 3u; /*0xffd87c95*/ + n2 = sub_FFD8BE68(); /*0xffd87ca0*/ + n35 = sub_FFD8BB3A(); /*0xffd87ca7*/ + sub_FFD8C578(-1, 256); /*0xffd87cc4*/ + sub_FFD8C909(&v10); /*0xffd87ccf*/ + if ( n2 == 2 && n35 >= 35 ) /*0xffd87cdc*/ + *(_DWORD *)(v10 + 1576) |= 0x1000000u; /*0xffd87ced*/ + } + return 0; /*0xffd87d3a*/ + } +} + +/* Source: ffd8b940.c */ +int __thiscall sub_FFD8B940(void *this) +{ + int n256; // esi + int n13; // edi + int v3; // eax + void *v4; // ecx + int v5; // eax + int result; // eax + + n256 = 256; /*0xffd8b947*/ + n13 = 13; /*0xffd8b94e*/ + do /*0xffd8b9e0*/ + { + v3 = sub_FFD8B14D(n256, this, -1, 0, 0); /*0xffd8b95f*/ + if ( v3 < 0 ) /*0xffd8b969*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v3); /*0xffd8b976*/ + v5 = GetReportStatusCodePpi(); /*0xffd8b97e*/ + if ( v5 ) /*0xffd8b985*/ + (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd8b992*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", + 1584, + "!EFI_ERROR (Status)"); + } + result = sub_FFD8B14D(n256, v4, -1, 0, 0); /*0xffd8b9a3*/ + if ( result < 0 ) /*0xffd8b9ad*/ + { + DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", result); /*0xffd8b9ba*/ + result = GetReportStatusCodePpi(); /*0xffd8b9c2*/ + if ( result ) /*0xffd8b9c9*/ + result = (*(int (__cdecl **)(const char *, int, const char *))(result + 4))( /*0xffd8b9d6*/ + "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", + 1712, + "!EFI_ERROR (Status)"); + } + ++n256; /*0xffd8b9dc*/ + --n13; /*0xffd8b9dd*/ + } + while ( n13 ); /*0xffd8b9e0*/ + return result; /*0xffd8b9e6*/ +} + diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f6ec.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f6ec.c deleted file mode 100644 index 271339e..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f6ec.c +++ /dev/null @@ -1,5 +0,0 @@ -void *__cdecl FillBuffer(void *buf, unsigned int count, char value) -{ - memset(buf, value, count); /*0xffd7f6f9*/ - return buf; /*0xffd7f6ff*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f72c.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f72c.c deleted file mode 100644 index 3340b17..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f72c.c +++ /dev/null @@ -1,22 +0,0 @@ -char *__cdecl sub_FFD7F72C(char *dst, char *src, unsigned int count_1) -{ - unsigned int count; // edx - char *dst_1; // edi - char *src_1; // esi - - count = count_1; /*0xffd7f736*/ - if ( src < dst && &src[count_1 - 1] >= dst ) /*0xffd7f744*/ - { - src_1 = &src[count_1 - 1]; /*0xffd7f758*/ - dst_1 = &dst[count_1 - 1]; /*0xffd7f75a*/ - } - else - { - count = count_1 & 3; /*0xffd7f748*/ - qmemcpy(dst, src, 4 * (count_1 >> 2)); /*0xffd7f751*/ - src_1 = &src[4 * (count_1 >> 2)]; /*0xffd7f751*/ - dst_1 = &dst[4 * (count_1 >> 2)]; /*0xffd7f751*/ - } - qmemcpy(dst_1, src_1, count); /*0xffd7f761*/ - return dst; /*0xffd7f768*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f76c.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f76c.c deleted file mode 100644 index 221ac75..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f76c.c +++ /dev/null @@ -1,10 +0,0 @@ -int __cdecl StoreDwordPairs(int a1, int a2, int a3, int a4) -{ - do /*0xffd7f785*/ - { - *(_DWORD *)(a1 + 8 * a2 - 8) = a3; /*0xffd7f77d*/ - *(_DWORD *)(a1 + 8 * a2-- - 4) = a4; /*0xffd7f781*/ - } - while ( a2 ); /*0xffd7f785*/ - return a1; /*0xffd7f789*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f78c.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f78c.c deleted file mode 100644 index 3c1c7d7..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f78c.c +++ /dev/null @@ -1,5 +0,0 @@ -void *__cdecl FillBuffer32(void *buf, unsigned int count, int value) -{ - memset32(buf, value, count); /*0xffd7f799*/ - return buf; /*0xffd7f79f*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f7a1.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f7a1.c deleted file mode 100644 index 7d9f521..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f7a1.c +++ /dev/null @@ -1,45 +0,0 @@ -EFI_STATUS ModuleEntryPoint(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) -{ - int v2; // eax - int v3; // ecx - void *v4; // ecx - int v5; // ecx - int v6; // eax - int v7; // eax - int v8; // eax - unsigned __int64 v10; // [esp-Ch] [ebp-10h] - - if ( (sub_FFD9165B(1024068) & 0x80u) == 0 ) /*0xffd7f7b0*/ - { - sub_FFD9168B(); /*0xffd7f7b2*/ - v2 = sub_FFD9164F(); /*0xffd7f7b7*/ - *(_BYTE *)(v2 + 1024068) |= 0x80u; /*0xffd7f7c3*/ - } - DebugPrint(64, (int)"SiInitPrePolicy() Start\n"); /*0xffd7f88f*/ - TraceHubInitialize(0); /*0xffd7f898*/ - RecordPerformanceEntry(v3, __rdtsc()); /*0xffd7f8a3*/ - PrintPchInfo(); /*0xffd7f8a8*/ - DebugPrint(64, (int)"PchInitPrePolicy() - Start\n"); /*0xffd7f8b4*/ - PchWdtInit(); /*0xffd7f8b9*/ - InstallPchResetPpi(); /*0xffd7f8be*/ - InstallPchSpiPpi(); /*0xffd7f8c3*/ - PchInitPreMem(); /*0xffd7f8c8*/ - sub_FFD8B940(v4); /*0xffd7f8cd*/ - DebugPrint(64, (int)"PchInitPrePolicy() - End\n"); /*0xffd7f8d9*/ - v10 = __rdtsc(); /*0xffd7f8e5*/ - EndPerformanceMeasurement(v5, v10, HIDWORD(v10)); /*0xffd7f8e7*/ - v6 = sub_FFD8AD54(); /*0xffd7f8ec*/ - v7 = (*(int (__cdecl **)(int, void *))(*(_DWORD *)v6 + 36))(v6, &unk_FFD97FEC); /*0xffd7f8f9*/ - if ( v7 < 0 ) /*0xffd7f901*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v7); /*0xffd7f90e*/ - v8 = GetReportStatusCodePpi(); /*0xffd7f916*/ - if ( v8 ) /*0xffd7f91d*/ - (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffd7f92e*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SiInit\\Pei\\SiInitPreMem.c", - 155, - "!EFI_ERROR (Status)"); - } - DebugPrint(64, (int)"SiInitPrePolicy() - End\n"); /*0xffd7f93b*/ - return 0; /*0xffd7f947*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f948.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f948.c deleted file mode 100644 index e8fb73a..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f948.c +++ /dev/null @@ -1,7 +0,0 @@ -int __thiscall InstallPpi(void *this) -{ - int v2; // eax - - v2 = sub_FFD8AD54(); /*0xffd7f94b*/ - return (*(int (__cdecl **)(int, void *))(*(_DWORD *)v2 + 24))(v2, this); /*0xffd7f959*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f95b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f95b.c deleted file mode 100644 index 97cf2c8..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f95b.c +++ /dev/null @@ -1,7 +0,0 @@ -int __fastcall sub_FFD7F95B(int a1, int a2, int a3, int a4) -{ - int v6; // eax - - v6 = sub_FFD8AD54(); /*0xffd7f962*/ - return (*(int (__cdecl **)(int, int, int, int, int))(*(_DWORD *)v6 + 32))(v6, a1, a2, a3, a4); /*0xffd7f97a*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f97e.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f97e.c deleted file mode 100644 index 5388ed2..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f97e.c +++ /dev/null @@ -1,12 +0,0 @@ -int GetReportStatusCodePpi() -{ - int v0; // eax - _BYTE v2[4]; // [esp+0h] [ebp-8h] BYREF - int v3; // [esp+4h] [ebp-4h] BYREF - - v0 = sub_FFD8AD54(); /*0xffd7f983*/ - if ( (*(int (__cdecl **)(int, void *, _DWORD, _BYTE *, int *))(*(_DWORD *)v0 + 32))(v0, &unk_FFD97EAC, 0, v2, &v3) >= 0 ) /*0xffd7f9a2*/ - return v3; /*0xffd7f9a8*/ - else - return 0; /*0xffd7f9a4*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9af.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9af.c deleted file mode 100644 index 0b76fb9..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9af.c +++ /dev/null @@ -1,17 +0,0 @@ -int DebugPrint(int a1, int a2, ...) -{ - int result; // eax - int (__cdecl **v3)(int, int, char *); // esi - va_list va; // [esp+10h] [ebp+Ch] BYREF - - va_start(va, a2); - result = GetReportStatusCodePpi(); /*0xffd7f9b0*/ - v3 = (int (__cdecl **)(int, int, char *))result; /*0xffd7f9b5*/ - if ( result ) /*0xffd7f9b9*/ - { - result = sub_FFD8AD05(); /*0xffd7f9bb*/ - if ( (result & a1) != 0 ) /*0xffd7f9c6*/ - return (*v3)(a1, a2, (char *)va); /*0xffd7f9d2*/ - } - return result; /*0xffd7f9d7*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9d9.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9d9.c deleted file mode 100644 index 30f74cb..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9d9.c +++ /dev/null @@ -1,9 +0,0 @@ -int __fastcall sub_FFD7F9D9(int a1, int a2, const char *PeiServices____((void__)_0)) -{ - int result; // eax - - result = GetReportStatusCodePpi(); /*0xffd7f9df*/ - if ( result ) /*0xffd7f9e6*/ - return (*(int (__cdecl **)(int, int, const char *))(result + 4))(a1, a2, PeiServices____((void__)_0)); /*0xffd7f9ee*/ - return result; /*0xffd7f9f4*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9f7.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9f7.c deleted file mode 100644 index c47a75c..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7f9f7.c +++ /dev/null @@ -1,20 +0,0 @@ -int __fastcall StallForTicks(unsigned int a1) -{ - unsigned int v1; // esi - int n0x400000; // edi - int v3; // ebx - int result; // eax - - v1 = a1 >> 22; /*0xffd7fa04*/ - n0x400000 = a1 & 0x3FFFFF; /*0xffd7fa07*/ - do /*0xffd7fa3f*/ - { - v3 = n0x400000 + (sub_FFD8CD6B(1288) & 0xFFFFFF); /*0xffd7fa1c*/ - n0x400000 = 0x400000; /*0xffd7fa1e*/ - while ( ((v3 - sub_FFD8CD6B(1288)) & 0x800000) == 0 ) /*0xffd7fa38*/ - _mm_pause(); /*0xffd7fa25*/ - result = v1--; /*0xffd7fa3a*/ - } - while ( result ); /*0xffd7fa3f*/ - return result; /*0xffd7fa41*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fa46.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fa46.c deleted file mode 100644 index 0608b8d..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fa46.c +++ /dev/null @@ -1,11 +0,0 @@ -unsigned int __fastcall StallMicroseconds(unsigned int a1) -{ - unsigned int v2; // eax - unsigned __int64 v3; // rtt - - v2 = (3579545 * (unsigned __int64)a1) >> 32; /*0xffd7fa6c*/ - LODWORD(v3) = 3579545 * a1; /*0xffd7fa7c*/ - HIDWORD(v3) = v2 % 0xF4240; /*0xffd7fa7c*/ - StallForTicks(v3 / 0xF4240, v2 / 0xF4240); /*0xffd7fa81*/ - return a1; /*0xffd7fa88*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fa8d.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fa8d.c deleted file mode 100644 index bf02cb6..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fa8d.c +++ /dev/null @@ -1,57 +0,0 @@ -int __fastcall GetPerformanceLogBuffer(int *a1, int *a2) -{ - int v4; // eax - int v5; // eax - int v6; // eax - int v7; // edi - int v8; // eax - int result; // eax - int v10; // eax - int v11; // eax - - if ( !a1 ) /*0xffd7fa9d*/ - { - v4 = GetReportStatusCodePpi(); /*0xffd7fa9f*/ - if ( v4 ) /*0xffd7faa6*/ - (*(void (__cdecl **)(const char *, int, const char *))(v4 + 4))( /*0xffd7fab0*/ - "e:\\hs\\MdeModulePkg\\Library\\PeiPerformanceLib\\PeiPerformanceLib.c", - 57, - "PeiPerformanceLog != ((void *) 0)"); - } - if ( !a2 ) /*0xffd7fab8*/ - { - v5 = GetReportStatusCodePpi(); /*0xffd7faba*/ - if ( v5 ) /*0xffd7fac1*/ - (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd7facb*/ - "e:\\hs\\MdeModulePkg\\Library\\PeiPerformanceLib\\PeiPerformanceLib.c", - 58, - "PeiPerformanceIdArray != ((void *) 0)"); - } - v6 = sub_FFD8CE7C(&unk_FFD97F9C); /*0xffd7fad8*/ - if ( v6 ) /*0xffd7fadf*/ - { - *a1 = v6 + 24; /*0xffd7fae9*/ - v7 = sub_FFD8CE7C(&unk_FFD97ECC); /*0xffd7faf0*/ - if ( !v7 ) /*0xffd7faf4*/ - { - v8 = GetReportStatusCodePpi(); /*0xffd7faf6*/ - if ( v8 ) /*0xffd7fafd*/ - (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffd7fb07*/ - "e:\\hs\\MdeModulePkg\\Library\\PeiPerformanceLib\\PeiPerformanceLib.c", - 72, - "GuidHob != ((void *) 0)"); - } - result = v7 + 24; /*0xffd7fb0d*/ - } - else - { - v10 = sub_FFD8CF46(&unk_FFD97F9C, 40008); /*0xffd7fb1b*/ - *a1 = v10; /*0xffd7fb22*/ - *a1 = sub_FFD8D4C8(v10, 40008); /*0xffd7fb2b*/ - v11 = sub_FFD8CF46(&unk_FFD97ECC, 4000); /*0xffd7fb39*/ - *a2 = v11; /*0xffd7fb40*/ - result = sub_FFD8D4C8(v11, 4000); /*0xffd7fb44*/ - } - *a2 = result; /*0xffd7fb4a*/ - return result; /*0xffd7fb49*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fb51.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fb51.c deleted file mode 100644 index 9332fbe..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fb51.c +++ /dev/null @@ -1,33 +0,0 @@ -int __thiscall FindLatestPerformanceEntry(unsigned int *this) -{ - int v2; // esi - unsigned int v3; // eax - int v4; // ebx - int v5; // ebp - unsigned int v7; // [esp+8h] [ebp-4h] - - v2 = 0; /*0xffd7fb56*/ - v3 = *this; /*0xffd7fb58*/ - v7 = *this; /*0xffd7fb5a*/ - if ( *this ) /*0xffd7fb58*/ - { - while ( 1 ) /*0xffd7fb68*/ - { - v4 = v3 - v2 - 1; /*0xffd7fb68*/ - v5 = 40 * v4; /*0xffd7fb69*/ - if ( !*((_QWORD *)this + 5 * v4 + 5) /*0xffd7fba8*/ - && *(_UNKNOWN **)((char *)this + v5 + 8) == &unk_FFD97F8C - && *(unsigned int *)((char *)this + v5 + 12) == (*(this + 10 * v4 + 11) | *(this + 10 * v4 + 10)) - && !sub_FFD8D0FF(7) - && !sub_FFD8D0FF(7) ) - { - break; /*0xffd7fba8*/ - } - v3 = v7; /*0xffd7fbb2*/ - if ( ++v2 >= v7 ) /*0xffd7fbb9*/ - return v2; /*0xffd7fbb9*/ - } - return v4; /*0xffd7fbbd*/ - } - return v2; /*0xffd7fbc1*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fbc7.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fbc7.c deleted file mode 100644 index 460b574..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fbc7.c +++ /dev/null @@ -1,43 +0,0 @@ -int __cdecl RecordPerformanceEntry(int a1, __int64 a2) -{ - _DWORD *v2; // ecx - int v3; // edx - int v5; // edi - int v6; // esi - int v7; // eax - int v8; // edx - unsigned __int64 v9; // rax - int v10; // [esp+8h] [ebp-8h] BYREF - _DWORD *v11; // [esp+Ch] [ebp-4h] BYREF - - GetPerformanceLogBuffer((int *)&v11, &v10); /*0xffd7fbd4*/ - v2 = v11; /*0xffd7fbd9*/ - v3 = *v11; /*0xffd7fbdc*/ - if ( *v11 < 0x3E8u ) /*0xffd7fbe4*/ - { - v5 = HIDWORD(a2); /*0xffd7fbfe*/ - v6 = 10 * v3; /*0xffd7fc04*/ - *v11 = v3 + 1; /*0xffd7fc07*/ - v2[v6 + 3] = 0; /*0xffd7fc0b*/ - v2[v6 + 10] = 0; /*0xffd7fc0f*/ - v2[v6 + 11] = 0; /*0xffd7fc13*/ - v7 = v10; /*0xffd7fc17*/ - v2[v6 + 2] = &unk_FFD97F8C; /*0xffd7fc1a*/ - *(_DWORD *)(v7 + 4 * v3) = 20704; /*0xffd7fc22*/ - v8 = a2; /*0xffd7fc29*/ - if ( !a2 ) /*0xffd7fc30*/ - { - v9 = __rdtsc(); /*0xffd7fc32*/ - v5 = HIDWORD(v9); /*0xffd7fc34*/ - v8 = v9; /*0xffd7fc36*/ - } - v2[v6 + 8] = v8; /*0xffd7fc38*/ - v2[v6 + 9] = v5; /*0xffd7fc3e*/ - return 0; /*0xffd7fc3c*/ - } - else - { - DebugPrint(0x80000000, (int)"PEI performance log array out of resources\n"); /*0xffd7fbf0*/ - return -2147483639; /*0xffd7fbf7*/ - } -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fc48.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fc48.c deleted file mode 100644 index c388ece..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fc48.c +++ /dev/null @@ -1,18 +0,0 @@ -int __cdecl EndPerformanceMeasurement(int a1, unsigned __int64 a2) -{ - unsigned __int64 v2; // kr00_8 - unsigned int *v3; // ebx - unsigned int v4; // eax - int v6; // [esp+Ch] [ebp-4h] BYREF - - v2 = a2; /*0xffd7fc54*/ - if ( !a2 ) /*0xffd7fc59*/ - v2 = __rdtsc(); /*0xffd7fc5f*/ - GetPerformanceLogBuffer((int *)&a2 + 1, &v6); /*0xffd7fc67*/ - v3 = (unsigned int *)HIDWORD(a2); /*0xffd7fc6c*/ - v4 = sub_FFD7FB51((unsigned int *)HIDWORD(a2)); /*0xffd7fc74*/ - if ( v4 >= *v3 ) /*0xffd7fc7e*/ - return -2147483634; /*0xffd7fc80*/ - *(_QWORD *)&v3[10 * v4 + 10] = v2; /*0xffd7fc8b*/ - return 0; /*0xffd7fc94*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fc9b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fc9b.c deleted file mode 100644 index 147a500..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fc9b.c +++ /dev/null @@ -1,37 +0,0 @@ -int SetTraceHubFwBar() -{ - int v0; // eax - int v2; // esi - int v3; // eax - int v4; // [esp+4h] [ebp-4h] BYREF - - sub_FFD8C2A0(0xEFu, 0x2234u, 4, &v4); /*0xffd7fcb0*/ - if ( v4 < 0 ) /*0xffd7fcbf*/ - { - DebugPrint(0x80000000, (int)"TraceHubBaseSet Error. DMIC.SRL is set.\n"); /*0xffd7fcc7*/ - v0 = GetReportStatusCodePpi(); /*0xffd7fcce*/ - if ( v0 ) /*0xffd7fcd5*/ - (*(void (__cdecl **)(const char *, int, const char *))(v0 + 4))( /*0xffd7fce3*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmTraceHubInitLib\\PeiDxeSmmTraceHubInitLib.c", - 64, - "((BOOLEAN)(0==1))"); - return -2147483645; /*0xffd7fcee*/ - } - v2 = sub_FFD8CBBA(0, 31, 7); /*0xffd7fcfd*/ - if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v2) == 0xFFFF ) /*0xffd7fd0e*/ - { - v3 = GetReportStatusCodePpi(); /*0xffd7fd10*/ - if ( v3 ) /*0xffd7fd17*/ - (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd7fd20*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmTraceHubInitLib\\PeiDxeSmmTraceHubInitLib.c", - 74, - "((BOOLEAN)(0==1))"); - return -2147483645; /*0xffd7fd20*/ - } - *(_DWORD *)(v2 + 112) = -32768000; /*0xffd7fd2c*/ - *(_DWORD *)(v2 + 116) = 0; /*0xffd7fd2f*/ - sub_FFD8C497(4, -32768000); /*0xffd7fd40*/ - sub_FFD8C497(4, 0); /*0xffd7fd50*/ - sub_FFD8C5F6(255, 2); /*0xffd7fd63*/ - return 0; /*0xffd7fd6d*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fd72.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fd72.c deleted file mode 100644 index 7798dc7..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd7fd72.c +++ /dev/null @@ -1,57 +0,0 @@ -int __fastcall TraceHubInitialize(char a1) -{ - int v2; // esi - int result; // eax - unsigned int v4; // [esp+Ch] [ebp-4h] BYREF - - DebugPrint(64, (int)"TraceHubInitialize() - Start\n"); /*0xffd7fd84*/ - sub_FFD8C909(&v4); /*0xffd7fd8c*/ - *(_BYTE *)(v4 + 1488) = 0; /*0xffd7fd9b*/ - v2 = sub_FFD8CBBA(0, 31, 7); /*0xffd7fdb0*/ - if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v2) == 0xFFFF ) /*0xffd7fdc1*/ - return DebugPrint(64, (int)"TraceHubInitialize() - End. TraceHub device is not present \n"); /*0xffd7fdc8*/ - if ( (*(_DWORD *)(v2 + 4) & 2) != 0 ) /*0xffd7fdd2*/ - { - DebugPrint(64, (int)"TraceHubInitialize() - End. Early init done already \n"); /*0xffd7fdda*/ - DebugPrint(64, (int)"TraceHubInitialize() - FW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 112)); /*0xffd7fde9*/ - DebugPrint(64, (int)"TraceHubInitialize() - MTB_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 16)); /*0xffd7fdfb*/ - DebugPrint(64, (int)"TraceHubInitialize() - SW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 24)); /*0xffd7fe0d*/ - result = MEMORY[0xFE1000E0]; /*0xffd7fe1a*/ - if ( (MEMORY[0xFE1000E0] & 0x1000000) != 0 ) /*0xffd7fe21*/ - return DebugPrint(64, (int)"TraceHubInitialize() - Trace Hub enabled due to SCRPD0.24\n"); /*0xffd7fe2c*/ - } - else - { - DebugPrint(64, (int)"TraceHubInitialize() - Setting MTB_BAR\n"); /*0xffd7fe37*/ - *(_DWORD *)(v2 + 16) = -32505856; /*0xffd7fe3e*/ - *(_DWORD *)(v2 + 20) = 0; /*0xffd7fe47*/ - *(_BYTE *)(v2 + 4) |= 2u; /*0xffd7fe4f*/ - if ( (MEMORY[0xFE1000E0] & 0x1000000) != 0 || a1 ) /*0xffd7fe62*/ - { - MEMORY[0xFE1000CC] = 357000000; /*0xffd7fe91*/ - *(_BYTE *)(v2 + 4) = 0; /*0xffd7fe9c*/ - DebugPrint(64, (int)"TraceHubInitialize() - Setting SW_BAR\n"); /*0xffd7fe9f*/ - *(_DWORD *)(v2 + 24) = -31457280; /*0xffd7fea9*/ - *(_DWORD *)(v2 + 28) = 0; /*0xffd7feb1*/ - DebugPrint(64, (int)"TraceHubInitialize() - Setting FW_BAR\n"); /*0xffd7feb8*/ - SetTraceHubFwBar(); /*0xffd7febd*/ - DebugPrint(64, (int)"TraceHubInitialize() - Enabling MSE and BME\n"); /*0xffd7fec8*/ - *(_BYTE *)(v2 + 4) |= 6u; /*0xffd7fed8*/ - DebugPrint(64, (int)"TraceHubInitialize () Assigned BARs:\n"); /*0xffd7fedb*/ - DebugPrint(64, (int)"TraceHubInitialize () FW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 112)); /*0xffd7feea*/ - DebugPrint(64, (int)"TraceHubInitialize () MTB_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 16)); /*0xffd7fefc*/ - DebugPrint(64, (int)"TraceHubInitialize () SW_LBAR = 0x%08x\n", *(_DWORD *)(v2 + 24)); /*0xffd7ff0e*/ - return DebugPrint(64, (int)"TraceHubInitialize () - End\n"); /*0xffd7ff1c*/ - } - else - { - *(_BYTE *)(v2 + 4) = 0; /*0xffd7fe6a*/ - DebugPrint(64, (int)"TraceHubInitialize() - Clearing MTB_BAR\n"); /*0xffd7fe6d*/ - *(_DWORD *)(v2 + 16) = 0; /*0xffd7fe78*/ - return DebugPrint( /*0xffd7fe7f*/ - 64, - (int)"TraceHubInitialize() - End. STT disconnected and Trace Hub requested to be disable\n"); - } - } - return result; /*0xffd7ff23*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80210.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80210.c deleted file mode 100644 index a8b8a19..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80210.c +++ /dev/null @@ -1,108 +0,0 @@ -int PchFabricErrorCheck() -{ - int v0; // eax - int v1; // eax - unsigned __int8 *v2; // esi - int v3; // edi - unsigned int i; // ebp - unsigned int v5; // ecx - unsigned int v6; // edx - unsigned int v7; // ebx - unsigned __int8 v8; // cl - unsigned int v9; // ebx - int v10; // ebx - unsigned int v11; // eax - int result; // eax - int v13; // [esp+0h] [ebp-24h] BYREF - int v14; // [esp+4h] [ebp-20h] - int v15; // [esp+8h] [ebp-1Ch] - _DWORD *v16; // [esp+Ch] [ebp-18h] BYREF - int n10; // [esp+10h] [ebp-14h] - int v18; // [esp+14h] [ebp-10h] BYREF - int v19; // [esp+18h] [ebp-Ch] BYREF - unsigned int v20; // [esp+1Ch] [ebp-8h] - unsigned int v21; // [esp+20h] [ebp-4h] - - v13 = 0; /*0xffd80213*/ - v0 = sub_FFD8AD54(); /*0xffd80217*/ - if ( (*(int (__cdecl **)(int, int, _DWORD **))(*(_DWORD *)v0 + 76))(v0, 4, &v16) ) /*0xffd80226*/ - { - v1 = GetReportStatusCodePpi(); /*0xffd80230*/ - if ( v1 ) /*0xffd80237*/ - (*(void (__cdecl **)(const char *, int, const char *))(v1 + 4))( /*0xffd80248*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", - 456, - "Status == 0"); - } - *v16 = 0; /*0xffd80255*/ - v2 = (unsigned __int8 *)&unk_FFD980CC; /*0xffd80258*/ - v15 = 0; /*0xffd8025d*/ - n10 = 10; /*0xffd80263*/ - do - { - v3 = 0; /*0xffd8026b*/ - for ( i = 0; i < 0xC00; i += 512 ) - { - v5 = 0; /*0xffd80272*/ - v6 = i + *((_DWORD *)v2 + 2); /*0xffd80274*/ - v14 = 0; /*0xffd80276*/ - v21 = v6; /*0xffd8027a*/ - if ( v2[v3 + 1] ) - { - while ( 1 ) /*0xffd80288*/ - { - v7 = v5; /*0xffd80288*/ - v8 = *v2; /*0xffd8028e*/ - v9 = v6 + 32 * v7; /*0xffd80294*/ - v20 = v9; /*0xffd8029b*/ - sub_FFD8C2A0(v8, v9, 4, &v18); /*0xffd8029f*/ - sub_FFD8C2A0(*v2, v9, 4, &v19); /*0xffd802b0*/ - v10 = v18; /*0xffd802b5*/ - if ( v18 == v19 ) /*0xffd802c0*/ - { - v13 = v18; /*0xffd802dd*/ - } - else - { - sub_FFD8C2A0(*v2, v20, 4, &v13); /*0xffd802d0*/ - v10 = v13; /*0xffd802d5*/ - } - if ( v10 ) /*0xffd802e3*/ - break; /*0xffd802e3*/ - v11 = v2[v3 + 1]; /*0xffd802e9*/ - v5 = v14 + 1; /*0xffd802ee*/ - v6 = v21; /*0xffd802ef*/ - v14 = v5; /*0xffd802f3*/ - if ( v5 >= v11 ) /*0xffd802f9*/ - goto LABEL_14; /*0xffd802f9*/ - } - *v16 |= (v10 & 7) << v15; /*0xffd80311*/ - DebugPrint(0x80000000, (int)"ERROR: Internal fabric error detected!! "); - DebugPrint( /*0xffd80331*/ - 0x80000000, - (int)"PSF PID:0x%x, RSx/PortGroup:0x%x, Port:0x%x, Channel:0, error bits:0x%x\n", - *v2, - v3, - v14, - v10); - } -LABEL_14: - ++v3; /*0xffd8033f*/ - } - v15 += 3; /*0xffd8034c*/ - v2 += 12; /*0xffd80351*/ - --n10; /*0xffd80354*/ - } - while ( n10 ); - result = sub_FFD8CFB4(&unk_FFD97F6C, 4); /*0xffd8036a*/ - if ( !result ) /*0xffd80376*/ - { - result = GetReportStatusCodePpi(); /*0xffd80378*/ - if ( result ) /*0xffd8037f*/ - return (*(int (__cdecl **)(const char *, int, const char *))(result + 4))( /*0xffd80390*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", - 504, - "HobPtr != 0"); - } - return result; /*0xffd80396*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8040b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8040b.c deleted file mode 100644 index 15a2146..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8040b.c +++ /dev/null @@ -1,21 +0,0 @@ -int __thiscall sub_FFD8040B(_BYTE *this) -{ - int v3; // [esp+8h] [ebp-8h] BYREF - - sub_FFD8C578(-983041, 0); /*0xffd80425*/ - if ( (*(this + 3504) & 1) != 0 ) /*0xffd80434*/ - { - sub_FFD8C578(-1, 16); /*0xffd8047a*/ -LABEL_6: - MEMORY[0xFE0005D0] = 0x80000000; /*0xffd80481*/ - return sub_FFD8C578(-1, 1); /*0xffd80481*/ - } - if ( (*(this + 3504) & 2) != 0 ) /*0xffd8043d*/ - { - sub_FFD8C2A0(0xB8u, 4u, 4, &v3); /*0xffd8044a*/ - if ( (v3 & 0x600) != 0 ) /*0xffd8045d*/ - goto LABEL_6; /*0xffd8045d*/ - } - sub_FFD8C578(-17, 1); /*0xffd80468*/ - return sub_FFD8C578(-1, 1); /*0xffd8049b*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd804a1.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd804a1.c deleted file mode 100644 index 4d603ce..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd804a1.c +++ /dev/null @@ -1,23 +0,0 @@ -int __thiscall PchMiscInit(_BYTE *this) -{ - int v2; // eax - - if ( (unsigned __int8)sub_FFD8D59A() ) - { - DebugPrint(64, (int)"DWR: PchMiscInit() End\n"); - } - else - { - sub_FFD8BE68(); /*0xffd804c0*/ - v2 = sub_FFD8CBBA(0, 31, 2); /*0xffd804ce*/ - *(_DWORD *)(v2 + 172) &= ~0x100000u; /*0xffd804e5*/ - if ( *(this + 1) ) /*0xffd804f0*/ - sub_FFD8C5F6(255, 8); /*0xffd80506*/ - else - sub_FFD8C5F6(247, 0); /*0xffd804fd*/ - sub_FFD8C578(-1793, 8207); /*0xffd80521*/ - sub_FFD8C578(-1, 0x80000000); /*0xffd80535*/ - sub_FFD8C5F6(223, 0); /*0xffd80556*/ - } - return 0; /*0xffd8055d*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80563.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80563.c deleted file mode 100644 index 2b4752b..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80563.c +++ /dev/null @@ -1,20 +0,0 @@ -int __thiscall sub_FFD80563(int this) -{ - int v2; // ebx - unsigned int v3; // esi - - v2 = sub_FFD8CBBA(0, 31, 1); /*0xffd80574*/ - if ( (*(_DWORD *)(this + 2727) & 2) != 0 ) /*0xffd8057f*/ - sub_FFD8CCD3( /*0xffd805aa*/ - v2 + 112, - (*(_DWORD *)(this + 2727) >> 21) & 7 - | (unsigned __int16)(8 * ((32 * *(unsigned __int8 *)(this + 2728)) | HIWORD(*(_DWORD *)(this + 2727)) & 0x1F))); - v3 = *(_DWORD *)(this + 2731); /*0xffd805af*/ - if ( !v3 ) /*0xffd805b7*/ - v3 = -19922944; /*0xffd805b9*/ - *(_BYTE *)(v2 + 96) = *(_BYTE *)(v2 + 96) & 0xFC | (v3 >> 12) & 3 | 0x80; /*0xffd805d0*/ - if ( (*(_BYTE *)(this + 2727) & 1) != 0 ) /*0xffd805dd*/ - *(_DWORD *)(v3 + 16) |= 1u; /*0xffd805e5*/ - sub_FFD8CF04(v3, 0); /*0xffd805ed*/ - return sub_FFD8D005(v3, 0); /*0xffd805ff*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80603.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80603.c deleted file mode 100644 index 8cecebc..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80603.c +++ /dev/null @@ -1,33 +0,0 @@ -int __thiscall ProgramSvidSid(int this) -{ - unsigned __int8 n0x2C; // bl - int v3; // ecx - unsigned __int16 *v4; // edi - unsigned __int8 v6; // [esp+Fh] [ebp-1h] - - DebugPrint(64, (int)"ProgramSvidSid() Start\n"); /*0xffd80613*/ - sub_FFD8BE68(); /*0xffd8061a*/ - if ( (unsigned __int8)sub_FFD8D59A() ) - { - DebugPrint(64, (int)"DWR: ProgramSvidSid() End\n"); - } - else - { - n0x2C = 0; /*0xffd8062f*/ - if ( *(_WORD *)(this + 8) || *(_WORD *)(this + 10) ) /*0xffd80637*/ - { - do /*0xffd80693*/ - { - v3 = 3 * n0x2C; /*0xffd80640*/ - v6 = byte_FFD97FFE[v3]; /*0xffd80658*/ - v4 = (unsigned __int16 *)sub_FFD8CBBA(0, byte_FFD97FFC[v3], byte_FFD97FFD[v3]); /*0xffd80667*/ - if ( (unsigned __int16)sub_FFD8CCA5(v4) == 0x8086 ) /*0xffd80678*/ - *(_DWORD *)((char *)v4 + v6) = *(_DWORD *)(this + 8); /*0xffd8068b*/ - ++n0x2C; /*0xffd8068e*/ - } - while ( n0x2C < 0x2Cu ); /*0xffd80693*/ - } - DebugPrint(64, (int)"ProgramSvidSid() End\n"); /*0xffd8069c*/ - } - return 0; /*0xffd806a3*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd806ac.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd806ac.c deleted file mode 100644 index e1e0e45..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd806ac.c +++ /dev/null @@ -1,52 +0,0 @@ -int __thiscall sub_FFD806AC(char *this) -{ - char *this_1; // ebx - unsigned int v2; // ebp - int v3; // eax - unsigned int n3; // esi - unsigned int v5; // edi - _DWORD *v6; // ebx - int v7; // edx - int v10; // [esp+18h] [ebp-Ch] - int v11; // [esp+1Ch] [ebp-8h] - int v12; // [esp+20h] [ebp-4h] - - v10 = 0; /*0xffd806b9*/ - this_1 = this; /*0xffd806ba*/ - v11 = 0; /*0xffd806c0*/ - v12 = 0; /*0xffd806c1*/ - v2 = (unsigned __int8)sub_FFD8BFFD(); /*0xffd806c7*/ - if ( (v2 & 0xFFFFFFF8) > 0x18 ) /*0xffd806d2*/ - { - v3 = GetReportStatusCodePpi(); /*0xffd806d4*/ - if ( v3 ) /*0xffd806db*/ - (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd806ec*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", - 958, - "(MaxPciePortNum / 8) <= 3"); - } - n3 = 0; /*0xffd806f2*/ - v5 = 0; /*0xffd806f4*/ - if ( v2 ) /*0xffd806f8*/ - { - v6 = this_1 + 28; /*0xffd806fa*/ - do /*0xffd8072a*/ - { - if ( (*v6 & 0x800) != 0 ) /*0xffd80705*/ - v7 = (unsigned __int16)*v6 >> 12; /*0xffd8070a*/ - else - v7 = 0; /*0xffd8070f*/ - v6 += 25; /*0xffd8071e*/ - *(&v10 + (v5 >> 3)) |= v7 << (4 * (v5 & 7)); /*0xffd80723*/ - ++v5; /*0xffd80727*/ - } - while ( v5 < v2 ); /*0xffd8072a*/ - this_1 = this; /*0xffd8072c*/ - } - v12 |= (*(_DWORD *)(this_1 + 2755) & 0xFFFFFF80) << 21; /*0xffd80747*/ - DebugPrint(64, (int)"DRCRM: 0x%08x 0x%08x 0x%08x\n", v10, v11, v12); - do /*0xffd80779*/ - sub_FFD8C497(4, *(&v10 + n3++)); /*0xffd8076e*/ - while ( n3 < 3 ); /*0xffd80779*/ - return sub_FFD8C578(-1, -2147254272); /*0xffd8078e*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80796.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80796.c deleted file mode 100644 index 45b2eca..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80796.c +++ /dev/null @@ -1,42 +0,0 @@ -// positive sp value has been detected, the output may be wrong! -int __thiscall sub_FFD80796(int this) -{ - int v2; // ebx - int v3; // esi - int v4; // ebp - int v5; // eax - int v6; // eax - int v7; // eax - int v8; // eax - int v9; // eax - int v10; // eax - int v11; // eax - int v12; // eax - bool v13; // zf - char v14; // bl - _BYTE *v15; // eax - int n3; // ecx - int v17; // edx - int v18; // eax - int v19; // edx - int v20; // eax - int v21; // eax - int v22; // eax - int v23; // eax - int v24; // eax - int v25; // eax - int v26; // eax - int v27; // eax - int v28; // ecx - _DWORD v30[3]; // [esp+4h] [ebp-14h] BYREF - int v31; // [esp+10h] [ebp-8h] BYREF - - DebugPrint(64, (int)"PchOnPolicyInstalled() - Start\ -"); /*0xffd807ab*/ - v2 = sub_FFD8CBBA(0, 31, 0); /*0xffd807c1*/ - v3 = sub_FFD8CBBA(0, 31, 2); /*0xffd807d5*/ - v4 = sub_FFD8CBBA(0, 31, 5); /*0xffd807e1*/ - v5 = sub_FFD8C632(*(_WORD *)(this + 2)); /*0xffd807e3*/ - if ( v5 < 0 ) /*0xffd807ea*/ - { - DebugPrint(0x8000... [6904 chars total] diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80ba6.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80ba6.c deleted file mode 100644 index 0b18d21..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd80ba6.c +++ /dev/null @@ -1,33 +0,0 @@ -int __thiscall PchEarlyDisabledDeviceHandling(int *this) -{ - int v2; // esi - int v3; // edi - int v4; // ebx - int v5; // ebp - int n2_1; // ebx - int v7; // ebx - __int16 v8; // si - int v9; // ebx - int v10; // eax - int v11; // eax - int v12; // eax - int v14; // [esp+10h] [ebp-54h] BYREF - int v15; // [esp+14h] [ebp-50h] BYREF - int v16; // [esp+18h] [ebp-4Ch] BYREF - int n2; // [esp+1Ch] [ebp-48h] - int v18; // [esp+20h] [ebp-44h] BYREF - int v19; // [esp+24h] [ebp-40h] BYREF - int v20; // [esp+28h] [ebp-3Ch] BYREF - int v21; // [esp+2Ch] [ebp-38h] BYREF - int v22; // [esp+30h] [ebp-34h] - int v23; // [esp+34h] [ebp-30h] BYREF - int n704654080; // [esp+38h] [ebp-2Ch] - int n671099136; // [esp+3Ch] [ebp-28h] - int n637544192; // [esp+40h] [ebp-24h] - int n603989248; // [esp+44h] [ebp-20h] - int n570434304; // [esp+48h] [ebp-1Ch] - int n536879360; // [esp+4Ch] [ebp-18h] - int n637544192_1; // [esp+50h] [ebp-14h] - int n603989248_1; // [esp+54h] [ebp-10h] - int n570434304_1; // [esp+58h] [ebp-Ch] - i... [12460 chars total] diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd813d1.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd813d1.c deleted file mode 100644 index cfda44b..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd813d1.c +++ /dev/null @@ -1,55 +0,0 @@ -int __thiscall PchEarlyInit(int *this) -{ - int v2; // eax - int v3; // edi - unsigned __int8 v4; // al - unsigned __int8 v5; // al - unsigned __int8 v6; // al - unsigned __int8 v7; // al - - DebugPrint(64, (int)"PchEarlyInit() - Start\ -"); /*0xffd813df*/ - sub_FFD82723(); /*0xffd813e4*/ - sub_FFD81769(); /*0xffd813e9*/ - sub_FFD8C497(2, 1); /*0xffd813fc*/ - sub_FFD8C5F6(255, 3); /*0xffd81414*/ - sub_FFD8C578(-2, 0); /*0xffd81425*/ - v2 = sub_FFD8CBBA(0, 31, 1); /*0xffd81431*/ - *(_DWORD *)(v2 + 128) = 0; /*0xffd8143b*/ - *(_DWORD *)(v2 + 132) = 0; /*0xffd81441*/ - *(_DWORD *)(v2 + 136) = 0; /*0xffd81447*/ - *(_DWORD *)(v2 + 140) = 0; /*0xffd8144d*/ - *(_DWORD *)(v2 + 144) = 0; /*0xffd81453*/ - *(_DWORD *)(v2 + 148) = 61440; /*0xffd81459*/ - *(_DWORD *)(v2 + 152) = 16; /*0xffd81463*/ - *(_DWORD *)(v2 + 156) = 0; /*0xffd8146d*/ - *(_BYTE *)(v2 + 244) |= 1u; /*0xffd8147d*/ - v3 = sub_FFD8CBBA(0, 31, 2); /*0xffd8148d*/ - if ( (*(_BYTE *)(v3 + 164) & 4) != 0 ) /*0xffd81499*/ - { - __outbyte(0x74u, 0xAu); /*0xffd814a3*/ - v4 = __inbyte(0x74u); /*0xffd814a4*/ - __outbyte(0x75u, v4 & 0x8F | 0x60); /*0xffd814af*/ - __outbyte(0x74u, 0xBu); /*0xffd814b5*/ - v5 = __inbyte(0x75u); /*0xffd814b9*/ - __outbyte(0x75u, v5 | 0x80); /*0xffd814bc*/ - __outbyte(0x74u, 0xAu); /*0xffd814c2*/ - v6 = __inbyte(0x75u); /*0xffd814c6*/ - __outbyte(0x75u, v6 & 0x8F | 0x20); /*0xffd814cb*/ - __outbyte(0x74u, 0xBu); /*0xffd814d1*/ - v7 = __inbyte(0x75u); /*0xffd814d5*/ - __outbyte(0x75u, v7 & 0x7F); /*0xffd814d8*/ - } - *(this + 4) = 16; /*0xffd814d9*/ - *(_DWORD *)(v3 + 172) &= ~0x100000u; /*0xffd814ed*/ - *(this + 53) = 0; /*0xffd814f3*/ - *(this + 61) = 0; /*0xffd814f9*/ - PchEarlyDisabledDeviceHandling(this); /*0xffd814ff*/ - sub_FFD905CC(); /*0xffd81504*/ - sub_FFD8C497(4, 0); /*0xffd81518*/ - sub_FFD8C497(4, 18875648); /*0xffd8152c*/ - sub_FFD8C497(4, 0); /*0xffd81539*/ - sub_FFD8C497(4, 18875648); /*0xffd81545*/ - return DebugPrint(64, (int)"PchEarlyInit() - End\ -"); /*0xffd81559*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8155f.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8155f.c deleted file mode 100644 index 54720a2..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8155f.c +++ /dev/null @@ -1,77 +0,0 @@ -int PchInitPreMem() -{ - int v0; // eax - int v1; // esi - int v2; // eax - int v3; // eax - int v4; // esi - int v5; // eax - int *v7; // [esp+10h] [ebp-4h] BYREF - - DebugPrint(64, (int)"PchInitPreMem() - Start\ -"); /*0xffd8156b*/ - if ( !(unsigned __int8)sub_FFD8BDC8() ) /*0xffd81572*/ - { - DebugPrint(0x80000000, (int)"PCH SKU is not supported due to no proper PCH LPC found!\ -"); /*0xffd8158b*/ - v0 = GetReportStatusCodePpi(); /*0xffd81592*/ - if ( v0 ) /*0xffd81599*/ - (*(void (__cdecl **)(const char *, int, const char *))(v0 + 4))( /*0xffd815a6*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", - 1948, - "((BOOLEAN)(0==1))"); - } - v1 = sub_FFD8CBBA(0, 31, 1); /*0xffd815b8*/ - if ( (*(_DWORD *)(v1 + 16) & 0xFF000000) == 0 ) /*0xffd815c4*/ - { - DebugPrint(64, (int)"SBREG should be programmed before here\ -"); /*0xffd815cd*/ - *(_DWORD *)(v1 + 16) = -50331648; /*0xffd815d2*/ - *(_BYTE *)(v1 + 4) |= 2u; /*0xffd815e0*/ - } - sub_FFD8C632(0x500u); /*0xffd815e8*/ - sub_FFD8C80A(); /*0xffd815ed*/ - sub_FFD8C99B(); /*0xffd815f2*/ - sub_FFD8C909((unsigned int *)&v7); /*0xffd815fb*/ - DebugPrint(64, (int)"PCH PWRM Base needs to be programmed before here\ -"); /*0xffd81607*/ - if ( !v7 ) /*0xffd81613*/ - { - v2 = GetReportStatusCodePpi(); /*0xffd81615*/ - if ( v2 ) /*0xffd8161c*/ - (*(void (__cdecl **)(const char *, int, const char *))(v2 + 4))( /*0xffd81629*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", - 1993, - "PchPwrmBase != 0"); - } - if ( (unsigned __int8)sub_FFD8D59A() ) - { - DebugPrint(0x80000000, (int)"DWR: DWR detected - install PPI\ -"); - if ( InstallPpi(&unk_FFD98084) >= 0 ) - DebugPrint(0x80000000, (int)"DWR: DWR PPI has been installed\ -"); - else - DebugPrint(0x80000000, (int)"ERROR: Can't install DWR PPI\ -"); - } - PchFabricErrorCheck(); /*0xffd81667*/ - PchEarlyInit(v7); /*0xffd81670*/ - v3 = InstallPpi(&unk_FFD980AC); /*0xffd8167a*/ - v4 = v3; /*0xffd8167f*/ - if ( v3 < 0 ) /*0xffd81683*/ - { - DebugPrint(0x80000000, (int)"\ -ASSERT_EFI_ERROR (Status = %r)\ -", v3); /*0xffd8168c*/ - v5 = GetReportStatusCodePpi(); /*0xffd81694*/ - if ( v5 ) /*0xffd8169b*/ - (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd816a8*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c", - 2007, - "!EFI_ERROR (Status)"); - } - DebugPrint(64, (int)"PchInitPreMem() - End\ -"); /*0xffd816b5*/ - return v4; /*0xffd816bc*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd816c4.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd816c4.c deleted file mode 100644 index b42f29e..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd816c4.c +++ /dev/null @@ -1,31 +0,0 @@ -int PrintPchInfo() -{ - int v0; // esi - int v1; // ecx - __int16 v2; // ax - double v4; // [esp-4h] [ebp-34h] - double v5; // [esp-4h] [ebp-34h] - double v6; // [esp-4h] [ebp-34h] - _BYTE v7[32]; // [esp+Ch] [ebp-24h] BYREF - int p_n32; // [esp+2Ch] [ebp-4h] BYREF - - v0 = sub_FFD8CBBA(0, 31, 0); /*0xffd816db*/ - p_n32 = 32; /*0xffd816e3*/ - sub_FFD8BE68(); /*0xffd816e6*/ - sub_FFD8C111(&p_n32); /*0xffd816f1*/ - LODWORD(v4) = v7; /*0xffd816fa*/ - DebugPrint(64, (int)"PCH Series : %a\ -", v4); - p_n32 = 32; /*0xffd8170a*/ - sub_FFD8BB3A(v1); /*0xffd81712*/ - sub_FFD8C06D(&p_n32); /*0xffd8171d*/ - LODWORD(v5) = v7; /*0xffd81726*/ - DebugPrint(64, (int)"PCH Stepping : %a\ -", v5); - p_n32 = 32; /*0xffd81736*/ - v2 = sub_FFD8CCA5((unsigned __int16 *)(v0 + 2)); /*0xffd81740*/ - sub_FFD8C1B5(v2, v7, &p_n32); /*0xffd8174a*/ - LODWORD(v6) = v7; /*0xffd81753*/ - return DebugPrint(64, (int)"PCH SKU : %a\ -", v6); -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd821b8.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd821b8.c deleted file mode 100644 index 2a2d4a3..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd821b8.c +++ /dev/null @@ -1,124 +0,0 @@ -int __fastcall sub_FFD821B8(int a1, char a2, int a3, unsigned __int8 n2) -{ - unsigned __int8 n2_1; // bh - char v5; // bl - int v7; // edi - int v8; // eax - __int16 v9; // si - int v10; // edx - unsigned __int8 v11; // bl - char v12; // al - char v13; // al - char n2_2; // [esp+11h] [ebp-3h] BYREF - char v16; // [esp+12h] [ebp-2h] - char v17; // [esp+13h] [ebp-1h] BYREF - - n2_1 = n2; /*0xffd821ba*/ - v5 = 0; /*0xffd821be*/ - v16 = a2; /*0xffd821c0*/ - if ( n2 == 1 ) - { - DebugPrint(64, (int)"EarlyConfigurePchHSata() - First Controller - Start\ -"); /*0xffd821d5*/ - v7 = sub_FFD8CBBA(0, 23, 0); /*0xffd821e9*/ - sub_FFD8C019(); /*0xffd821eb*/ - } - else - { - if ( n2 != 2 ) - { - DebugPrint(0x80000000, (int)"Error: Invalid SATA controller!\ -"); - return -2147483646; /*0xffd8244e*/ - } - DebugPrint(64, (int)"EarlyConfigurePchHSata() - Second Controller - Start\ -"); /*0xffd82202*/ - v7 = sub_FFD8CBBA(0, 17, 5); /*0xffd82216*/ - } - v8 = sub_FFD8CBBA(0, 31, 0); /*0xffd8221f*/ - v9 = sub_FFD8CCA5((unsigned __int16 *)(v8 + 2)); /*0xffd8222d*/ - if ( !(unsigned __int8)sub_FFD8D58A() ) /*0xffd82230*/ - { - if ( n2_1 == 1 ) /*0xffd8223c*/ - v5 = sub_FFD81814(); /*0xffd82243*/ - if ( n2_1 != 2 ) /*0xffd82248*/ - goto LABEL_14; /*0xffd82248*/ - v11 = 0; /*0xffd8224a*/ - while ( 1 ) /*0xffd82253*/ - { - sub_FFD8E7BA(v11, &n2); /*0xffd82253*/ - sub_FFD8E062(n2, &v17, &n2_2); /*0xffd82266*/ - if ( n2_2 == 2 ) /*0xffd82271*/ - break; /*0xffd82271*/ - if ( ++v11 >= 6u ) /*0xffd82278*/ - { - v5 = 0; /*0xffd8227a*/ - goto LABEL_14; /*0xffd8227c*/ - } - } - } - v5 = 1; /*0xffd8227e*/ -LABEL_14: - if ( (*(_BYTE *)a1 & 1) != 0 && (v5 || *(_DWORD *)(a1 + 4)) ) /*0xffd8228e*/ - { - *(_BYTE *)(v7 + 160) = -104; /*0xffd82298*/ - *(_DWORD *)(v7 + 164) = *(_DWORD *)(v7 + 164) & 0xFFFFFE00 | 0x183; /*0xffd822ad*/ - *(_BYTE *)(v7 + 160) = -104; /*0xffd822b3*/ - *(_DWORD *)(v7 + 164) |= 0x8000u; /*0xffd822c5*/ - *(_BYTE *)(v7 + 160) = -92; /*0xffd822cb*/ - *(_DWORD *)(v7 + 164) |= 0x40u; /*0xffd822db*/ - if ( v9 == -24254 /*0xffd8237d*/ - || v9 == -24253 - || v9 == -24252 - || v9 == -24251 - || v9 == -24250 - || v9 == -24249 - || v9 == -24248 - || v9 == -24256 - || v9 == -24255 - || v9 == -24243 - || v9 == -24242 - || v9 == -24241 - || v9 == -25280 - || v9 == -25279 - || v9 == -25278 - || v9 == -25277 - || v9 == -25274 - || v9 == -25272 ) - { - *(_BYTE *)(v7 + 160) = -100; /*0xffd8237f*/ - *(_DWORD *)(v7 + 164) |= 0x400000u; /*0xffd82391*/ - } - *(_BYTE *)(v7 + 160) = -100; /*0xffd82397*/ - *(_DWORD *)(v7 + 164) = *(_DWORD *)(v7 + 164) & 0xDF63E013 | 0x209C0224; /*0xffd823ae*/ - if ( n2_1 == 1 ) /*0xffd823b7*/ - { - *(_BYTE *)(v7 + 160) = -100; /*0xffd823b9*/ - *(_DWORD *)(v7 + 164) |= 0x40000000u; /*0xffd823cb*/ - } - v12 = *(_BYTE *)(v7 + 156) | 0x20; /*0xffd823d7*/ - if ( *(_DWORD *)(a1 + 4) == 1 ) /*0xffd823dd*/ - { - if ( (*(_BYTE *)(a1 + 76) & 1) != 0 ) /*0xffd823e5*/ - v12 = *(_BYTE *)(v7 + 156) & 0x1F | 0xA0; /*0xffd823e7*/ - else - v12 = *(_BYTE *)(v7 + 156) & 0x1F | 0x60; /*0xffd823eb*/ - } - if ( v16 ) /*0xffd823f2*/ - v13 = v12 & 0xE1 | 6; /*0xffd823f6*/ - else - v13 = v12 & 0xE8 | 0x10; /*0xffd823fc*/ - *(_BYTE *)(v7 + 156) = v13 & 0xF8 | 6; /*0xffd8240d*/ - sub_FFD8CC4F(v7 + 148, 255); /*0xffd82413*/ - sub_FFD7FA46(2u); /*0xffd8241b*/ - DebugPrint(64, (int)"EarlyConfigurePchHSata() End\ -"); /*0xffd82427*/ - return 0; /*0xffd8242c*/ - } - else - { - LOBYTE(v10) = n2_1; /*0xffd82434*/ - sub_FFD81FF5(a3, v10); /*0xffd82436*/ - return 0; /*0xffd8243b*/ - } -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8245b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8245b.c deleted file mode 100644 index 4bb3bf0..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8245b.c +++ /dev/null @@ -1,81 +0,0 @@ -int __cdecl sub_FFD8245B(int n2) -{ - int v1; // ecx - int v2; // ebx - int v3; // edi - int v4; // esi - unsigned int n6; // ebp - int v6; // eax - unsigned __int8 n6_1; // cl - int v8; // eax - - v2 = 0; /*0xffd82460*/ - v3 = v1; /*0xffd8246c*/ - if ( (_BYTE)n2 == 1 ) /*0xffd8246e*/ - { - DebugPrint(64, (int)"ConfigurePchHSata() - First Controller - Start\ -"); /*0xffd82477*/ - v4 = sub_FFD8CBBA(0, 23, 0); /*0xffd8248a*/ - n6 = (unsigned __int8)sub_FFD8C019(); /*0xffd82491*/ - } - else - { - DebugPrint(64, (int)"ConfigurePchHSata() - Second Controller - Start\ -"); /*0xffd8249d*/ - v4 = sub_FFD8CBBA(0, 17, 5); /*0xffd824b1*/ - n6 = 6; /*0xffd824b5*/ - } - v6 = sub_FFD8CBBA(0, 31, 0); /*0xffd824bc*/ - sub_FFD8CCA5((unsigned __int16 *)(v6 + 2)); /*0xffd824c5*/ - sub_FFD81B92(n2); /*0xffd824d4*/ - if ( (*(_BYTE *)v3 & 8) != 0 ) /*0xffd824dd*/ - { - n6_1 = 0; /*0xffd824e3*/ - if ( n6 ) /*0xffd824e7*/ - { - v8 = 0; /*0xffd824e9*/ - do /*0xffd82506*/ - { - if ( (*(_BYTE *)(v3 + 8 * v8 + 12) & 1) != 0 && (*(_DWORD *)(v3 + 8 * v8 + 12) & 0x40000A) != 0 ) /*0xffd824fa*/ - v2 |= 1 << v8; /*0xffd824fc*/ - v8 = ++n6_1; /*0xffd82501*/ - } - while ( n6_1 < n6 ); /*0xffd82506*/ - } - *(_BYTE *)(v4 + 160) = -112; /*0xffd82508*/ - *(_DWORD *)(v4 + 164) |= (unsigned __int8)~(_BYTE)v2; /*0xffd82521*/ - *(_BYTE *)(v4 + 160) = 0x80; /*0xffd8252c*/ - *(_DWORD *)(v4 + 164) |= v2 << 16; /*0xffd8253b*/ - *(_BYTE *)(v4 + 160) = -116; /*0xffd82541*/ - *(_DWORD *)(v4 + 164) |= 0xFF00FFu; /*0xffd82550*/ - *(_BYTE *)(v4 + 160) = -96; /*0xffd82556*/ - *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xFF037FFF | 0x588000; /*0xffd8256d*/ - *(_BYTE *)(v4 + 160) = -124; /*0xffd82573*/ - *(_DWORD *)(v4 + 164) |= 0xFF00FFu; /*0xffd82582*/ - *(_BYTE *)(v4 + 160) = -92; /*0xffd82588*/ - *(_DWORD *)(v4 + 164) |= 0x4000u; /*0xffd8259a*/ - *(_BYTE *)(v4 + 160) = -52; /*0xffd825a0*/ - *(_DWORD *)(v4 + 164) = -2009296895; /*0xffd825a7*/ - *(_BYTE *)(v4 + 160) = -48; /*0xffd825b1*/ - *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xFFFF0000 | 0x8828; /*0xffd825c8*/ - *(_BYTE *)(v4 + 160) = -56; /*0xffd825ce*/ - *(_DWORD *)(v4 + 164) |= 8u; /*0xffd825de*/ - *(_BYTE *)(v4 + 160) = -56; /*0xffd825e4*/ - *(_DWORD *)(v4 + 164) |= 1u; /*0xffd825f4*/ - *(_BYTE *)(v4 + 160) = -56; /*0xffd825fa*/ - *(_DWORD *)(v4 + 164) |= 2u; /*0xffd8260a*/ - } - *(_BYTE *)(v4 + 160) = -88; /*0xffd82610*/ - *(_DWORD *)(v4 + 164) &= 0xFFF0FFFF; /*0xffd82622*/ - *(_BYTE *)(v4 + 160) = -44; /*0xffd82628*/ - *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xC0C0E0E0 | 0x2C1E1108; /*0xffd8263f*/ - *(_BYTE *)(v4 + 158) &= ~1u; /*0xffd8264d*/ - if ( *(_DWORD *)(v3 + 4) == 1 ) /*0xffd82657*/ - *(_BYTE *)(v4 + 158) |= 1u; /*0xffd82661*/ - if ( (_BYTE)n2 == 1 ) /*0xffd8266c*/ - return DebugPrint(64, (int)"ConfigurePchHSata() - First Controller - End\ -"); /*0xffd82673*/ - else - return DebugPrint(64, (int)"ConfigurePchHSata() - Second Controller - End\ -"); /*0xffd8267c*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd826ae.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd826ae.c deleted file mode 100644 index d72db01..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd826ae.c +++ /dev/null @@ -1,16 +0,0 @@ -bool __fastcall sub_FFD826AE(int a1, int a2, char a3) -{ - int v5; // eax - int v6; // ecx - int n17; // [esp+Ch] [ebp-10h] BYREF - int v9; // [esp+10h] [ebp-Ch] - int v10; // [esp+14h] [ebp-8h] BYREF - char n2; // [esp+1Bh] [ebp-1h] - - v5 = sub_FFD8AD54(); /*0xffd826bb*/ - (*(void (__cdecl **)(int, int *))(*(_DWORD *)v5 + 40))(v5, &n17); /*0xffd826c7*/ - n2 = *(_BYTE *)(100 * a2 + a1 + 5); /*0xffd826d6*/ - sub_FFD8D75C(&v10); /*0xffd826dd*/ - v6 = sub_FFD8CBBA(0, v9, v10); /*0xffd826f3*/ - return (!n2 || n2 == 2) && n17 == 17 && (*(_BYTE *)(v6 + 76) & 0xFu) >= 3 && a3 == 1; /*0xffd8271c*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82c71.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82c71.c deleted file mode 100644 index 45876f3..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82c71.c +++ /dev/null @@ -1,36 +0,0 @@ -int PciERWORegInit() -{ - unsigned int i; // edi - int v1; // ebx - unsigned __int16 v2; // ax - char v4; // [esp+10h] [ebp-8h] - int v5; // [esp+14h] [ebp-4h] BYREF - - DebugPrint(64, (int)"PciERWORegInit() Start\ -"); /*0xffd82c81*/ - if ( (unsigned __int8)sub_FFD8D59A() ) - { - DebugPrint(64, (int)"DWR: PciERWORegInit() End\ -"); - } - else - { - sub_FFD8BE68(); /*0xffd82c9b*/ - for ( i = 0; i < (unsigned __int8)sub_FFD8BFFD(); ++i ) /*0xffd82ca2*/ - { - sub_FFD8D75C(&v5); /*0xffd82cb4*/ - v1 = sub_FFD8CBBA(0, v4, v5); /*0xffd82cc8*/ - if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v1) != 0xFFFF ) /*0xffd82cd9*/ - { - v2 = sub_FFD8CCA5((unsigned __int16 *)(v1 + 68)); /*0xffd82cde*/ - sub_FFD8CCD3(v1 + 68, v2); /*0xffd82ce9*/ - *(_DWORD *)(v1 + 76) = *(_DWORD *)(v1 + 76); /*0xffd82cf1*/ - *(_DWORD *)(v1 + 84) = *(_DWORD *)(v1 + 84); /*0xffd82cf7*/ - *(_DWORD *)(v1 + 216) |= 0x800000u; /*0xffd82d05*/ - } - } - DebugPrint(64, (int)"PciERWORegInit() End\ -"); /*0xffd82d1f*/ - } - return 0; /*0xffd82d26*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82d2f.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82d2f.c deleted file mode 100644 index 88fd6ad..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82d2f.c +++ /dev/null @@ -1,132 +0,0 @@ -int __fastcall PchPcieRpSpeedChange(int a1, int a2) -{ - unsigned __int8 i_1; // al - unsigned int i_2; // esi - unsigned int i; // ebx - int v5; // eax - int v6; // edi - unsigned int j; // esi - int v8; // ebp - unsigned int n0x96; // ebp - unsigned int i_3; // esi - unsigned int k; // ebp - int v12; // esi - unsigned int n0x96_2; // ebp - unsigned int i_4; // esi - unsigned int n0x96_1; // [esp+14h] [ebp-60h] BYREF - unsigned int v17; // [esp+18h] [ebp-5Ch] - int v18; // [esp+1Ch] [ebp-58h] - int v19; // [esp+20h] [ebp-54h] - _DWORD v20[20]; // [esp+24h] [ebp-50h] - - v18 = a2; /*0xffd82d36*/ - v19 = a1; /*0xffd82d3a*/ - if ( (unsigned __int8)sub_FFD8D59A() ) - { - DebugPrint(64, (int)"DWR: PchPcieRpSpeedChange() End\ -"); - } - else - { - i_1 = sub_FFD8BFFD(); /*0xffd82d5a*/ - i_2 = 0; /*0xffd82d5f*/ - for ( i = i_1; i_2 < i; ++i_2 ) /*0xffd82d66*/ - { - v20[i_2] = 0; /*0xffd82d68*/ - if ( sub_FFD8D75C(&n0x96_1) >= 0 ) /*0xffd82d80*/ - { - v20[i_2] = sub_FFD8CBBA(0, v17, n0x96_1); /*0xffd82db2*/ - } - else - { - v5 = GetReportStatusCodePpi(); /*0xffd82d82*/ - if ( v5 ) /*0xffd82d89*/ - (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd82d9a*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", - 822, - "((BOOLEAN)(0==1))"); - } - } - v6 = 0; /*0xffd82dbb*/ - for ( j = 0; j < i; ++j ) /*0xffd82dc1*/ - { - v8 = v20[j]; /*0xffd82dc3*/ - if ( v8 ) /*0xffd82dc9*/ - { - if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v20[j]) != 0xFFFF ) /*0xffd82dda*/ - { - v17 = *(_DWORD *)(v8 + 76) & 0xF; /*0xffd82de2*/ - if ( v17 > 1 && !sub_FFD826AE(v19 + 28, j, *(_BYTE *)(j + v18)) ) /*0xffd82dfd*/ - { - sub_FFD8CC85(v17); /*0xffd82e13*/ - if ( (sub_FFD8CCA5((unsigned __int16 *)(v8 + 90)) & 0x40) != 0 ) /*0xffd82e23*/ - { - sub_FFD8CC4F(v8 + 80, 32); /*0xffd82e2b*/ - v6 |= 1 << j; /*0xffd82e30*/ - } - } - } - } - } - n0x96 = 0; /*0xffd82e38*/ - n0x96_1 = 0; /*0xffd82e3a*/ - if ( v6 ) /*0xffd82e40*/ - { - do /*0xffd82e90*/ - { - if ( n0x96 >= 0x96 ) /*0xffd82e4c*/ - break; /*0xffd82e4c*/ - sub_FFD7FA46(0x64u); /*0xffd82e51*/ - i_3 = 0; /*0xffd82e56*/ - if ( i ) /*0xffd82e5a*/ - { - do /*0xffd82e83*/ - { - if ( ((1 << i_3) & v6) != 0 && (sub_FFD8CCA5((unsigned __int16 *)(v20[i_3] + 82)) & 0x2000) != 0 ) /*0xffd82e7b*/ - v6 &= ~(1 << i_3); /*0xffd82e7d*/ - ++i_3; /*0xffd82e80*/ - } - while ( i_3 < i ); /*0xffd82e83*/ - n0x96 = n0x96_1; /*0xffd82e85*/ - } - n0x96_1 = ++n0x96; /*0xffd82e8a*/ - } - while ( v6 ); /*0xffd82e90*/ - if ( v6 ) /*0xffd82e94*/ - { - for ( k = 0; k < i; ++k ) /*0xffd82e9e*/ - { - if ( ((1 << k) & v6) != 0 ) /*0xffd82ea9*/ - { - v12 = v20[k]; /*0xffd82eab*/ - sub_FFD8CC85(1); /*0xffd82eb9*/ - sub_FFD8CC4F(v12 + 80, 32); /*0xffd82ec5*/ - } - } - n0x96_2 = 0; /*0xffd82ecf*/ - n0x96_1 = 0; /*0xffd82ed1*/ - do /*0xffd82f1f*/ - { - if ( n0x96_2 >= 0x96 ) /*0xffd82edb*/ - break; /*0xffd82edb*/ - sub_FFD7FA46(0x64u); /*0xffd82ee0*/ - i_4 = 0; /*0xffd82ee5*/ - if ( i ) /*0xffd82ee9*/ - { - do /*0xffd82f12*/ - { - if ( ((1 << i_4) & v6) != 0 && (sub_FFD8CCA5((unsigned __int16 *)(v20[i_4] + 82)) & 0x2000) != 0 ) /*0xffd82f0a*/ - v6 &= ~(1 << i_4); /*0xffd82f0c*/ - ++i_4; /*0xffd82f0f*/ - } - while ( i_4 < i ); /*0xffd82f12*/ - n0x96_2 = n0x96_1; /*0xffd82f14*/ - } - n0x96_1 = ++n0x96_2; /*0xffd82f19*/ - } - while ( v6 ); /*0xffd82f1f*/ - } - } - } - return 0; /*0xffd82f21*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82f2b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82f2b.c deleted file mode 100644 index 73b29a9..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd82f2b.c +++ /dev/null @@ -1,40 +0,0 @@ -bool __fastcall GetPciEndpointInfo(int a1, unsigned __int8 a2, unsigned __int16 *a3) -{ - char v5; // bl - unsigned int v7; // ebp - unsigned __int8 v8; // al - unsigned __int16 *v9; // ecx - unsigned int *v11; // [esp+1Ch] [ebp+4h] - - v5 = 0; /*0xffd82f40*/ - *(_DWORD *)(a3 + 1) = 0xFFFF; /*0xffd82f42*/ - *a3 = -1; /*0xffd82f49*/ - if ( (sub_FFD8CCA5((unsigned __int16 *)(a1 + 90)) & 0x40) == 0 ) /*0xffd82f56*/ - return 0; /*0xffd82f58*/ - *(_DWORD *)(a1 + 24) = *(_DWORD *)(a1 + 24) & 0xFF0000FF | ((a2 | (a2 << 8)) << 8); /*0xffd82f7c*/ - v11 = (unsigned int *)sub_FFD8CBBA(a2, 0, 0); /*0xffd82f8b*/ - sub_FFD8CCD3(v11, 0); /*0xffd82f8f*/ - v7 = *v11; /*0xffd82f94*/ - *(_DWORD *)a3 = *v11; /*0xffd82f9c*/ - if ( v7 != -1 ) /*0xffd82fa6*/ - { - v8 = sub_FFD90A71(0, HIWORD(v7)); /*0xffd82fb0*/ - if ( v8 ) /*0xffd82fb9*/ - { - v9 = (unsigned __int16 *)((char *)v11 + v8 + 12); /*0xffd82fc5*/ - v5 = *(_BYTE *)v9 & 0xF; /*0xffd82fc9*/ - *((_BYTE *)a3 + 5) = ((unsigned __int16)sub_FFD8CCA5(v9) >> 4) & 0x3F; /*0xffd82fd7*/ - } - *((_BYTE *)a3 + 4) = v5; /*0xffd82fda*/ - } - *(_DWORD *)(a1 + 24) &= 0xFF0000FF; /*0xffd82fe5*/ - DebugPrint( - 64, - (int)"VID: %04X DID: %04X MLS: %d MLW: %d\ -", - *a3, - a3[1], - *((unsigned __int8 *)a3 + 4), - *((unsigned __int8 *)a3 + 5)); - return v7 != -1; /*0xffd83012*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83019.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83019.c deleted file mode 100644 index a1a95a8..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83019.c +++ /dev/null @@ -1,82 +0,0 @@ -int DirtyWarmResetExecute() -{ - int result; // eax - int v1; // eax - int v2; // esi - int v3; // eax - int *v4; // eax - int *v5; // esi - int v6; // ecx - int v7; // eax - int v8; // esi - int v9; // eax - _DWORD v10[2]; // [esp+0h] [ebp-10h] BYREF - char v11[8]; // [esp+8h] [ebp-8h] BYREF - - result = sub_FFD8D59A(); /*0xffd8301c*/ - if ( (_BYTE)result ) - { - DebugPrint(0x80000000, (int)"\ -DirtyWarmResetExecute() - Start\ -"); /*0xffd83037*/ - v1 = sub_FFD85F37(); /*0xffd8303c*/ - v2 = sub_FFD8D921(v1); /*0xffd83048*/ - if ( GetPciEndpointInfo(v2, 2u, (unsigned __int16 *)v11) ) - { - *(_DWORD *)(v2 + 24) = *(_DWORD *)(v2 + 24) & 0xFF0000FF | 0x20200; /*0xffd83083*/ - v3 = sub_FFD8CBBA(2u, 0, 0); /*0xffd83086*/ - sub_FFD8CCD3(v3, 0); /*0xffd83090*/ - } - else - { - DebugPrint(0x80000000, (int)"ERROR: DirtyWarmReset: can't get end point device available...\ -"); - } - v4 = (int *)sub_FFD8CC10(); /*0xffd83099*/ - v5 = v4; /*0xffd8309e*/ - v6 = *v4; /*0xffd830a8*/ - if ( (*v4 & 0x2000000) != 0 && v6 != -1 ) /*0xffd830b5*/ - *v4 = v6 | 0x4000000; /*0xffd830b9*/ - DebugPrint(64, (int)"DWR: Sending DirtyWarmReset Notification ...\ -"); - InstallPpi(&unk_FFD93FB4); /*0xffd830cc*/ - DebugPrint(64, (int)"DWR: DirtyWarmReset Notification completed\ -"); - if ( (*v5 & 0x2000000) != 0 && *v5 != -1 ) - { - DebugPrint(64, (int)"\ -DWR: Stalling in DWR flow to allow error collection.\ -"); - while ( (*v5 & 0x4000000) != 0 ) /*0xffd83100*/ - ; /*0xffd830fc*/ - } - v7 = sub_FFD8AD54(); /*0xffd83102*/ - v8 = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, _DWORD *))(*(_DWORD *)v7 + 32))(v7, &unk_FFD97FAC, 0, 0, v10); /*0xffd8311c*/ - if ( v8 < 0 ) - { - DebugPrint(0x80000000, (int)"\ -DWR: ERROR: Can't get reset PPI\ -"); - DebugPrint(0x80000000, (int)"\ -ASSERT_EFI_ERROR (Status = %r)\ -", v8); /*0xffd83142*/ - v9 = GetReportStatusCodePpi(); /*0xffd8314a*/ - if ( v9 ) /*0xffd83151*/ - (*(void (__cdecl **)(const char *, int, const char *))(v9 + 4))( /*0xffd83162*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", - 1104, - "!EFI_ERROR (Status)"); - } - else - { - (*(void (__cdecl **)(_DWORD, int))v10[0])(v10[0], 5); /*0xffd8312a*/ - } - DebugPrint(0x80000000, (int)"\ -DWR: Waiting for reset.\ -"); - v10[1] = 0; /*0xffd83175*/ - while ( 1 ) /*0xffd83179*/ - ; /*0xffd83179*/ - } - return result; /*0xffd83182*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83186.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83186.c deleted file mode 100644 index d6fe305..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83186.c +++ /dev/null @@ -1,42 +0,0 @@ -int __thiscall sub_FFD83186(char *this) -{ - int v2; // eax - int v3; // eax - int v4; // eax - int v5; // eax - int v6; // esi - double v8; // [esp-4h] [ebp-20h] - int v9; // [esp+14h] [ebp-8h] BYREF - - v2 = sub_FFD8D75C(&v9); /*0xffd8319f*/ - if ( v2 < 0 ) /*0xffd831b1*/ - { - DebugPrint(0x80000000, (int)"\ -ASSERT_EFI_ERROR (Status = %r)\ -", v2); /*0xffd831be*/ - v3 = GetReportStatusCodePpi(); /*0xffd831c6*/ - if ( v3 ) /*0xffd831cd*/ - (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd831d6*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", - 1132, - "!EFI_ERROR (Status)"); - } - v4 = sub_FFD9041E(&v9); /*0xffd831e8*/ - if ( v4 < 0 ) /*0xffd831f0*/ - { - DebugPrint(0x80000000, (int)"\ -ASSERT_EFI_ERROR (Status = %r)\ -", v4); /*0xffd831fd*/ - v5 = GetReportStatusCodePpi(); /*0xffd83205*/ - if ( v5 ) /*0xffd8320c*/ - (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd83215*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", - 1135, - "!EFI_ERROR (Status)"); - } - v6 = (unsigned __int16)v9 >> 14; /*0xffd83225*/ - LODWORD(v8) = off_FFD93F7C[v6]; // "4x1" /*0xffd83228*/ - DebugPrint(64, (int)"PCIe SP%c is %a\ -", this + 65, v8); /*0xffd83237*/ - return v6; /*0xffd83241*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83249.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83249.c deleted file mode 100644 index 064f094..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83249.c +++ /dev/null @@ -1,115 +0,0 @@ -int sub_FFD83249() -{ - int n2; // esi - char *n3_1; // edi - int v2; // ebx - int v3; // eax - int v4; // eax - int v5; // eax - int v6; // eax - unsigned int i; // ebp - int v8; // eax - int v9; // ecx - int v10; // esi - int v12; // [esp+14h] [ebp-30h] - int v13; // [esp+1Ch] [ebp-28h] - int n2_2; // [esp+28h] [ebp-1Ch] - int v15; // [esp+2Ch] [ebp-18h] - unsigned int n3; // [esp+30h] [ebp-14h] - int n2_1; // [esp+34h] [ebp-10h] - int n4; // [esp+38h] [ebp-Ch] - int n4_1; // [esp+3Ch] [ebp-8h] - int n4_2; // [esp+40h] [ebp-4h] - - DebugPrint(64, (int)"PchConfigurePsfGrantCountsForPcie() Start\ -"); /*0xffd83257*/ - n2 = sub_FFD8BE68(); /*0xffd83263*/ - n2_2 = n2; /*0xffd83265*/ - if ( n2 == 2 ) /*0xffd8326c*/ - n3 = 3; /*0xffd8326e*/ - else - n3 = 5; /*0xffd83288*/ - n3_1 = 0; /*0xffd832a0*/ - v2 = 0; /*0xffd832a2*/ - v15 = 0; /*0xffd832a6*/ - do /*0xffd8341f*/ - { - v3 = sub_FFD83186(n3_1); /*0xffd832ad*/ - if ( !v3 ) /*0xffd832b5*/ - { - n2_1 = 1; /*0xffd83325*/ - n4 = 1; /*0xffd83329*/ - goto LABEL_16; /*0xffd83329*/ - } - v4 = v3 - 1; /*0xffd832b7*/ - if ( !v4 ) /*0xffd832ba*/ - { - n2_1 = 2; /*0xffd83313*/ - n4 = 4; /*0xffd8331b*/ -LABEL_16: - n4_2 = 1; /*0xffd8332d*/ - n4_1 = 1; /*0xffd83331*/ - goto LABEL_17; /*0xffd83331*/ - } - v5 = v4 - 1; /*0xffd832bc*/ - if ( v5 ) /*0xffd832bf*/ - { - if ( v5 != 1 ) /*0xffd832c4*/ - { - v6 = GetReportStatusCodePpi(); /*0xffd832c6*/ - if ( v6 ) /*0xffd832cd*/ - (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffd832e2*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", - 1230, - "((BOOLEAN)(0==1))"); - goto LABEL_23; /*0xffd832e8*/ - } - n2_1 = 4; /*0xffd832ed*/ - n4_1 = 4; /*0xffd832f1*/ - } - else - { - n2_1 = 2; /*0xffd832f7*/ - n4_1 = 2; /*0xffd832ff*/ - } - n4 = 4; /*0xffd83307*/ - n4_2 = 4; /*0xffd8330b*/ -LABEL_17: - for ( i = 0; i < 4; ++i ) /*0xffd83335*/ - { - if ( n2 == 2 ) /*0xffd8333a*/ - { - v8 = (unsigned __int8)byte_FFD93FCC[v2]; /*0xffd83343*/ - v12 = (unsigned __int8)byte_FFD93FCD[v2]; /*0xffd8334a*/ - v9 = (unsigned __int8)byte_FFD93F44[4 * (_DWORD)n3_1 + i]; /*0xffd8334e*/ - } - else - { - v8 = (unsigned __int8)byte_FFD93F8C[v2]; /*0xffd8335f*/ - v12 = (unsigned __int8)byte_FFD93F8D[v2]; /*0xffd83366*/ - v9 = (unsigned __int8)byte_FFD93F5C[4 * (_DWORD)n3_1 + i]; /*0xffd8336a*/ - } - v10 = *(&n2_1 + i); /*0xffd83372*/ - v13 = v9; /*0xffd8337f*/ - DebugPrint(64, (int)"DGCR%d = %d\ -", v8, v10); /*0xffd83387*/ - sub_FFD8C578(-32, v10); /*0xffd8339f*/ - DebugPrint(64, (int)"DGCR%d = %d\ -", v12, v10); /*0xffd833b0*/ - sub_FFD8C578(-32, v10); /*0xffd833c8*/ - DebugPrint(64, (int)"PG1_TGT%d = %d\ -", v13, v10); /*0xffd833d9*/ - sub_FFD8C578(-32, v10); /*0xffd833f4*/ - n2 = n2_2; /*0xffd833f9*/ - v2 += 2; /*0xffd833ff*/ - } - v2 = v15; /*0xffd8340c*/ -LABEL_23: - ++n3_1; /*0xffd83413*/ - v2 += 8; /*0xffd83414*/ - v15 = v2; /*0xffd83417*/ - } - while ( (unsigned int)n3_1 < n3 ); /*0xffd8341f*/ - return DebugPrint(64, (int)"PchConfigurePsfGrantCountsForPcie() End\ -"); /*0xffd83433*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83452.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83452.c deleted file mode 100644 index bc62cd4..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd83452.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd83452 */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd840b0.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd840b0.c deleted file mode 100644 index 3bdf78b..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd840b0.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd840b0 */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd84b0b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd84b0b.c deleted file mode 100644 index e20c1d9..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd84b0b.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd84b0b */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd84f8b.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd84f8b.c deleted file mode 100644 index 1ef26f4..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd84f8b.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd84f8b */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85246.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85246.c deleted file mode 100644 index 2f56084..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85246.c +++ /dev/null @@ -1,46 +0,0 @@ -int __fastcall sub_FFD85246(int a1, int a2, int a3) -{ - int n15000_6; // edi - int v5; // ebx - int n15000_5; // esi - unsigned __int8 v7; // al - int v8; // ebp - _DWORD *n15000_8; // ebp - int v10; // edi - int v11; // esi - unsigned __int8 v12; // al - int v13; // edi - unsigned int v14; // eax - int v15; // ecx - unsigned __int8 v16; // al - int v17; // esi - int v18; // eax - bool v19; // zf - unsigned __int16 *i; // ecx - int v21; // ecx - _WORD *n15000_7; // esi - int v23; // edi - int v24; // edx - int v25; // ebx - int v26; // esi - int v27; // eax - int j; // ebx - int n15000_3; // edi - int v30; // eax - unsigned int j_1; // ecx - int v32; // esi - unsigned int v33; // edx - int v34; // edx - char *v35; // edi - int v36; // ecx - char v37; // al - int v38; // ebx - int v39; // edi - int v40; // esi - int n15000_4; // edx - unsigned int v42; // ecx - int v43; // eax - int v44; // eax - unsigned __int8 v46; // [esp+10h] [ebp-48h] - unsigned __int8 v47; // [esp+11h] [ebp-47h] - ... [11197 chars total] diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd858c3.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd858c3.c deleted file mode 100644 index c65e625..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd858c3.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd858c3 */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85bc2.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85bc2.c deleted file mode 100644 index 5d42664..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85bc2.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd85bc2 */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85f37.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85f37.c deleted file mode 100644 index 141a2bf..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd85f37.c +++ /dev/null @@ -1,27 +0,0 @@ -int sub_FFD85F37() -{ - int v0; // eax - int v1; // eax - int v2; // esi - int v3; // eax - _DWORD v5[2]; // [esp+8h] [ebp-8h] BYREF - - v0 = sub_FFD8AD54(); /*0xffd85f3e*/ - v1 = (*(int (__cdecl **)(int, void *, _DWORD, _DWORD, _DWORD *))(*(_DWORD *)v0 + 32))(v0, &unk_FFD97EEC, 0, 0, v5); /*0xffd85f53*/ - v2 = v1; /*0xffd85f56*/ - if ( v1 < 0 ) - { - DebugPrint(0x80000000, (int)"ERROR: DWR Can't find PCH Policy (Status: %r)\n", v1); - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v2); /*0xffd85f78*/ - v3 = GetReportStatusCodePpi(); /*0xffd85f80*/ - if ( v3 ) /*0xffd85f88*/ - (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd85f99*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c", - 4100, - "!EFI_ERROR (Status)"); - v5[1] = 0; /*0xffd85f9f*/ - while ( 1 ) /*0xffd85fa2*/ - ; /*0xffd85fa2*/ - } - return (unsigned __int8)(*(_DWORD *)(v5[0] + 2975) >> 18); /*0xffd85faa*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd860b8.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd860b8.c deleted file mode 100644 index 957beea..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd860b8.c +++ /dev/null @@ -1,54 +0,0 @@ -int __thiscall sub_FFD860B8(int this) -{ - int v2; // esi - int v3; // edi - int v4; // eax - _DWORD *v5; // eax - int n8; // edx - int v8; // [esp+14h] [ebp-8h] BYREF - int n17; // [esp+18h] [ebp-4h] BYREF - - DebugPrint(64, (int)"ConfigureXhci() - Start\n"); /*0xffd860c8*/ - v2 = *(_DWORD *)(this + 3510); /*0xffd860cd*/ - sub_FFD8BE68(); /*0xffd860d9*/ - v3 = sub_FFD8CBBA(0, 20, 0); /*0xffd860f1*/ - sub_FFD8C76F(&v8); /*0xffd860f3*/ - *(_DWORD *)(v3 + 16) = v2; /*0xffd860fd*/ - sub_FFD8CC4F(v3 + 4, 6); /*0xffd86101*/ - if ( (*(_BYTE *)(this + 2263) & 2) != 0 ) /*0xffd86109*/ - *(_DWORD *)(v2 + 33004) |= 1u; /*0xffd86114*/ - v4 = sub_FFD8AD54(); /*0xffd8611a*/ - (*(void (__cdecl **)(int, int *))(*(_DWORD *)v4 + 40))(v4, &n17); /*0xffd86127*/ - if ( n17 == 17 ) /*0xffd86133*/ - sub_FFD86747(this + 2263); /*0xffd86137*/ - else - sub_FFD85FBC(); /*0xffd8613e*/ - sub_FFD861FF(this, v2, v3); /*0xffd86148*/ - sub_FFD8701A(this, v2); /*0xffd86151*/ - DebugPrint(64, (int)"xHCI: XhciPostInitDone Start\n"); - *(_DWORD *)(v2 + 32992) &= ~0x10000u; /*0xffd86174*/ - *(_DWORD *)(v3 + 80) = 265186911; /*0xffd8617c*/ - DebugPrint(64, (int)"xHCI: XhciPostInitDone End\n"); - if ( (*(_BYTE *)(this + 2263) & 4) != 0 ) /*0xffd8618e*/ - { - sub_FFD86E37(this + 2263, v3); /*0xffd86194*/ - } - else - { - DebugPrint(0x80000000, (int)"Clear Over-Current registers\n"); /*0xffd861a5*/ - v5 = (_DWORD *)(v3 + 208); /*0xffd861ae*/ - n8 = 8; /*0xffd861b4*/ - do /*0xffd861c8*/ - { - *(v5 - 8) = 0; /*0xffd861b5*/ - *v5++ = 0; /*0xffd861bc*/ - --n8; /*0xffd861c5*/ - } - while ( n8 ); /*0xffd861c8*/ - } - sub_FFD8687F(this + 2263, v2); /*0xffd861ce*/ - sub_FFD8CC6A(v3 + 4, 65529); /*0xffd861db*/ - *(_DWORD *)(v3 + 16) = 0; /*0xffd861e7*/ - DebugPrint(64, (int)"ConfigureXhciPreMem () - End\n"); /*0xffd861ee*/ - return 0; /*0xffd861f5*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd86203.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd86203.c deleted file mode 100644 index ecb0850..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd86203.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd86203 */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8690c.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8690c.c deleted file mode 100644 index bda6152..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8690c.c +++ /dev/null @@ -1,115 +0,0 @@ -int __fastcall sub_FFD8690C(int a1, int a2) -{ - int v2; // ebp - int n15_1; // ebx - unsigned __int8 i_4; // cl - unsigned __int8 i_1; // al - unsigned __int64 v6; // rdi - int v7; // ebx - int v8; // ebp - _DWORD *v9; // eax - _DWORD *v10; // esi - unsigned int v11; // ecx - int result; // eax - int v13; // [esp-8h] [ebp-34h] - char v14; // [esp+11h] [ebp-1Bh] BYREF - unsigned __int8 i; // [esp+12h] [ebp-1Ah] - unsigned __int8 i_3; // [esp+13h] [ebp-19h] - unsigned int n1342177280; // [esp+14h] [ebp-18h] BYREF - int v18; // [esp+18h] [ebp-14h] - int v19; // [esp+1Ch] [ebp-10h] - int n15; // [esp+20h] [ebp-Ch] BYREF - unsigned int i_2; // [esp+24h] [ebp-8h] BYREF - unsigned int v22; // [esp+28h] [ebp-4h] BYREF - - v2 = a2; /*0xffd86913*/ - v19 = a1; /*0xffd86915*/ - v18 = a2; /*0xffd86920*/ - DebugPrint(64, (int)"xHCI: Usb2AfeProgramming Start\n"); - sub_FFD8BE68(); /*0xffd86929*/ - sub_FFD8BB3A(v13); /*0xffd8692e*/ - sub_FFD8C909(&v22); /*0xffd86937*/ - n15_1 = sub_FFD8CBBA(0, 31, 2); /*0xffd8694b*/ - n15 = n15_1; /*0xffd86951*/ - sub_FFD8ADCC(202, 6, 16427, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd86970*/ - n1342177280 |= 0x400000u; /*0xffd86975*/ - sub_FFD8ADCC(202, 7, 16427, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86999*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd869a9*/ - sub_FFD8ADCC(202, 6, 16385, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd869cc*/ - n1342177280 |= 0x3000000u; /*0xffd869d8*/ - sub_FFD8ADCC(202, 7, 16385, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd869f5*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86a05*/ - sub_FFD8ADCC(202, 6, 28672, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd86a2a*/ - n1342177280 = (unsigned __int16)n1342177280 | 0x50500000; /*0xffd86a41*/ - sub_FFD8ADCC(202, 7, 28672, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86a59*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86a69*/ - n1342177280 = 1342177280; /*0xffd86a71*/ - sub_FFD8ADCC(202, 7, 28724, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86a95*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86aa5*/ - n1342177280 = 175176950; /*0xffd86aad*/ - sub_FFD8ADCC(202, 7, 28728, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86ad3*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86ae3*/ - n1342177280 = 532398080; /*0xffd86aeb*/ - sub_FFD8ADCC(202, 7, 28732, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b0f*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b1f*/ - n1342177280 = 34432; /*0xffd86b27*/ - sub_FFD8ADCC(202, 7, 32516, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b4d*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b5d*/ - n1342177280 = 67251212; /*0xffd86b65*/ - sub_FFD8ADCC(202, 7, 28712, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b8b*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b9b*/ - n1342177280 = 184552192; /*0xffd86ba9*/ - sub_FFD8ADCC(202, 7, 32515, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86bc9*/ - sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86bd9*/ - i_4 = sub_FFD8C035(); /*0xffd86be6*/ - i_1 = 1; /*0xffd86be8*/ - i_3 = i_4; /*0xffd86bea*/ - for ( i = 1; i_1 <= i_3; i = i_1 ) /*0xffd86bf4*/ - { - i_2 = i_1; /*0xffd86c07*/ - v6 = (unsigned __int64)(i_1 | 0x40u) << 8; /*0xffd86c25*/ - sub_FFD8ADCC(202, 6, v6, SHIDWORD(v6), 0, 0, &n1342177280, &v14, 6); /*0xffd86c2c*/ - v7 = 2 * i; /*0xffd86c3d*/ - n1342177280 = n1342177280 & 0xFFFF80FF /*0xffd86c87*/ - | ((*(_BYTE *)(v19 + 16 * i - 3) & 7 - | (8 * (*(_BYTE *)(v19 + 16 * i - 4) & 7 | (8 * (*(_BYTE *)(v19 + 16 * i - 1) & 1))))) << 8) - | 0xFC000010; - sub_FFD8ADCC(202, 7, v6, SHIDWORD(v6), 1u, 0, &n1342177280, &v14, 7); /*0xffd86c93*/ - sub_FFD8A1DE(n1342177280, v18, n15); /*0xffd86ca9*/ - v8 = (unsigned __int64)i_2 >> 24; /*0xffd86cb9*/ - LODWORD(v6) = i_2 << 8; /*0xffd86cbd*/ - HIDWORD(v6) = (i_2 << 8) | 0x4026; /*0xffd86cca*/ - n1342177280 = 0; /*0xffd86cd8*/ - sub_FFD8ADCC(202, 6, SHIDWORD(v6), v8, 0, 0, &n1342177280, &v14, 6); /*0xffd86ce2*/ - n1342177280 ^= (n1342177280 ^ (*(unsigned __int8 *)(v19 + 8 * v7 - 2) << 23)) & 0x1800000; /*0xffd86d0b*/ - sub_FFD8ADCC(202, 7, SHIDWORD(v6), v8, 1u, 0, &n1342177280, &v14, 7); /*0xffd86d22*/ - n15_1 = n15; /*0xffd86d27*/ - sub_FFD8A1DE(n1342177280, v18, n15); /*0xffd86d39*/ - LODWORD(v6) = v6 | 0x4008; /*0xffd86d47*/ - sub_FFD8ADCC(202, 6, v6, v8, 0, 0, &n1342177280, &v14, 6); /*0xffd86d61*/ - n1342177280 = n1342177280 & 0xFFFFC17F | 0x1A80; /*0xffd86d7c*/ - sub_FFD8ADCC(202, 7, v6, v8, 1u, 0, &n1342177280, &v14, 7); /*0xffd86d94*/ - v2 = v18; /*0xffd86d99*/ - sub_FFD8A1DE(n1342177280, v18, n15_1); /*0xffd86da8*/ - i_1 = i + 1; /*0xffd86db4*/ - } - if ( sub_FFD8BE68() == 2 ) /*0xffd86dcc*/ - { - i_3 = sub_FFD89FDC(&i_2); /*0xffd86ddd*/ - v9 = (_DWORD *)sub_FFD8A048(); /*0xffd86de1*/ - v10 = v9; /*0xffd86de6*/ - if ( v9 ) /*0xffd86dea*/ - { - v11 = i_2 + *v9; /*0xffd86df2*/ - n15 = 15; /*0xffd86df8*/ - sub_FFD8D51B(v11, &n15, 4); /*0xffd86e00*/ - *v10 += 4; /*0xffd86e05*/ - if ( i_3 == 1 ) /*0xffd86e0e*/ - sub_FFD8A02F(n15_1); /*0xffd86e12*/ - } - } - sub_FFD8A2C4(v2, n15_1); /*0xffd86e1b*/ - result = *(_DWORD *)(v22 + 24) | 0x20000000; /*0xffd86e2a*/ - *(_DWORD *)(v22 + 24) = result; /*0xffd86e2f*/ - return result; /*0xffd86e24*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd86e4d.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd86e4d.c deleted file mode 100644 index eb2349c..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd86e4d.c +++ /dev/null @@ -1,106 +0,0 @@ -int __usercall sub_FFD86E37@(int a1@, int a2@, int a3, int a4, int a5, int a6, int a7, ...) -{ - int v7; // ebx - unsigned int n8_3; // esi - unsigned int v9; // edi - unsigned __int8 *v10; // ebx - unsigned __int8 n8; // al - int n8_4; // ebp - int v13; // eax - unsigned int n8_1; // ecx - _DWORD *v15; // edx - int v16; // eax - unsigned int v17; // edi - unsigned __int8 *v18; // ebp - unsigned __int8 n8_2; // al - int n8_5; // ebx - int v21; // eax - _DWORD *v22; // ecx - int result; // eax - unsigned int retaddr; // [esp+5Ch] [ebp+0h] - int v27; // [esp+74h] [ebp+18h] BYREF - va_list va; // [esp+74h] [ebp+18h] - int v29; // [esp+78h] [ebp+1Ch] - int v30; // [esp+7Ch] [ebp+20h] - int v31; // [esp+80h] [ebp+24h] - int v32; // [esp+84h] [ebp+28h] - int v33; // [esp+88h] [ebp+2Ch] - int v34; // [esp+8Ch] [ebp+30h] - int v35; // [esp+90h] [ebp+34h] - va_list va1; // [esp+94h] [ebp+38h] BYREF - - va_start(va1, a7); - va_start(va, a7); - v27 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v29 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v30 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v31 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v32 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v33 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v34 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v35 = va_arg(va1, _DWORD); /*0xffd86e37*/ - v7 = a2; /*0xffd86e3e*/ - sub_FFD8D4C8(va1, retaddr); /*0xffd86e4f*/ - sub_FFD8D4C8((int *)va, retaddr); /*0xffd86e5b*/ - sub_FFD8BF54(); /*0xffd86e60*/ - n8_3 = 0; /*0xffd86e65*/ - v9 = 0; /*0xffd86e67*/ - if ( (unsigned __int8)sub_FFD8C051() ) /*0xffd86e69*/ - { - v10 = (unsigned __int8 *)(v7 + 264); /*0xffd86e72*/ - do /*0xffd86ebd*/ - { - n8 = *v10; /*0xffd86e78*/ - if ( *v10 != 8 ) /*0xffd86e7c*/ - { - n8_4 = n8; /*0xffd86e7e*/ - if ( n8 >= 8u ) /*0xffd86e84*/ - { - v13 = GetReportStatusCodePpi(); /*0xffd86e86*/ - if ( v13 ) /*0xffd86e8d*/ - (*(void (**)(void))(v13 + 4))(); /*0xffd86e9e*/ - } - *((int *)va + n8_4) |= 1 << v9; /*0xffd86eab*/ - } - ++v9; /*0xffd86eaf*/ - v10 += 16; /*0xffd86eb0*/ - } - while ( v9 < (unsigned __int8)sub_FFD8C051() ); /*0xffd86ebd*/ - v7 = a2; /*0xffd86ebf*/ - } - n8_1 = 0; /*0xffd86ec7*/ - v15 = (_DWORD *)(a1 + 208); /*0xffd86ec9*/ - do /*0xffd86edc*/ - { - v16 = *((int *)va + n8_1++); /*0xffd86ecf*/ - *v15++ = v16; /*0xffd86ed4*/ - } - while ( n8_1 < 8 ); /*0xffd86edc*/ - v17 = 0; /*0xffd86ede*/ - v18 = (unsigned __int8 *)(v7 + 8); /*0xffd86ee0*/ - while ( (unsigned int)(sub_FFD8BE68() - 1) <= 1 && v17 < retaddr ) /*0xffd86efb*/ - { - n8_2 = *v18; /*0xffd86efd*/ - if ( *v18 != 8 ) /*0xffd86f02*/ - { - n8_5 = n8_2; /*0xffd86f04*/ - if ( n8_2 >= 8u ) /*0xffd86f0a*/ - { - v21 = GetReportStatusCodePpi(); /*0xffd86f0c*/ - if ( v21 ) /*0xffd86f13*/ - (*(void (**)(void))(v21 + 4))(); /*0xffd86f24*/ - } - va1[n8_5] = (void *)((unsigned int)va1[n8_5] | (1 << v17)); /*0xffd86f31*/ - } - ++v17; /*0xffd86f35*/ - v18 += 16; /*0xffd86f36*/ - } - v22 = (_DWORD *)(a1 + 176); /*0xffd86f3f*/ - do /*0xffd86f52*/ - { - result = (int)va1[n8_3++]; /*0xffd86f45*/ - *v22++ = result; /*0xffd86f4a*/ - } - while ( n8_3 < 8 ); /*0xffd86f52*/ - return result; /*0xffd86f54*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8733e.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8733e.c deleted file mode 100644 index c271065..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8733e.c +++ /dev/null @@ -1 +0,0 @@ -/* Decompilation failed at 0xffd8733e */ diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd879ed.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd879ed.c deleted file mode 100644 index ce91928..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd879ed.c +++ /dev/null @@ -1,33 +0,0 @@ -int __thiscall sub_FFD879ED(_DWORD *this) -{ - unsigned __int8 i; // bl - int v3; // ecx - int v5; // [esp-4h] [ebp-20h] - unsigned __int8 v6; // [esp+11h] [ebp-Bh] - char v7; // [esp+12h] [ebp-Ah] BYREF - char v8; // [esp+13h] [ebp-9h] BYREF - _BYTE v9[2]; // [esp+14h] [ebp-8h] BYREF - - DebugPrint(64, (int)"XhciUsb3Tune() Start\n"); /*0xffd879fd*/ - for ( i = 0; i < (unsigned __int8)sub_FFD8C051(); ++i ) /*0xffd87a06*/ - { - if ( (*(_BYTE *)(this + 4 * i + 67) & 0x81) != 0 ) /*0xffd87a22*/ - { - sub_FFD8E3BE(); /*0xffd87a2c*/ - sub_FFD8E062(v6, &v8, &v7); /*0xffd87a41*/ - v3 = v5; /*0xffd87a4b*/ - if ( v7 == 1 ) /*0xffd87a4c*/ - { - LOBYTE(v3) = v6; /*0xffd87a56*/ - sub_FFD8EBC8(v3, v9); /*0xffd87a58*/ - if ( (*(this + 4 * i + 67) & 1) != 0 ) /*0xffd87a6e*/ - sub_FFD8C578(-4128769, (*(this + 4 * i + 67) & 0x7E) << 15); /*0xffd87a85*/ - if ( (*(this + 4 * i + 67) & 0x80u) != 0 ) /*0xffd87a95*/ - sub_FFD8C578(-4128769, (*(this + 4 * i + 67) & 0x3F00) << 8); /*0xffd87aae*/ - sub_FFD8C578(-3, 0); /*0xffd87ac9*/ - sub_FFD8C578(-1, 2); /*0xffd87ad6*/ - } - } - } - return DebugPrint(64, (int)"XhciUsb3Tune() End\n"); /*0xffd87afb*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87b03.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87b03.c deleted file mode 100644 index 4be8e06..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87b03.c +++ /dev/null @@ -1,69 +0,0 @@ -int __thiscall sub_FFD87B03(int this) -{ - int v2; // edi - int v3; // ebx - int v5; // ebp - unsigned int n0x3E8; // esi - unsigned int i; // ebp - int n2; // esi - int n35; // edi - unsigned int v10; // [esp+10h] [ebp-4h] BYREF - - v2 = *(_DWORD *)(this + 3510); /*0xffd87b11*/ - v3 = sub_FFD8CBBA(0, 20, 1); /*0xffd87b1d*/ - if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v3) == 0xFFFF ) - { - DebugPrint(64, (int)"xDCI: Pci device NOT found\n"); - return -2147483634; /*0xffd87b3e*/ - } - else - { - v5 = sub_FFD8CBBA(0, 20, 0); /*0xffd87b63*/ - sub_FFD8C578(-1, 63); /*0xffd87b65*/ - sub_FFD8C5B5(); /*0xffd87b6a*/ - if ( (*(_BYTE *)(this + 2683) & 1) != 0 ) - { - *(_DWORD *)(v5 + 16) = v2; /*0xffd87cfb*/ - sub_FFD8CC4F(v5 + 4, 2); /*0xffd87cfe*/ - *(_DWORD *)(v2 + 32984) &= 0xFFCFFFFF; /*0xffd87d11*/ - sub_FFD8CC6A(v5 + 4, 65533); /*0xffd87d1e*/ - *(_DWORD *)(v5 + 16) = 0; /*0xffd87d2b*/ - sub_FFD8CC85(4); /*0xffd87d34*/ - } - else - { - DebugPrint(64, (int)"xDCI: Device disabled\n"); - *(_DWORD *)(v5 + 16) = v2; /*0xffd87b91*/ - sub_FFD8CC4F(v5 + 4, 2); /*0xffd87b95*/ - *(_DWORD *)(v2 + 32984) |= 0x200000u; /*0xffd87ba5*/ - n0x3E8 = 0; /*0xffd87bb6*/ - *(_DWORD *)(v2 + 32984) &= ~0x100000u; /*0xffd87bb8*/ - while ( (*(_DWORD *)(v2 + 32988) & 0x20000000) == 0 && n0x3E8 < 0x3E8 ) /*0xffd87bc6*/ - { - sub_FFD7FA46(0x64u); /*0xffd87bcb*/ - ++n0x3E8; /*0xffd87bd0*/ - } - *(_DWORD *)(v2 + 32984) = *(_DWORD *)(v2 + 32984) & 0xFFFFFFFC | 1; /*0xffd87bf4*/ - sub_FFD8CC6A(v5 + 4, 65533); /*0xffd87bfa*/ - *(_DWORD *)(v5 + 16) = 0; /*0xffd87c01*/ - *(_DWORD *)(v3 + 16) = v2; /*0xffd87c0c*/ - sub_FFD8CC4F(v3 + 4, 2); /*0xffd87c0f*/ - *(_DWORD *)(v2 + 49424) |= 2u; /*0xffd87c23*/ - *(_DWORD *)(v2 + 49664) |= 0x40u; /*0xffd87c32*/ - *(_DWORD *)(v2 + 49856) |= 0x8000000u; /*0xffd87c46*/ - sub_FFD8CC4F(v2 + 1112088, 3); /*0xffd87c4c*/ - for ( i = 0; (sub_FFD8CCA5((unsigned __int16 *)(v2 + 1112080)) & 0xF00) == 0 && i < 0x3E8; ++i ) /*0xffd87c51*/ - sub_FFD7FA46(0x64u); /*0xffd87c60*/ - sub_FFD8CC6A(v3 + 4, 65533); /*0xffd87c80*/ - *(_DWORD *)(v3 + 16) = 0; /*0xffd87c85*/ - *(_DWORD *)(v3 + 132) |= 3u; /*0xffd87c95*/ - n2 = sub_FFD8BE68(); /*0xffd87ca0*/ - n35 = sub_FFD8BB3A(); /*0xffd87ca7*/ - sub_FFD8C578(-1, 256); /*0xffd87cc4*/ - sub_FFD8C909(&v10); /*0xffd87ccf*/ - if ( n2 == 2 && n35 >= 35 ) /*0xffd87cdc*/ - *(_DWORD *)(v10 + 1576) |= 0x1000000u; /*0xffd87ced*/ - } - return 0; /*0xffd87d3a*/ - } -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87d42.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87d42.c deleted file mode 100644 index 3bbe394..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87d42.c +++ /dev/null @@ -1,37 +0,0 @@ -int InstallPchSpiPpi() -{ - int v0; // eax - int v1; // eax - _DWORD *v2; // edi - int v4; // eax - int v5; // esi - int v6; // eax - - DebugPrint(64, (int)"InstallPchSpi() Start\n"); /*0xffd87d4c*/ - v0 = sub_FFD8CBBA(0, 31, 5); /*0xffd87d58*/ - *(_DWORD *)(v0 + 16) = -33488896; /*0xffd87d60*/ - *(_DWORD *)(v0 + 4) |= 2u; /*0xffd87d6d*/ - v1 = sub_FFD8ADB0(104); /*0xffd87d73*/ - v2 = (_DWORD *)v1; /*0xffd87d78*/ - if ( !v1 ) /*0xffd87d7c*/ - return -2147483639; /*0xffd87d7e*/ - sub_FFD8F09A((_DWORD *)(v1 + 12)); /*0xffd87d88*/ - *v2 = -2147483632; /*0xffd87d90*/ - v2[1] = &unk_FFD97EBC; /*0xffd87d98*/ - v2[2] = v2 + 5; /*0xffd87d9f*/ - v4 = InstallPpi(v2); /*0xffd87da2*/ - v5 = v4; /*0xffd87da7*/ - if ( v4 < 0 ) /*0xffd87dab*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v4); /*0xffd87db8*/ - v6 = GetReportStatusCodePpi(); /*0xffd87dc0*/ - if ( v6 ) /*0xffd87dc7*/ - (*(void (__cdecl **)(const char *, int, const char *))(v6 + 4))( /*0xffd87dd8*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchSpi.c", - 130, - "!EFI_ERROR (Status)"); - } - DebugPrint(64, (int)"SPI PPI Installed\n"); /*0xffd87de5*/ - DebugPrint(64, (int)"InstallPchSpi() End\n"); /*0xffd87df1*/ - return v5; /*0xffd87dfb*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87dff.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87dff.c deleted file mode 100644 index 1d15f3f..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87dff.c +++ /dev/null @@ -1,27 +0,0 @@ -int __thiscall ConfigureLpcOnPolicy(_BYTE *this) -{ - int result; // eax - int v3; // esi - int n128; // ecx - _DWORD v5[4]; // [esp+8h] [ebp-10h] BYREF - - result = DebugPrint(64, (int)"ConfigureLpcOnPolicy()\n"); /*0xffd87e0f*/ - if ( (*(this + 3514) & 1) == 0 ) /*0xffd87e1d*/ - { - DebugPrint(64, (int)"Disable EnhancePort8xhDecoding\n"); /*0xffd87e26*/ - sub_FFD8D48A(v5, 16); /*0xffd87e33*/ - result = sub_FFD8CA98(v5); /*0xffd87e3b*/ - v3 = 0; /*0xffd87e40*/ - while ( 1 ) /*0xffd87e42*/ - { - n128 = v5[v3]; /*0xffd87e42*/ - if ( (_WORD)n128 == 128 && (n128 & 0x7FFF0000) == 0x100000 ) /*0xffd87e59*/ - break; /*0xffd87e59*/ - if ( (unsigned int)++v3 >= 4 ) /*0xffd87e5f*/ - return result; /*0xffd87e5f*/ - } - *(_DWORD *)(sub_FFD8CBBA(0, 31, 0) + 4 * v3 + 132) = 0; /*0xffd87e83*/ - return sub_FFD8C497(4, 0); /*0xffd87e8d*/ - } - return result; /*0xffd87e94*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87e99.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87e99.c deleted file mode 100644 index 42f2c75..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87e99.c +++ /dev/null @@ -1,18 +0,0 @@ -bool PchWdtIsUnexpectedReset() -{ - int v0; // esi - int n5120; // eax - bool result; // al - unsigned __int16 v3; // [esp+4h] [ebp-4h] BYREF - - sub_FFD8C76F(&v3); /*0xffd87ea1*/ - v0 = v3; /*0xffd87ea6*/ - result = 0; /*0xffd87ee2*/ - if ( (sub_FFD8CD06(v3) & 0x8000u) != 0 ) /*0xffd87eb9*/ - { - n5120 = sub_FFD8CD06(v0 + 4) & 0x1C00; /*0xffd87ed0*/ - if ( (_WORD)n5120 == 5120 || (_WORD)n5120 == 6144 ) /*0xffd87ee0*/ - return 1; /*0xffd87eb9*/ - } - return result; /*0xffd87ee8*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87eed.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87eed.c deleted file mode 100644 index 1b06ca4..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd87eed.c +++ /dev/null @@ -1,81 +0,0 @@ -int PchWdtInit() -{ - int v0; // eax - int v1; // ebx - __int16 v2; // bp - int v3; // eax - int result; // eax - char v5; // cl - _DWORD *v6; // edi - unsigned int v7; // ebx - unsigned int v8; // ebx - int v9; // eax - int v10; // eax - int v11; // esi - int v12; // eax - int v13; // [esp+14h] [ebp-8h] BYREF - int v14; // [esp+18h] [ebp-4h] - - v0 = sub_FFD8EEB6(); /*0xffd87ef4*/ - v1 = sub_FFD8CD6B(v0); /*0xffd87f00*/ - DebugPrint(64, (int)"(WDT) Readback = 0x%08x\n", v1); /*0xffd87f0a*/ - if ( (v1 & 0x4000) != 0 ) /*0xffd87f18*/ - { - LOBYTE(v14) = 1; /*0xffd87f1c*/ - v2 = (v1 & 0x3FF) + 1; /*0xffd87f27*/ - } - else - { - v14 = 0; /*0xffd87f2e*/ - v2 = 0; /*0xffd87f32*/ - } - v3 = sub_FFD8AD54(); /*0xffd87f34*/ - result = (*(int (__cdecl **)(int, int, int, int *))(*(_DWORD *)v3 + 52))(v3, 4, 28, &v13); /*0xffd87f45*/ - if ( result >= 0 ) /*0xffd87f4d*/ - { - v5 = v14; /*0xffd87f5c*/ - v6 = (_DWORD *)(v13 + 8); /*0xffd87f60*/ - *(_DWORD *)(v13 + 8) = unk_FFD97F0C; /*0xffd87f63*/ - *++v6 = unk_FFD97F10; /*0xffd87f64*/ - *++v6 = unk_FFD97F14; /*0xffd87f65*/ - v6[1] = unk_FFD97F18; /*0xffd87f66*/ - *(_BYTE *)(v13 + 26) = v5; /*0xffd87f75*/ - *(_WORD *)(v13 + 24) = v2; /*0xffd87f7c*/ - if ( (v1 & 0x3000000) != 0 ) /*0xffd87f82*/ - { - DebugPrint(0x80000000, (int)"(WDT) Expiration detected.\n", v1); /*0xffd87f8b*/ - v7 = v1 & 0xFC3FFFFF | 0x3800000; /*0xffd87f99*/ - } - else - { - if ( (v1 & 0x400000) == 0 || PchWdtIsUnexpectedReset() ) /*0xffd87fa9*/ - { - DebugPrint(64, (int)"(WDT) Status OK.\n", v1); /*0xffd87fcf*/ - v8 = v1 & 0xFF7FFFFF; /*0xffd87fd7*/ - } - else - { - DebugPrint(0x80000000, (int)"(WDT) Unexpected reset detected and ignored.\n"); /*0xffd87fb8*/ - v8 = v1 & 0xFF3FFFFF; /*0xffd87fbf*/ - } - v7 = v8 | 0x3000000; /*0xffd87fdd*/ - } - v9 = sub_FFD8EEB6(); /*0xffd87fdf*/ - sub_FFD8CD97(v9, v7); /*0xffd87fe8*/ - InstallPpi(&unk_FFD9816C); /*0xffd87ff2*/ - v10 = InstallPpi(&unk_FFD98144); /*0xffd87ffc*/ - v11 = v10; /*0xffd88001*/ - if ( v10 < 0 ) /*0xffd88005*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v10); /*0xffd8800e*/ - v12 = GetReportStatusCodePpi(); /*0xffd88016*/ - if ( v12 ) /*0xffd8801d*/ - (*(void (__cdecl **)(const char *, int, const char *))(v12 + 4))( /*0xffd8802e*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\Wdt.c", - 216, - "!EFI_ERROR (Status)"); - } - return v11; /*0xffd88034*/ - } - return result; /*0xffd88036*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd880d2.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd880d2.c deleted file mode 100644 index a3f0f80..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd880d2.c +++ /dev/null @@ -1,65 +0,0 @@ -int InstallPchResetPpi() -{ - int v0; // eax - _DWORD *v1; // edi - int v2; // eax - int v3; // eax - _DWORD *v4; // esi - _DWORD *v5; // eax - int v6; // eax - int v7; // esi - int v8; // eax - int v10; // eax - - DebugPrint(64, (int)"InstallPchReset() Start\n"); /*0xffd880de*/ - v0 = sub_FFD8ADB0(40); /*0xffd880e8*/ - v1 = (_DWORD *)v0; /*0xffd880ed*/ - if ( !v0 ) /*0xffd880f1*/ - return -2147483639; /*0xffd881e7*/ - sub_FFD90233(v0 + 12); /*0xffd880fc*/ - v1[5] = PchResetInitCallback; /*0xffd88106*/ - *v1 = -2147483632; /*0xffd8810c*/ - v1[1] = &unk_FFD97FAC; /*0xffd88112*/ - v1[2] = v1 + 5; /*0xffd88119*/ - v2 = InstallPpi(v1); /*0xffd8811c*/ - if ( v2 < 0 ) /*0xffd88132*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v2); /*0xffd8813b*/ - v3 = GetReportStatusCodePpi(); /*0xffd88143*/ - if ( v3 ) /*0xffd8814a*/ - (*(void (__cdecl **)(const char *, int, const char *))(v3 + 4))( /*0xffd88153*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchReset.c", - 132, - "!EFI_ERROR (Status)"); - } - v4 = (_DWORD *)sub_FFD8ADB0(12); /*0xffd88164*/ - v5 = (_DWORD *)sub_FFD8ADB0(4); /*0xffd88166*/ - if ( !v4 || !v5 ) /*0xffd88171*/ - { - v10 = GetReportStatusCodePpi(); /*0xffd881cd*/ - if ( v10 ) /*0xffd881d4*/ - (*(void (__cdecl **)(const char *, int, const char *))(v10 + 4))( /*0xffd881e1*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchReset.c", - 139, - "((BOOLEAN)(0==1))"); - return -2147483639; /*0xffd881e1*/ - } - *v5 = PchResetCallback2; /*0xffd88173*/ - *v4 = -2147483632; /*0xffd8817b*/ - v4[1] = &unk_FFD97F2C; /*0xffd88181*/ - v4[2] = v5; /*0xffd88188*/ - v6 = InstallPpi(v4); /*0xffd8818b*/ - v7 = v6; /*0xffd88190*/ - if ( v6 < 0 ) /*0xffd88194*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v6); /*0xffd8819d*/ - v8 = GetReportStatusCodePpi(); /*0xffd881a5*/ - if ( v8 ) /*0xffd881ac*/ - (*(void (__cdecl **)(const char *, int, const char *))(v8 + 4))( /*0xffd881b5*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchReset.c", - 153, - "!EFI_ERROR (Status)"); - } - DebugPrint(64, (int)"InstallPchReset() End\n"); /*0xffd881c2*/ - return v7; /*0xffd881ec*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8ad54.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8ad54.c deleted file mode 100644 index b3f48a6..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8ad54.c +++ /dev/null @@ -1,15 +0,0 @@ -int sub_FFD8AD54() -{ - int v0; // esi - int __return_address; // [esp+0h] [ebp-Ch] - int v3; // [esp+6h] [ebp-6h] - - sub_FFD8D30B(__return_address); /*0xffd8ad5d*/ - v0 = *(_DWORD *)(v3 - 4); /*0xffd8ad65*/ - if ( !v0 ) /*0xffd8ad6a*/ - sub_FFD7F9D9( /*0xffd8ad79*/ - (int)"e:\\hs\\MdePkg\\Library\\PeiServicesTablePointerLibIdt\\PeiServicesTablePointer.c", - 48, - "PeiServices != ((void *) 0)"); - return v0; /*0xffd8ad81*/ -} diff --git a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8b940.c b/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8b940.c deleted file mode 100644 index cdc0424..0000000 --- a/PurleySktPkg/SouthClusterLbg/SiInit/Pei/SiInitPreMem/decompiled/ffd8b940.c +++ /dev/null @@ -1,41 +0,0 @@ -int __thiscall sub_FFD8B940(void *this) -{ - int n256; // esi - int n13; // edi - int v3; // eax - void *v4; // ecx - int v5; // eax - int result; // eax - - n256 = 256; /*0xffd8b947*/ - n13 = 13; /*0xffd8b94e*/ - do /*0xffd8b9e0*/ - { - v3 = sub_FFD8B14D(n256, this, -1, 0, 0); /*0xffd8b95f*/ - if ( v3 < 0 ) /*0xffd8b969*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", v3); /*0xffd8b976*/ - v5 = GetReportStatusCodePpi(); /*0xffd8b97e*/ - if ( v5 ) /*0xffd8b985*/ - (*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd8b992*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", - 1584, - "!EFI_ERROR (Status)"); - } - result = sub_FFD8B14D(n256, v4, -1, 0, 0); /*0xffd8b9a3*/ - if ( result < 0 ) /*0xffd8b9ad*/ - { - DebugPrint(0x80000000, (int)"\nASSERT_EFI_ERROR (Status = %r)\n", result); /*0xffd8b9ba*/ - result = GetReportStatusCodePpi(); /*0xffd8b9c2*/ - if ( result ) /*0xffd8b9c9*/ - result = (*(int (__cdecl **)(const char *, int, const char *))(result + 4))( /*0xffd8b9d6*/ - "e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmGpioLib\\GpioLib.c", - 1712, - "!EFI_ERROR (Status)"); - } - ++n256; /*0xffd8b9dc*/ - --n13; /*0xffd8b9dd*/ - } - while ( n13 ); /*0xffd8b9e0*/ - return result; /*0xffd8b9e6*/ -}