// PchResetRuntime.efi - HR650X BIOS PCH Reset Runtime Driver
// Auto-decompiled from PchResetRuntime.efi
#include "PchResetRuntime.h"
// Function at 0x1000 unsigned __int64 SataIdentifyDevice(__int64 a1, unsigned __int8 a2, char a3, __int64 a4)
{
__int64 Index; // rdi __int64 Ptr; // rcx unsigned __int64 Index; // rbp __int64 v11; // rsi __int64 v13; // rax bool v14; // sf _BYTE *v15; // rax int v16; // ecx unsigned __int16 *v17; // rdx unsigned __int16 Index; // cx unsigned __int16 i; // ax unsigned __int16 v20; // [rsp+48h] [rbp+10h] BYREF Index = a1 - 8; /*0xe94*/
if ( *(_DWORD *)(a1 - 8) != 1096040787 ) /*0xeaa*/
{
DebugAssert( /*0xebf*/
"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c",
680,
"CR has Bad Signature");
Index = a1; /*0xec4*/
}
if ( !Index ) /*0xecd*/
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 681, "SataPrivateData"); /*0xee2*/
if ( a2 < *(_BYTE *)(a1 + 49) && a4 && !a3 ) /*0xefd*/
{
Ptr = a2; /*0xf03*/
Index = (unsigned __int64)a2 << 9; /*0xf09*/
v11 = 44 *Ptr; /*0xf0d*/
if ( !*(_BYTE *)(Ptr + Index + 4520) ) /*0xf11*/
return 0x8000000000000006uLL; /*0xf25*/
v13 = sub_161C(Ptr, 44); /*0xf33*/
if ( v13 ) /*0xf3b*/
v13 = FreePool(v13); /*0xf43*/
*(_QWORD *)a4 = v13; /*0xf48*/
if ( !v13 ) /*0xf4e*/
{
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 700, "((BOOLEAN)(0==1))"); /*0xf63*/
return 0x8000000000000009uLL; /*0xf72*/
}
v14 = sub_1050(Index + Index + 424, (Index + v11 + 76) & -(__int64)(*(_BYTE *)(v11 + Index + 72) != 0), &v20) < 0; /*0xf9e*/
v15 = *(_BYTE **)a4; /*0xfa1*/
if ( v14 ) /*0xfa4*/
{
*v15 = 0; /*0xfb6*/
}
else
{
v16 = v20; /*0xfa6*/
*v15 = 1; /*0xfab*/
*(_DWORD *)(*(_QWORD *)a4 + 4LL) = v16; /*0xfb1*/
}
v17 = (unsigned __int16 *)((Index + v11 + 100) & -(__int64)(*(_BYTE *)(v11 + Index + 96) != 0)); /*0xfc9*/
if ( (*(_BYTE *)(Index + Index + 530) & 4) != 0 ) /*0xfd4*/
{
Index = 0; /*0xfde*/
for ( i = (*(_WORD *)(Index + Index + 600) >> 1) & 0x1F; i; i >>= 1 ) /*0xfe9*/
++Index; /*0xfeb*/
if ( !v17 ) /*0xff6*/
goto LABEL_24; /*0xff6*/
if ( *v17 ) /*0xff8*/
{
if ( Index >= *v17 ) /*0x1001*/
Index = *v17 - 1; /*0x1006*/
LABEL_24:
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 1; /*0x1009*/
*(_DWORD *)(*(_QWORD *)a4 + 28LL) = Index; /*0x1016*/
return 0; /*0x1024*/
}
}
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 0; /*0x101e*/
return 0; /*0x101e*/
}
return 0x8000000000000002uLL; /*0x103f*/
}
// Function at 0x1010 unsigned __int64 SataIdentifyDevice(__int64 a1, unsigned __int8 a2, char a3, __int64 a4)
{
__int64 Index; // rdi __int64 Ptr; // rcx unsigned __int64 Index; // rbp __int64 v11; // rsi __int64 v13; // rax bool v14; // sf _BYTE *v15; // rax int v16; // ecx unsigned __int16 *v17; // rdx unsigned __int16 Index; // cx unsigned __int16 i; // ax unsigned __int16 v20; // [rsp+48h] [rbp+10h] BYREF Index = a1 - 8; /*0xe94*/
if ( *(_DWORD *)(a1 - 8) != 1096040787 ) /*0xeaa*/
{
DebugAssert( /*0xebf*/
"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c",
680,
"CR has Bad Signature");
Index = a1; /*0xec4*/
}
if ( !Index ) /*0xecd*/
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 681, "SataPrivateData"); /*0xee2*/
if ( a2 < *(_BYTE *)(a1 + 49) && a4 && !a3 ) /*0xefd*/
{
Ptr = a2; /*0xf03*/
Index = (unsigned __int64)a2 << 9; /*0xf09*/
v11 = 44 *Ptr; /*0xf0d*/
if ( !*(_BYTE *)(Ptr + Index + 4520) ) /*0xf11*/
return 0x8000000000000006uLL; /*0xf25*/
v13 = sub_161C(Ptr, 44); /*0xf33*/
if ( v13 ) /*0xf3b*/
v13 = FreePool(v13); /*0xf43*/
*(_QWORD *)a4 = v13; /*0xf48*/
if ( !v13 ) /*0xf4e*/
{
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 700, "((BOOLEAN)(0==1))"); /*0xf63*/
return 0x8000000000000009uLL; /*0xf72*/
}
v14 = sub_1050(Index + Index + 424, (Index + v11 + 76) & -(__int64)(*(_BYTE *)(v11 + Index + 72) != 0), &v20) < 0; /*0xf9e*/
v15 = *(_BYTE **)a4; /*0xfa1*/
if ( v14 ) /*0xfa4*/
{
*v15 = 0; /*0xfb6*/
}
else
{
v16 = v20; /*0xfa6*/
*v15 = 1; /*0xfab*/
*(_DWORD *)(*(_QWORD *)a4 + 4LL) = v16; /*0xfb1*/
}
v17 = (unsigned __int16 *)((Index + v11 + 100) & -(__int64)(*(_BYTE *)(v11 + Index + 96) != 0)); /*0xfc9*/
if ( (*(_BYTE *)(Index + Index + 530) & 4) != 0 ) /*0xfd4*/
{
Index = 0; /*0xfde*/
for ( i = (*(_WORD *)(Index + Index + 600) >> 1) & 0x1F; i; i >>= 1 ) /*0xfe9*/
++Index; /*0xfeb*/
if ( !v17 ) /*0xff6*/
goto LABEL_24; /*0xff6*/
if ( *v17 ) /*0xff8*/
{
if ( Index >= *v17 ) /*0x1001*/
Index = *v17 - 1; /*0x1006*/
LABEL_24:
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 1; /*0x1009*/
*(_DWORD *)(*(_QWORD *)a4 + 28LL) = Index; /*0x1016*/
return 0; /*0x1024*/
}
}
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 0; /*0x101e*/
return 0; /*0x101e*/
}
return 0x8000000000000002uLL; /*0x103f*/
}
// Function at 0x1020 unsigned __int64 SataIdentifyDevice(__int64 a1, unsigned __int8 a2, char a3, __int64 a4)
{
__int64 Index; // rdi __int64 Ptr; // rcx unsigned __int64 Index; // rbp __int64 v11; // rsi __int64 v13; // rax bool v14; // sf _BYTE *v15; // rax int v16; // ecx unsigned __int16 *v17; // rdx unsigned __int16 Index; // cx unsigned __int16 i; // ax unsigned __int16 v20; // [rsp+48h] [rbp+10h] BYREF Index = a1 - 8; /*0xe94*/
if ( *(_DWORD *)(a1 - 8) != 1096040787 ) /*0xeaa*/
{
DebugAssert( /*0xebf*/
"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c",
680,
"CR has Bad Signature");
Index = a1; /*0xec4*/
}
if ( !Index ) /*0xecd*/
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 681, "SataPrivateData"); /*0xee2*/
if ( a2 < *(_BYTE *)(a1 + 49) && a4 && !a3 ) /*0xefd*/
{
Ptr = a2; /*0xf03*/
Index = (unsigned __int64)a2 << 9; /*0xf09*/
v11 = 44 *Ptr; /*0xf0d*/
if ( !*(_BYTE *)(Ptr + Index + 4520) ) /*0xf11*/
return 0x8000000000000006uLL; /*0xf25*/
v13 = sub_161C(Ptr, 44); /*0xf33*/
if ( v13 ) /*0xf3b*/
v13 = FreePool(v13); /*0xf43*/
*(_QWORD *)a4 = v13; /*0xf48*/
if ( !v13 ) /*0xf4e*/
{
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 700, "((BOOLEAN)(0==1))"); /*0xf63*/
return 0x8000000000000009uLL; /*0xf72*/
}
v14 = sub_1050(Index + Index + 424, (Index + v11 + 76) & -(__int64)(*(_BYTE *)(v11 + Index + 72) != 0), &v20) < 0; /*0xf9e*/
v15 = *(_BYTE **)a4; /*0xfa1*/
if ( v14 ) /*0xfa4*/
{
*v15 = 0; /*0xfb6*/
}
else
{
v16 = v20; /*0xfa6*/
*v15 = 1; /*0xfab*/
*(_DWORD *)(*(_QWORD *)a4 + 4LL) = v16; /*0xfb1*/
}
v17 = (unsigned __int16 *)((Index + v11 + 100) & -(__int64)(*(_BYTE *)(v11 + Index + 96) != 0)); /*0xfc9*/
if ( (*(_BYTE *)(Index + Index + 530) & 4) != 0 ) /*0xfd4*/
{
Index = 0; /*0xfde*/
for ( i = (*(_WORD *)(Index + Index + 600) >> 1) & 0x1F; i; i >>= 1 ) /*0xfe9*/
++Index; /*0xfeb*/
if ( !v17 ) /*0xff6*/
goto LABEL_24; /*0xff6*/
if ( *v17 ) /*0xff8*/
{
if ( Index >= *v17 ) /*0x1001*/
Index = *v17 - 1; /*0x1006*/
LABEL_24:
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 1; /*0x1009*/
*(_DWORD *)(*(_QWORD *)a4 + 28LL) = Index; /*0x1016*/
return 0; /*0x1024*/
}
}
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 0; /*0x101e*/
return 0; /*0x101e*/
}
return 0x8000000000000002uLL; /*0x103f*/
}
// Function at 0x1030 unsigned __int64 SataIdentifyDevice(__int64 a1, unsigned __int8 a2, char a3, __int64 a4)
{
__int64 Index; // rdi __int64 Ptr; // rcx unsigned __int64 Index; // rbp __int64 v11; // rsi __int64 v13; // rax bool v14; // sf _BYTE *v15; // rax int v16; // ecx unsigned __int16 *v17; // rdx unsigned __int16 Index; // cx unsigned __int16 i; // ax unsigned __int16 v20; // [rsp+48h] [rbp+10h] BYREF Index = a1 - 8; /*0xe94*/
if ( *(_DWORD *)(a1 - 8) != 1096040787 ) /*0xeaa*/
{
DebugAssert( /*0xebf*/
"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c",
680,
"CR has Bad Signature");
Index = a1; /*0xec4*/
}
if ( !Index ) /*0xecd*/
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 681, "SataPrivateData"); /*0xee2*/
if ( a2 < *(_BYTE *)(a1 + 49) && a4 && !a3 ) /*0xefd*/
{
Ptr = a2; /*0xf03*/
Index = (unsigned __int64)a2 << 9; /*0xf09*/
v11 = 44 *Ptr; /*0xf0d*/
if ( !*(_BYTE *)(Ptr + Index + 4520) ) /*0xf11*/
return 0x8000000000000006uLL; /*0xf25*/
v13 = sub_161C(Ptr, 44); /*0xf33*/
if ( v13 ) /*0xf3b*/
v13 = FreePool(v13); /*0xf43*/
*(_QWORD *)a4 = v13; /*0xf48*/
if ( !v13 ) /*0xf4e*/
{
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 700, "((BOOLEAN)(0==1))"); /*0xf63*/
return 0x8000000000000009uLL; /*0xf72*/
}
v14 = sub_1050(Index + Index + 424, (Index + v11 + 76) & -(__int64)(*(_BYTE *)(v11 + Index + 72) != 0), &v20) < 0; /*0xf9e*/
v15 = *(_BYTE **)a4; /*0xfa1*/
if ( v14 ) /*0xfa4*/
{
*v15 = 0; /*0xfb6*/
}
else
{
v16 = v20; /*0xfa6*/
*v15 = 1; /*0xfab*/
*(_DWORD *)(*(_QWORD *)a4 + 4LL) = v16; /*0xfb1*/
}
v17 = (unsigned __int16 *)((Index + v11 + 100) & -(__int64)(*(_BYTE *)(v11 + Index + 96) != 0)); /*0xfc9*/
if ( (*(_BYTE *)(Index + Index + 530) & 4) != 0 ) /*0xfd4*/
{
Index = 0; /*0xfde*/
for ( i = (*(_WORD *)(Index + Index + 600) >> 1) & 0x1F; i; i >>= 1 ) /*0xfe9*/
++Index; /*0xfeb*/
if ( !v17 ) /*0xff6*/
goto LABEL_24; /*0xff6*/
if ( *v17 ) /*0xff8*/
{
if ( Index >= *v17 ) /*0x1001*/
Index = *v17 - 1; /*0x1006*/
LABEL_24:
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 1; /*0x1009*/
*(_DWORD *)(*(_QWORD *)a4 + 28LL) = Index; /*0x1016*/
return 0; /*0x1024*/
}
}
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 0; /*0x101e*/
return 0; /*0x101e*/
}
return 0x8000000000000002uLL; /*0x103f*/
}
// Function at 0x1040 unsigned __int64 SataIdentifyDevice(__int64 a1, unsigned __int8 a2, char a3, __int64 a4)
{
__int64 Index; // rdi __int64 Ptr; // rcx unsigned __int64 Index; // rbp __int64 v11; // rsi __int64 v13; // rax bool v14; // sf _BYTE *v15; // rax int v16; // ecx unsigned __int16 *v17; // rdx unsigned __int16 Index; // cx unsigned __int16 i; // ax unsigned __int16 v20; // [rsp+48h] [rbp+10h] BYREF Index = a1 - 8; /*0xe94*/
if ( *(_DWORD *)(a1 - 8) != 1096040787 ) /*0xeaa*/
{
DebugAssert( /*0xebf*/
"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c",
680,
"CR has Bad Signature");
Index = a1; /*0xec4*/
}
if ( !Index ) /*0xecd*/
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 681, "SataPrivateData"); /*0xee2*/
if ( a2 < *(_BYTE *)(a1 + 49) && a4 && !a3 ) /*0xefd*/
{
Ptr = a2; /*0xf03*/
Index = (unsigned __int64)a2 << 9; /*0xf09*/
v11 = 44 *Ptr; /*0xf0d*/
if ( !*(_BYTE *)(Ptr + Index + 4520) ) /*0xf11*/
return 0x8000000000000006uLL; /*0xf25*/
v13 = sub_161C(Ptr, 44); /*0xf33*/
if ( v13 ) /*0xf3b*/
v13 = FreePool(v13); /*0xf43*/
*(_QWORD *)a4 = v13; /*0xf48*/
if ( !v13 ) /*0xf4e*/
{
DebugAssert("e:\\hs\\PurleySktPkg\\SouthClusterLbg\\SataController\\Dxe\\SataController.c", 700, "((BOOLEAN)(0==1))"); /*0xf63*/
return 0x8000000000000009uLL; /*0xf72*/
}
v14 = sub_1050(Index + Index + 424, (Index + v11 + 76) & -(__int64)(*(_BYTE *)(v11 + Index + 72) != 0), &v20) < 0; /*0xf9e*/
v15 = *(_BYTE **)a4; /*0xfa1*/
if ( v14 ) /*0xfa4*/
{
*v15 = 0; /*0xfb6*/
}
else
{
v16 = v20; /*0xfa6*/
*v15 = 1; /*0xfab*/
*(_DWORD *)(*(_QWORD *)a4 + 4LL) = v16; /*0xfb1*/
}
v17 = (unsigned __int16 *)((Index + v11 + 100) & -(__int64)(*(_BYTE *)(v11 + Index + 96) != 0)); /*0xfc9*/
if ( (*(_BYTE *)(Index + Index + 530) & 4) != 0 ) /*0xfd4*/
{
Index = 0; /*0xfde*/
for ( i = (*(_WORD *)(Index + Index + 600) >> 1) & 0x1F; i; i >>= 1 ) /*0xfe9*/
++Index; /*0xfeb*/
if ( !v17 ) /*0xff6*/
goto LABEL_24; /*0xff6*/
if ( *v17 ) /*0xff8*/
{
if ( Index >= *v17 ) /*0x1001*/
Index = *v17 - 1; /*0x1006*/
LABEL_24:
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 1; /*0x1009*/
*(_DWORD *)(*(_QWORD *)a4 + 28LL) = Index; /*0x1016*/
return 0; /*0x1024*/
}
}
*(_BYTE *)(*(_QWORD *)a4 + 24LL) = 0; /*0x101e*/
return 0; /*0x101e*/
}
return 0x8000000000000002uLL; /*0x103f*/
}
// Function at 0x1050 unsigned __int64 CalculateBestPioMode(__int64 a1, unsigned __int16 *a2, unsigned __int16 *a3)
{
unsigned __int16 n2; // r9 __int16 n255; // bx unsigned __int16 v6; // cx __int16 i; // ax unsigned __int16 n2_1; // ax unsigned __int16 n4; // cx unsigned __int16 n0xF0; // ax unsigned __int16 n4_1; // ax n2 = *(unsigned __int8 *)(a1 + 103); /*0x1069*/
n255 = 255; /*0x107f*/
if ( (*(_BYTE *)(a1 + 106) & 2) == 0 ) /*0x1087*/
{
if ( a2 ) /*0x1149*/
{
if ( *a2 < 2u ) /*0x114e*/
return 0x8000000000000003uLL; /*0x114e*/
if ( n2 == *a2 ) /*0x1154*/
--n2; /*0x115b*/
}
if ( n2 >= 2u ) /*0x1163*/
{
*a3 = 2; /*0x1170*/
goto LABEL_32; /*0x1170*/
}
goto LABEL_30; /*0x1163*/
}
v6 = *(_WORD *)(a1 + 128); /*0x108d*/
for ( i = 0; (unsigned __int16)i < 8u; ++i ) /*0x109a*/
{
if ( (v6 & 1) != 0 ) /*0x10a0*/
n255 = i; /*0x10a0*/
v6 >>= 1; /*0x10a4*/
}
n2_1 = n255 + 3; /*0x10b9*/
if ( n255 == 255 ) /*0x10bc*/
n2_1 = n2; /*0x10bc*/
n4 = 4; /*0x10c9*/
if ( n2_1 < 4u ) /*0x10cc*/
n4 = n2_1; /*0x10cc*/
n0xF0 = *(_WORD *)(a1 + 136); /*0x10d0*/
if ( n0xF0 > 0x78u ) /*0x10db*/
{
if ( n0xF0 > 0xB4u ) /*0x10f2*/
{
if ( n0xF0 > 0xF0u ) /*0x1107*/
{
n4 = 0; /*0x1112*/
}
else if ( n4 > 2u ) /*0x110c*/
{
n4 = 2; /*0x110c*/
}
}
else if ( n4 > 3u ) /*0x10f7*/
{
n4 = 3; /*0x10f7*/
}
}
if ( a2 ) /*0x1119*/
{
n4_1 = *a2; /*0x111b*/
if ( *a2 < 2u ) /*0x1122*/
return 0x8000000000000003uLL; /*0x112e*/
if ( n4 >= n4_1 ) /*0x1133*/
n4 = n4_1 - 1; /*0x1138*/
}
if ( n4 < 2u ) /*0x113e*/
{
LABEL_30:
*a3 = 1; /*0x116a*/
goto LABEL_32; /*0x116e*/
}
*a3 = n4; /*0x1140*/
LABEL_32:
DebugPrintVarArg(0x80000000LL, "CalculateBestPioMode() End\n"); /*0x1174*/
return 0; /*0x119b*/
}
// Function at 0x10b0 unsigned __int64 CalculateBestPioMode(__int64 a1, unsigned __int16 *a2, unsigned __int16 *a3)
{
unsigned __int16 n2; // r9 __int16 n255; // bx unsigned __int16 v6; // cx __int16 i; // ax unsigned __int16 n2_1; // ax unsigned __int16 n4; // cx unsigned __int16 n0xF0; // ax unsigned __int16 n4_1; // ax n2 = *(unsigned __int8 *)(a1 + 103); /*0x1069*/
n255 = 255; /*0x107f*/
if ( (*(_BYTE *)(a1 + 106) & 2) == 0 ) /*0x1087*/
{
if ( a2 ) /*0x1149*/
{
if ( *a2 < 2u ) /*0x114e*/
return 0x8000000000000003uLL; /*0x114e*/
if ( n2 == *a2 ) /*0x1154*/
--n2; /*0x115b*/
}
if ( n2 >= 2u ) /*0x1163*/
{
*a3 = 2; /*0x1170*/
goto LABEL_32; /*0x1170*/
}
goto LABEL_30; /*0x1163*/
}
v6 = *(_WORD *)(a1 + 128); /*0x108d*/
for ( i = 0; (unsigned __int16)i < 8u; ++i ) /*0x109a*/
{
if ( (v6 & 1) != 0 ) /*0x10a0*/
n255 = i; /*0x10a0*/
v6 >>= 1; /*0x10a4*/
}
n2_1 = n255 + 3; /*0x10b9*/
if ( n255 == 255 ) /*0x10bc*/
n2_1 = n2; /*0x10bc*/
n4 = 4; /*0x10c9*/
if ( n2_1 < 4u ) /*0x10cc*/
n4 = n2_1; /*0x10cc*/
n0xF0 = *(_WORD *)(a1 + 136); /*0x10d0*/
if ( n0xF0 > 0x78u ) /*0x10db*/
{
if ( n0xF0 > 0xB4u ) /*0x10f2*/
{
if ( n0xF0 > 0xF0u ) /*0x1107*/
{
n4 = 0; /*0x1112*/
}
else if ( n4 > 2u ) /*0x110c*/
{
n4 = 2; /*0x110c*/
}
}
else if ( n4 > 3u ) /*0x10f7*/
{
n4 = 3; /*0x10f7*/
}
}
if ( a2 ) /*0x1119*/
{
n4_1 = *a2; /*0x111b*/
if ( *a2 < 2u ) /*0x1122*/
return 0x8000000000000003uLL; /*0x112e*/
if ( n4 >= n4_1 ) /*0x1133*/
n4 = n4_1 - 1; /*0x1138*/
}
if ( n4 < 2u ) /*0x113e*/
{
LABEL_30:
*a3 = 1; /*0x116a*/
goto LABEL_32; /*0x116e*/
}
*a3 = n4; /*0x1140*/
LABEL_32:
DebugPrintVarArg(0x80000000LL, "CalculateBestPioMode() End\n"); /*0x1174*/
return 0; /*0x119b*/
}
// Function at 0x1124 unsigned __int64 CalculateBestPioMode(__int64 a1, unsigned __int16 *a2, unsigned __int16 *a3)
{
unsigned __int16 n2; // r9 __int16 n255; // bx unsigned __int16 v6; // cx __int16 i; // ax unsigned __int16 n2_1; // ax unsigned __int16 n4; // cx unsigned __int16 n0xF0; // ax unsigned __int16 n4_1; // ax n2 = *(unsigned __int8 *)(a1 + 103); /*0x1069*/
n255 = 255; /*0x107f*/
if ( (*(_BYTE *)(a1 + 106) & 2) == 0 ) /*0x1087*/
{
if ( a2 ) /*0x1149*/
{
if ( *a2 < 2u ) /*0x114e*/
return 0x8000000000000003uLL; /*0x114e*/
if ( n2 == *a2 ) /*0x1154*/
--n2; /*0x115b*/
}
if ( n2 >= 2u ) /*0x1163*/
{
*a3 = 2; /*0x1170*/
goto LABEL_32; /*0x1170*/
}
goto LABEL_30; /*0x1163*/
}
v6 = *(_WORD *)(a1 + 128); /*0x108d*/
for ( i = 0; (unsigned __int16)i < 8u; ++i ) /*0x109a*/
{
if ( (v6 & 1) != 0 ) /*0x10a0*/
n255 = i; /*0x10a0*/
v6 >>= 1; /*0x10a4*/
}
n2_1 = n255 + 3; /*0x10b9*/
if ( n255 == 255 ) /*0x10bc*/
n2_1 = n2; /*0x10bc*/
n4 = 4; /*0x10c9*/
if ( n2_1 < 4u ) /*0x10cc*/
n4 = n2_1; /*0x10cc*/
n0xF0 = *(_WORD *)(a1 + 136); /*0x10d0*/
if ( n0xF0 > 0x78u ) /*0x10db*/
{
if ( n0xF0 > 0xB4u ) /*0x10f2*/
{
if ( n0xF0 > 0xF0u ) /*0x1107*/
{
n4 = 0; /*0x1112*/
}
else if ( n4 > 2u ) /*0x110c*/
{
n4 = 2; /*0x110c*/
}
}
else if ( n4 > 3u ) /*0x10f7*/
{
n4 = 3; /*0x10f7*/
}
}
if ( a2 ) /*0x1119*/
{
n4_1 = *a2; /*0x111b*/
if ( *a2 < 2u ) /*0x1122*/
return 0x8000000000000003uLL; /*0x112e*/
if ( n4 >= n4_1 ) /*0x1133*/
n4 = n4_1 - 1; /*0x1138*/
}
if ( n4 < 2u ) /*0x113e*/
{
LABEL_30:
*a3 = 1; /*0x116a*/
goto LABEL_32; /*0x116e*/
}
*a3 = n4; /*0x1140*/
LABEL_32:
DebugPrintVarArg(0x80000000LL, "CalculateBestPioMode() End\n"); /*0x1174*/
return 0; /*0x119b*/
}
// Function at 0x114c unsigned __int64 CalculateBestPioMode(__int64 a1, unsigned __int16 *a2, unsigned __int16 *a3)
{
unsigned __int16 n2; // r9 __int16 n255; // bx unsigned __int16 v6; // cx __int16 i; // ax unsigned __int16 n2_1; // ax unsigned __int16 n4; // cx unsigned __int16 n0xF0; // ax unsigned __int16 n4_1; // ax n2 = *(unsigned __int8 *)(a1 + 103); /*0x1069*/
n255 = 255; /*0x107f*/
if ( (*(_BYTE *)(a1 + 106) & 2) == 0 ) /*0x1087*/
{
if ( a2 ) /*0x1149*/
{
if ( *a2 < 2u ) /*0x114e*/
return 0x8000000000000003uLL; /*0x114e*/
if ( n2 == *a2 ) /*0x1154*/
--n2; /*0x115b*/
}
if ( n2 >= 2u ) /*0x1163*/
{
*a3 = 2; /*0x1170*/
goto LABEL_32; /*0x1170*/
}
goto LABEL_30; /*0x1163*/
}
v6 = *(_WORD *)(a1 + 128); /*0x108d*/
for ( i = 0; (unsigned __int16)i < 8u; ++i ) /*0x109a*/
{
if ( (v6 & 1) != 0 ) /*0x10a0*/
n255 = i; /*0x10a0*/
v6 >>= 1; /*0x10a4*/
}
n2_1 = n255 + 3; /*0x10b9*/
if ( n255 == 255 ) /*0x10bc*/
n2_1 = n2; /*0x10bc*/
n4 = 4; /*0x10c9*/
if ( n2_1 < 4u ) /*0x10cc*/
n4 = n2_1; /*0x10cc*/
n0xF0 = *(_WORD *)(a1 + 136); /*0x10d0*/
if ( n0xF0 > 0x78u ) /*0x10db*/
{
if ( n0xF0 > 0xB4u ) /*0x10f2*/
{
if ( n0xF0 > 0xF0u ) /*0x1107*/
{
n4 = 0; /*0x1112*/
}
else if ( n4 > 2u ) /*0x110c*/
{
n4 = 2; /*0x110c*/
}
}
else if ( n4 > 3u ) /*0x10f7*/
{
n4 = 3; /*0x10f7*/
}
}
if ( a2 ) /*0x1119*/
{
n4_1 = *a2; /*0x111b*/
if ( *a2 < 2u ) /*0x1122*/
return 0x8000000000000003uLL; /*0x112e*/
if ( n4 >= n4_1 ) /*0x1133*/
n4 = n4_1 - 1; /*0x1138*/
}
if ( n4 < 2u ) /*0x113e*/
{
LABEL_30:
*a3 = 1; /*0x116a*/
goto LABEL_32; /*0x116e*/
}
*a3 = n4; /*0x1140*/
LABEL_32:
DebugPrintVarArg(0x80000000LL, "CalculateBestPioMode() End\n"); /*0x1174*/
return 0; /*0x119b*/
}
// Function at 0x1548 char DebugPrintVarArg(__int64 a1, __int64 a2, ...)
{
__int64 Result; // rax __int64 v4; // r8 __int64 ( **v5)(__int64, __int64, __int64 *); // r9 unsigned __int8 v6; // al char n3; // al char n3_1; // cl va_list va; // [rsp+40h] [rbp+18h] BYREF va_start(va, a2);
Result = sub_146C(); /*0x1503*/
v4 = 0; /*0x1508*/
v5 = (__int64 ( **)(__int64, __int64, __int64 *))Result; /*0x150b*/
if ( Result ) /*0x1511*/
{
v6 = __inbyte(0x70u); /*0x1517*/
__outbyte(0x70u, v6 & 0x80 | 0x4B); /*0x151c*/
n3 = __inbyte(0x71u); /*0x1521*/
n3_1 = n3; /*0x1522*/
if ( (unsigned __int8)n3 > 3u ) /*0x1528*/
{
n3_1 = n3; /*0x152a*/
if ( !n3 ) /*0x1532*/
n3_1 = MEMORY[0xFDAF0490] & 2 | 1; /*0x153e*/
}
LOBYTE(Result) = n3_1 - 1; /*0x1542*/
if ( (unsigned __int8)(n3_1 - 1) <= 0xFDu ) /*0x1546*/
{
LOBYTE(Result) = 4; /*0x154a*/
v4 = 2147483718LL; /*0x154f*/
if ( n3_1 == 1 ) /*0x1555*/
v4 = 2147483652LL; /*0x1555*/
}
if ( (v4 & a1) != 0 ) /*0x155c*/
LOBYTE(Result) = (*v5)(a1, a2, (__int64 *)va); /*0x156b*/
}
return Result; /*0x156e*/
}
// Function at 0x16cc bool InternalCompare24BitValue(_DWORD *a1, _DWORD *a2)
{
int Result; // ebx if ( !a1 ) /*0x16a3*/
DebugAssert("e:\\hs\\MdePkg\\Library\\BaseLib\\Unaligned.c", 89, "Buffer != ((void *) 0)"); /*0x16b6*/
Result = *a1 & 0xFFFFFF; /*0x16bd*/
if ( !a2 ) /*0x16c6*/
DebugAssert("e:\\hs\\MdePkg\\Library\\BaseLib\\Unaligned.c", 89, "Buffer != ((void *) 0)"); /*0x16d9*/
return Result == (*a2 & 0xFFFFFF); /*0x16ef*/
}
// Function at 0x1870 __int64 InternalRegisterProtocolNotify(__int64 a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5)
{
__int64 Status; // rax __int64 Status; // rax if ( !a5 ) /*0x17cc*/
DebugAssert("e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 154, "Registration != ((void *) 0)"); /*0x17e1*/
Status = (*(__int64 ( **)(__int64, __int64, __int64 ( *)()))(qword_4470 + 80))(512, 8, BootScriptNotifyDxeSmmReadyToLock); /*0x180a*/
if ( Status < 0 ) /*0x1815*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x1823*/
DebugAssert("e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 167, "!EFI_ERROR (Status)"); /*0x183b*/
}
Status = (*(__int64 ( **)(void *, __int64, __int64))(qword_4470 + 168))(&unk_42A0, a4, a5); /*0x1858*/
if ( Status < 0 ) /*0x1861*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x1870*/
DebugAssert("e:\\hs\\MdePkg\\Library\\UefiLib\\UefiLib.c", 179, "!EFI_ERROR (Status)"); /*0x1888*/
}
(*(void ( **)(__int64))(qword_4470 + 104))(a4); /*0x1899*/
return a4; /*0x18a1*/
}
// Function at 0x18f8 unsigned __int64 InternalConfigStringLookup(_DWORD *a1, _BYTE *a2, __int64 a3, _QWORD *a4, char a5)
{
__int64 v6; // rsi _DWORD *v7; // rbx char i; // al __int64 Index; // rdi char n59_2; // al _BYTE *v13; // rbx char n59; // al __int64 Index; // rdi char n59_1; // cl _BYTE *v17; // rdx v6 = a3; /*0x18c4*/
v7 = a2; /*0x18c7*/
if ( !a4 ) /*0x18d0*/
return 0x8000000000000002uLL; /*0x18d2*/
if ( a2 && a3 ) /*0x18ed*/
{
for ( i = *a2; i; i = *(_BYTE *)v7 ) /*0x18f3*/
{
if ( a5 ) /*0x1902*/
{
if ( sub_1690(a1, v7) ) /*0x190a*/
goto LABEL_20; /*0x1911*/
v7 = (_DWORD *)((char *)v7 + 3); /*0x1913*/
}
else
{
Index = 0; /*0x1919*/
while ( i && i != 59 ) /*0x191f*/
i = *((_BYTE *)v7 + ++Index); /*0x1924*/
if ( !sub_2924(v7, a1, Index) && !*((_BYTE *)a1 + Index) ) /*0x1941*/
{
LABEL_20:
v13 = *(_BYTE **)v6; /*0x195d*/
if ( !*(_QWORD *)v6 ) /*0x1963*/
return 0x8000000000000003uLL; /*0x1963*/
n59 = *v13; /*0x1965*/
while ( 1 ) /*0x19aa*/
{
if ( !n59 ) /*0x19ac*/
{
LABEL_32:
v6 += 16; /*0x19ae*/
goto LABEL_20; /*0x19b2*/
}
Index = 0; /*0x1969*/
while ( n59 && n59 != 59 ) /*0x196f*/
n59 = v13[++Index]; /*0x1974*/
if ( !sub_2924(v13, a1, Index) ) /*0x1984*/
break; /*0x1984*/
v13 += Index; /*0x198e*/
n59 = *v13; /*0x1991*/
if ( !*v13 ) /*0x1995*/
goto LABEL_32; /*0x1995*/
n59_1 = *v13; /*0x1997*/
v17 = v13; /*0x1999*/
do /*0x19a4*/
{
if ( n59_1 != 59 ) /*0x199f*/
break; /*0x199f*/
n59_1 = *++v17; /*0x19a4*/
}
while ( *v17 ); /*0x19a4*/
}
*a4 = *(_QWORD *)(v6 + 8); /*0x19b8*/
return 0; /*0x19bd*/
}
v7 = (_DWORD *)((char *)v7 + Index); /*0x1943*/
n59_2 = *(_BYTE *)v7; /*0x1946*/
if ( !*(_BYTE *)v7 ) /*0x194a*/
return 0x8000000000000003uLL; /*0x194a*/
do /*0x1953*/
{
if ( n59_2 != 59 ) /*0x194e*/
break; /*0x194e*/
v7 = (_DWORD *)((char *)v7 + 1); /*0x1950*/
n59_2 = *(_BYTE *)v7; /*0x1953*/
}
while ( *(_BYTE *)v7 ); /*0x1953*/
}
}
}
return 0x8000000000000003uLL; /*0x19dd*/
}
// Function at 0x1a54 __int64 InternalGetHobList()
{
__int64 result; // rax __int64 Status; // rax result = qword_4490; /*0x19e8*/
if ( !qword_4490 ) /*0x19f2*/
{
Status = GetSystemConfigurationTable(&unk_4310, &qword_4490); /*0x1a02*/
if ( Status < 0 ) /*0x1a0a*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x1a1b*/
DebugAssert("e:\\hs\\MdePkg\\Library\\DxeHobLib\\HobLib.c", 54, "!EFI_ERROR (Status)"); /*0x1a33*/
}
result = qword_4490; /*0x1a38*/
if ( !qword_4490 ) /*0x1a42*/
{
DebugAssert("e:\\hs\\MdePkg\\Library\\DxeHobLib\\HobLib.c", 55, "mHobList != ((void *) 0)"); /*0x1a55*/
return qword_4490; /*0x1a5a*/
}
}
return result; /*0x1a61*/
}
// Function at 0x1c08 __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1cec __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1e40 __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1eac __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1f14 __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1f44 __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1f78 __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1fb8 __int64 BootScriptWriteEntry()
{
__int64 v0; // rax __int64 v1; // rax __int64 v2; // rax __int64 v3; // rax __int64 v4; // rax __int64 v5; // rbx __int64 v6; // rax __int64 v7; // rbx __int64 v8; // rax __int64 v9; // rbx __int64 v10; // rbx int n7777; // r9d unsigned int *v12; // rcx __int64 v13; // r8 unsigned int *v14; // rdx __int64 v15; // rax __int64 v16; // rdi unsigned int *v17; // rcx __int64 v18; // r10 __int64 v19; // r9 unsigned int *v20; // rdx __int64 v21; // r8 int n7777_1; // r11d __int64 v23; // rax __int64 v24; // rax __int64 v25; // rax __int64 v26; // rax __int64 result; // rax __int64 v28; // [rsp+30h] [rbp-30h] BYREF char v29[8]; // [rsp+38h] [rbp-28h] BYREF _DWORD v30[4]; // [rsp+40h] [rbp-20h] BYREF _DWORD v31[4]; // [rsp+50h] [rbp-10h] BYREF char v32; // [rsp+A0h] [rbp+40h] BYREF __int64 v33; // [rsp+A8h] [rbp+48h] BYREF unsigned int *v34; // [rsp+B0h] [rbp+50h] BYREF __int64 v35; // [rsp+B8h] [rbp+58... [8923 chars total]
// Function at 0x1fe8 __int64 BootScriptCloseCallback()
{
__int64 result; // rax char v1; // [rsp+40h] [rbp+18h] BYREF result = (*(__int64 ( **)(void *, _QWORD, char *))(qword_4470 + 320))(&unk_42A0, 0, &v1); /*0x1ffd*/
if ( result >= 0 ) /*0x2006*/
{
result = qword_44F8; /*0x2008*/
if ( !*(_BYTE *)(qword_44F8 + 20) ) /*0x200f*/
{
sub_1A68(); /*0x2015*/
*(_BYTE *)(qword_44F8 + 20) = 1; /*0x2021*/
return sub_1AC4(); /*0x2025*/
}
}
return result; /*0x202a*/
}
// Function at 0x2028 __int64 BootScriptCloseCallback()
{
__int64 result; // rax char v1; // [rsp+40h] [rbp+18h] BYREF result = (*(__int64 ( **)(void *, _QWORD, char *))(qword_4470 + 320))(&unk_42A0, 0, &v1); /*0x1ffd*/
if ( result >= 0 ) /*0x2006*/
{
result = qword_44F8; /*0x2008*/
if ( !*(_BYTE *)(qword_44F8 + 20) ) /*0x200f*/
{
sub_1A68(); /*0x2015*/
*(_BYTE *)(qword_44F8 + 20) = 1; /*0x2021*/
return sub_1AC4(); /*0x2025*/
}
}
return result; /*0x202a*/
}
// Function at 0x2060 __int64 BootScriptSwitchBuffer()
{
__int64 v0; // rax if ( qword_44F8 != qword_4500 ) /*0x2042*/
{
BootScriptNotifyDxeSmmReadyToLock(0, 0); /*0x2048*/
v0 = qword_4500; /*0x204d*/
if ( !*(_QWORD *)qword_4500 ) /*0x2054*/
{
CopyMem(qword_4500, qword_44F8, 32); /*0x206a*/
v0 = qword_4500; /*0x206f*/
*(_BYTE *)(qword_4500 + 14) = 1; /*0x2076*/
}
qword_44F8 = v0; /*0x207a*/
}
return 0; /*0x2083*/
}
// Function at 0x20ac __int64 BootScriptCloseAndFlush()
{
__int64 v0; // rdx __int64 Status; // rax __int64 Status; // rax __int64 result; // rax v0 = qword_44F8; /*0x208e*/
*(_BYTE *)(qword_44F8 + 21) = 1; /*0x20a2*/
Status = SaveLockBox(&unk_4408, v0, 32); /*0x20a6*/
if ( Status < 0 ) /*0x20b3*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x20c1*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 508, "!EFI_ERROR (Status)"); /*0x20d9*/
}
Status = SetLockBoxAttributes(&unk_4408); /*0x20e5*/
if ( Status < 0 ) /*0x20ed*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x20fc*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 511, "!EFI_ERROR (Status)"); /*0x2114*/
}
result = qword_44F8; /*0x2119*/
*(_BYTE *)(qword_44F8 + 21) = 0; /*0x2120*/
return result; /*0x2124*/
}
// Function at 0x2134 __int64 BootScriptOpen()
{
__int64 Status; // rax __int64 Status; // rax if ( !*(_BYTE *)(qword_44F8 + 15) ) /*0x2139*/
{
*(_DWORD *)(qword_44F8 + 16) = *(_DWORD *)(qword_44F8 + 8) + 3; /*0x2149*/
Status = sub_2E18(); /*0x214c*/
if ( Status < 0 ) /*0x2159*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2167*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 473, "!EFI_ERROR (Status)"); /*0x217f*/
}
Status = SaveLockBox(&unk_4418, *(_QWORD *)qword_44F8, *(unsigned int *)(qword_44F8 + 16)); /*0x2199*/
if ( Status < 0 ) /*0x21a1*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x21b0*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 484, "!EFI_ERROR (Status)"); /*0x21c8*/
}
*(_BYTE *)(qword_44F8 + 15) = 1; /*0x21d4*/
sub_2088(); /*0x21d8*/
}
return 0; /*0x21df*/
}
// Function at 0x21b4 __int64 BootScriptOpen()
{
__int64 Status; // rax __int64 Status; // rax if ( !*(_BYTE *)(qword_44F8 + 15) ) /*0x2139*/
{
*(_DWORD *)(qword_44F8 + 16) = *(_DWORD *)(qword_44F8 + 8) + 3; /*0x2149*/
Status = sub_2E18(); /*0x214c*/
if ( Status < 0 ) /*0x2159*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2167*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 473, "!EFI_ERROR (Status)"); /*0x217f*/
}
Status = sub_2BA8(&unk_4418, *(_QWORD *)qword_44F8, *(unsigned int *)(qword_44F8 + 16)); /*0x2199*/
if ( Status < 0 ) /*0x21a1*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x21b0*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 484, "!EFI_ERROR (Status)"); /*0x21c8*/
}
*(_BYTE *)(qword_44F8 + 15) = 1; /*0x21d4*/
sub_2088(); /*0x21d8*/
}
return 0; /*0x21df*/
}
// Function at 0x21f4 __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x2200 __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x2228 __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x22ec __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x231c __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x23a0 __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x23f0 __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x23f8 __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x240c __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x247c __int64 BootScriptLibInitialize(__int64 a1, __int64 a2)
{
__int64 Ptr; // rax __int64 v3; // rbx __int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 v7; // rdx __int64 v8; // rcx __int64 v9; // r8 __int64 v10; // r9 __int64 v11; // rax __int64 v12; // rax __int64 Status; // rax __int64 v14; // rbx __int64 v15; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax char v21[16]; // [rsp+30h] [rbp-10h] BYREF __int64 v22; // [rsp+80h] [rbp+40h] BYREF __int64 v23; // [rsp+88h] [rbp+48h] BYREF __int64 v24; // [rsp+90h] [rbp+50h] BYREF __int64 ( **v25)(_QWORD, __int64 *); // [rsp+98h] [rbp+58h] BYREF v23 = a2; /*0x21e8*/
v22 = a1; /*0x21ed*/
Ptr = GetPcdProtocol(); /*0x2203*/
v3 = (*(__int64 ( **)(__int64))(Ptr + 32))(137); /*0x2228*/
if ( !v3 ) /*0x2235*/
{
v24 = 0xFFFFFFFFLL; /*0x2243*/
Status = (*(__int64 ( **)(__int64, _QWORD, __int64, __int64 *))(qword_4470 + 40))(1, 0, 1, &v24); /*0x2257*/
if ( Status < 0 ) /*0x225d*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2268*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 586, "!EFI_ERROR (Status)"); /*0x2278*/
}
v3 = v24; /*0x227d*/
byte_44A0 = 1; /*0x2281*/
v5 = GetPcdProtocol(); /*0x2288*/
Status = (*(__int64 ( **)(__int64, __int64))(v5 + 144))(137, v3); /*0x2293*/
if ( Status < 0 ) /*0x229c*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x22a7*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 591, "!EFI_ERROR (Status)"); /*0x22b7*/
}
FreePool(v3); /*0x22c4*/
qword_44A8 = RegisterProtocolNotify(v8, v7, v9, v10, (__int64)v21); /*0x22d7*/
if ( !qword_44A8 ) /*0x22e1*/
DebugAssert( /*0x22f2*/
"e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c",
603,
"mEventDxeSmmReadyToLock != ((void *) 0)");
}
qword_44F8 = v3; /*0x2304*/
if ( (*(__int64 ( **)(void *, _QWORD, __int64 ( ***)(_QWORD, __int64 *)))(qword_4470 + 320))( /*0x2355*/
&unk_4350,
0,
&v25) >= 0
&& (*v25)(v25, &v23) >= 0
&& (_BYTE)v23
&& v25[1](v25, &qword_44B0) >= 0 )
{
v11 = GetPcdProtocol(); /*0x235b*/
v12 = (*(__int64 ( **)(__int64))(v11 + 32))(138); /*0x2369*/
v22 = v12; /*0x236c*/
if ( !v12 ) /*0x2373*/
{
Status = (*(__int64 ( **)(__int64, __int64, __int64 *))(qword_44B0 + 80))(6, 32, &v22); /*0x238a*/
if ( Status < 0 ) /*0x2390*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x239b*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 639, "!EFI_ERROR (Status)"); /*0x23ab*/
}
v14 = v22; /*0x23b0*/
byte_44C8 = 1; /*0x23b4*/
v15 = GetPcdProtocol(); /*0x23bb*/
Status = (*(__int64 ( **)(__int64, __int64))(v15 + 144))(138, v14); /*0x23c6*/
if ( Status < 0 ) /*0x23cf*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x23da*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 643, "!EFI_ERROR (Status)"); /*0x23ea*/
}
FreePool(v22); /*0x23f8*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x2419*/
&unk_42B0,
sub_212C,
&qword_44B8);
if ( Status < 0 ) /*0x2422*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x242d*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 654, "!EFI_ERROR (Status)"); /*0x243d*/
}
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x245e*/
&unk_4280,
sub_212C,
&qword_4498);
if ( Status < 0 ) /*0x2467*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2472*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 661, "!EFI_ERROR (Status)"); /*0x2482*/
}
v12 = v22; /*0x2487*/
}
qword_4500 = v12; /*0x248b*/
Status = (*(__int64 ( **)(void *, __int64 (*)(), __int64 *))(qword_44B0 + 192))( /*0x24ae*/
&unk_4300,
sub_2030,
&qword_44C0);
if ( Status < 0 ) /*0x24b7*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x24c2*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 673, "!EFI_ERROR (Status)"); /*0x24d2*/
}
}
return 0; /*0x24d9*/
}
// Function at 0x2560 __int64 BootScriptLibUninitialize(__int64 a1, __int64 a2, double a3, double a4)
{
__int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 v10; // rax __int64 Status; // rax __int64 Status; // rax __int64 v13; // rax __int64 Status; // rax DebugPrintVarArg(64, (__int64)"%a() in %a module\n", a3, a4); /*0x2517*/
if ( qword_44A8 ) /*0x2540*/
{
Status = (*(__int64 (**)(void))(qword_4470 + 112))(); /*0x2549*/
if ( Status < 0 ) /*0x254f*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2559*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 707, "!EFI_ERROR (Status)"); /*0x2569*/
}
}
v5 = qword_44B0; /*0x256e*/
if ( qword_44B0 ) /*0x2578*/
{
if ( qword_44B8 ) /*0x2586*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(qword_44B0 + 192))(&unk_42B0, 0, &qword_44B8); /*0x2598*/
if ( Status < 0 ) /*0x25a1*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25ac*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 720, "!EFI_ERROR (Status)"); /*0x25bc*/
}
v5 = qword_44B0; /*0x25c1*/
}
if ( qword_4498 ) /*0x25d0*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4280, 0, &qword_4498); /*0x25e2*/
if ( Status < 0 ) /*0x25eb*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25f6*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 731, "!EFI_ERROR (Status)"); /*0x2606*/
}
v5 = qword_44B0; /*0x260b*/
}
if ( qword_44C0 ) /*0x261a*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4300, 0, &qword_44C0); /*0x262c*/
if ( Status < 0 ) /*0x2635*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2640*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 742, "!EFI_ERROR (Status)"); /*0x2650*/
}
v5 = qword_44B0; /*0x2655*/
}
}
if ( byte_44A0 ) /*0x2663*/
{
Status = (*(__int64 ( **)(__int64, __int64))(qword_4470 + 48))(qword_44F8, 1); /*0x2678*/
if ( Status < 0 ) /*0x267e*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2689*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 751, "!EFI_ERROR (Status)"); /*0x2699*/
}
v10 = GetPcdProtocol(); /*0x269e*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v10 + 144))(137, 0); /*0x26aa*/
if ( Status < 0 ) /*0x26b3*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x26be*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 753, "!EFI_ERROR (Status)"); /*0x26ce*/
}
v5 = qword_44B0; /*0x26d3*/
}
if ( v5 && byte_44C8 ) /*0x26e6*/
{
Status = (*(__int64 ( **)(__int64))(v5 + 88))(qword_4500); /*0x26ef*/
if ( Status < 0 ) /*0x26f5*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2700*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 757, "!EFI_ERROR (Status)"); /*0x2710*/
}
v13 = GetPcdProtocol(); /*0x2715*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v13 + 144))(138, 0); /*0x2721*/
if ( Status < 0 ) /*0x272a*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2735*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 759, "!EFI_ERROR (Status)"); /*0x2745*/
}
}
return 0; /*0x275b*/
}
// Function at 0x25ec __int64 BootScriptLibUninitialize(__int64 a1, __int64 a2, double a3, double a4)
{
__int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 v10; // rax __int64 Status; // rax __int64 Status; // rax __int64 v13; // rax __int64 Status; // rax DebugPrintVarArg(64, (__int64)"%a() in %a module\n", a3, a4); /*0x2517*/
if ( qword_44A8 ) /*0x2540*/
{
Status = (*(__int64 (**)(void))(qword_4470 + 112))(); /*0x2549*/
if ( Status < 0 ) /*0x254f*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2559*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 707, "!EFI_ERROR (Status)"); /*0x2569*/
}
}
v5 = qword_44B0; /*0x256e*/
if ( qword_44B0 ) /*0x2578*/
{
if ( qword_44B8 ) /*0x2586*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(qword_44B0 + 192))(&unk_42B0, 0, &qword_44B8); /*0x2598*/
if ( Status < 0 ) /*0x25a1*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25ac*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 720, "!EFI_ERROR (Status)"); /*0x25bc*/
}
v5 = qword_44B0; /*0x25c1*/
}
if ( qword_4498 ) /*0x25d0*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4280, 0, &qword_4498); /*0x25e2*/
if ( Status < 0 ) /*0x25eb*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25f6*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 731, "!EFI_ERROR (Status)"); /*0x2606*/
}
v5 = qword_44B0; /*0x260b*/
}
if ( qword_44C0 ) /*0x261a*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4300, 0, &qword_44C0); /*0x262c*/
if ( Status < 0 ) /*0x2635*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2640*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 742, "!EFI_ERROR (Status)"); /*0x2650*/
}
v5 = qword_44B0; /*0x2655*/
}
}
if ( byte_44A0 ) /*0x2663*/
{
Status = (*(__int64 ( **)(__int64, __int64))(qword_4470 + 48))(qword_44F8, 1); /*0x2678*/
if ( Status < 0 ) /*0x267e*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2689*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 751, "!EFI_ERROR (Status)"); /*0x2699*/
}
v10 = GetPcdProtocol(); /*0x269e*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v10 + 144))(137, 0); /*0x26aa*/
if ( Status < 0 ) /*0x26b3*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x26be*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 753, "!EFI_ERROR (Status)"); /*0x26ce*/
}
v5 = qword_44B0; /*0x26d3*/
}
if ( v5 && byte_44C8 ) /*0x26e6*/
{
Status = (*(__int64 ( **)(__int64))(v5 + 88))(qword_4500); /*0x26ef*/
if ( Status < 0 ) /*0x26f5*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2700*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 757, "!EFI_ERROR (Status)"); /*0x2710*/
}
v13 = GetPcdProtocol(); /*0x2715*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v13 + 144))(138, 0); /*0x2721*/
if ( Status < 0 ) /*0x272a*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2735*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 759, "!EFI_ERROR (Status)"); /*0x2745*/
}
}
return 0; /*0x275b*/
}
// Function at 0x2688 __int64 BootScriptLibUninitialize(__int64 a1, __int64 a2, double a3, double a4)
{
__int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 v10; // rax __int64 Status; // rax __int64 Status; // rax __int64 v13; // rax __int64 Status; // rax DebugPrintVarArg(64, (__int64)"%a() in %a module\n", a3, a4); /*0x2517*/
if ( qword_44A8 ) /*0x2540*/
{
Status = (*(__int64 (**)(void))(qword_4470 + 112))(); /*0x2549*/
if ( Status < 0 ) /*0x254f*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2559*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 707, "!EFI_ERROR (Status)"); /*0x2569*/
}
}
v5 = qword_44B0; /*0x256e*/
if ( qword_44B0 ) /*0x2578*/
{
if ( qword_44B8 ) /*0x2586*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(qword_44B0 + 192))(&unk_42B0, 0, &qword_44B8); /*0x2598*/
if ( Status < 0 ) /*0x25a1*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25ac*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 720, "!EFI_ERROR (Status)"); /*0x25bc*/
}
v5 = qword_44B0; /*0x25c1*/
}
if ( qword_4498 ) /*0x25d0*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4280, 0, &qword_4498); /*0x25e2*/
if ( Status < 0 ) /*0x25eb*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25f6*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 731, "!EFI_ERROR (Status)"); /*0x2606*/
}
v5 = qword_44B0; /*0x260b*/
}
if ( qword_44C0 ) /*0x261a*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4300, 0, &qword_44C0); /*0x262c*/
if ( Status < 0 ) /*0x2635*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2640*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 742, "!EFI_ERROR (Status)"); /*0x2650*/
}
v5 = qword_44B0; /*0x2655*/
}
}
if ( byte_44A0 ) /*0x2663*/
{
Status = (*(__int64 ( **)(__int64, __int64))(qword_4470 + 48))(qword_44F8, 1); /*0x2678*/
if ( Status < 0 ) /*0x267e*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2689*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 751, "!EFI_ERROR (Status)"); /*0x2699*/
}
v10 = GetPcdProtocol(); /*0x269e*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v10 + 144))(137, 0); /*0x26aa*/
if ( Status < 0 ) /*0x26b3*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x26be*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 753, "!EFI_ERROR (Status)"); /*0x26ce*/
}
v5 = qword_44B0; /*0x26d3*/
}
if ( v5 && byte_44C8 ) /*0x26e6*/
{
Status = (*(__int64 ( **)(__int64))(v5 + 88))(qword_4500); /*0x26ef*/
if ( Status < 0 ) /*0x26f5*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2700*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 757, "!EFI_ERROR (Status)"); /*0x2710*/
}
v13 = GetPcdProtocol(); /*0x2715*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v13 + 144))(138, 0); /*0x2721*/
if ( Status < 0 ) /*0x272a*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2735*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 759, "!EFI_ERROR (Status)"); /*0x2745*/
}
}
return 0; /*0x275b*/
}
// Function at 0x26e4 __int64 BootScriptLibUninitialize(__int64 a1, __int64 a2, double a3, double a4)
{
__int64 Status; // rax __int64 v5; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 Status; // rax __int64 v10; // rax __int64 Status; // rax __int64 Status; // rax __int64 v13; // rax __int64 Status; // rax DebugPrintVarArg(64, (__int64)"%a() in %a module\n", a3, a4); /*0x2517*/
if ( qword_44A8 ) /*0x2540*/
{
Status = (*(__int64 (**)(void))(qword_4470 + 112))(); /*0x2549*/
if ( Status < 0 ) /*0x254f*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2559*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 707, "!EFI_ERROR (Status)"); /*0x2569*/
}
}
v5 = qword_44B0; /*0x256e*/
if ( qword_44B0 ) /*0x2578*/
{
if ( qword_44B8 ) /*0x2586*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(qword_44B0 + 192))(&unk_42B0, 0, &qword_44B8); /*0x2598*/
if ( Status < 0 ) /*0x25a1*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25ac*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 720, "!EFI_ERROR (Status)"); /*0x25bc*/
}
v5 = qword_44B0; /*0x25c1*/
}
if ( qword_4498 ) /*0x25d0*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4280, 0, &qword_4498); /*0x25e2*/
if ( Status < 0 ) /*0x25eb*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x25f6*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 731, "!EFI_ERROR (Status)"); /*0x2606*/
}
v5 = qword_44B0; /*0x260b*/
}
if ( qword_44C0 ) /*0x261a*/
{
Status = (*(__int64 ( **)(void *, _QWORD, __int64 *))(v5 + 192))(&unk_4300, 0, &qword_44C0); /*0x262c*/
if ( Status < 0 ) /*0x2635*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2640*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 742, "!EFI_ERROR (Status)"); /*0x2650*/
}
v5 = qword_44B0; /*0x2655*/
}
}
if ( byte_44A0 ) /*0x2663*/
{
Status = (*(__int64 ( **)(__int64, __int64))(qword_4470 + 48))(qword_44F8, 1); /*0x2678*/
if ( Status < 0 ) /*0x267e*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2689*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 751, "!EFI_ERROR (Status)"); /*0x2699*/
}
v10 = GetPcdProtocol(); /*0x269e*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v10 + 144))(137, 0); /*0x26aa*/
if ( Status < 0 ) /*0x26b3*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x26be*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 753, "!EFI_ERROR (Status)"); /*0x26ce*/
}
v5 = qword_44B0; /*0x26d3*/
}
if ( v5 && byte_44C8 ) /*0x26e6*/
{
Status = (*(__int64 ( **)(__int64))(v5 + 88))(qword_4500); /*0x26ef*/
if ( Status < 0 ) /*0x26f5*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2700*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 757, "!EFI_ERROR (Status)"); /*0x2710*/
}
v13 = GetPcdProtocol(); /*0x2715*/
Status = (*(__int64 ( **)(__int64, _QWORD))(v13 + 144))(138, 0); /*0x2721*/
if ( Status < 0 ) /*0x272a*/
{
DebugPrintVarArg(0x80000000LL, (__int64)"\nASSERT_EFI_ERROR (Status = %r)\n", Status); /*0x2735*/
DebugAssert("e:\\hs\\MdeModulePkg\\Library\\PiDxeS3BootScriptLib\\BootScriptSave.c", 759, "!EFI_ERROR (Status)"); /*0x2745*/
}
}
return 0; /*0x275b*/
}