__int64 __fastcall sub_1AA8(int a1)
{
unsigned __int8 v1; // si
__int64 v2; // rdx
__int64 v3; // rcx
__int64 v4; // r8
__int64 v5; // r9
unsigned __int8 v6; // r12
unsigned __int8 v7; // r15
bool v8; // zf
unsigned __int8 v9; // r13
char n8; // di
char n4; // bl
__int64 v12; // r9
char n7; // cl
char v14; // cl
unsigned __int8 n4_1; // r11
char v16; // r14
char v17; // si
char v18; // r11
unsigned __int8 n4_2; // r11
char v20; // r12
char v21; // di
char v22; // r11
char n8_2; // cl
char v24; // cl
char v25; // r14
char v26; // si
char v27; // r11
__int64 result; // rax
unsigned __int8 v29; // [rsp+40h] [rbp-18h]
unsigned __int8 v30; // [rsp+41h] [rbp-17h]
unsigned __int8 v31; // [rsp+42h] [rbp-16h]
unsigned __int8 n4_3; // [rsp+43h] [rbp-15h] BYREF
_DWORD v33[5]; // [rsp+44h] [rbp-14h] BYREF
int v34; // [rsp+A0h] [rbp+48h] BYREF
unsigned __int8 v35; // [rsp+A8h] [rbp+50h] BYREF
unsigned __int8 n8_1; // [rsp+B0h] [rbp+58h] BYREF
char v37; // [rsp+B8h] [rbp+60h] BYREF
v1 = 0; /*0x1abc*/
v37 = -1; /*0x1abe*/
n8_1 = 0; /*0x1ac6*/
n4_3 = 0; /*0x1ace*/
LOBYTE(v34) = -1; /*0x1adf*/
if ( sub_57C4(a1, (unsigned int)&n8_1, (unsigned int)&v37, (unsigned int)&n4_3, (__int64)&v34) < 0 )
return sub_5408(
0x80000000LL,
"[OemCollectNvmeVmdSlotInfo]: Get BP type failed!! Skip update the NVME slot info in VMD menu! \n");
v6 = v37; /*0x1af1*/
v7 = v34; /*0x1af5*/
if ( v37 == -1 && (_BYTE)v34 == 0xFF )
return sub_5408(
0x80000000LL,
"[OemCollectNvmeVmdSlotInfo]: Get BP type failed!! Skip update the NVME slot info in VMD menu! \n");
sub_7CC(v3, v2, v4, v5); /*0x1b08*/
v34 = 0; /*0x1b11*/
sub_5B28(16973832, &v34); /*0x1b19*/
v8 = v34 == 0; /*0x1b1e*/
v34 = 0; /*0x1b2a*/
v29 = v8; /*0x1b2d*/
sub_5B28(16973833, &v34); /*0x1b31*/
v8 = v34 == 0; /*0x1b36*/
v34 = 0; /*0x1b42*/
v30 = v8; /*0x1b45*/
sub_5B28(16973834, &v34); /*0x1b49*/
v8 = v34 == 0; /*0x1b4e*/
v34 = 0; /*0x1b5a*/
v31 = v8; /*0x1b5d*/
sub_5B28(16973835, &v34); /*0x1b61*/
v9 = v34 == 0; /*0x1b71*/
sub_5768(&v34, &v35); /*0x1b75*/
n8 = n8_1; /*0x1b7a*/
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: OnBoardNvmeBaseIndexNumber = %x\n", n8_1);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: OnBoardNvmeBaseSlotNumber = %x\n", v6);
n4 = n4_3; /*0x1ba9*/
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: RiserNvmeBaseIndexNumber = %x\n", n4_3);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: RiserNvmeBaseSlotNumber = %x\n", v7);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME67Present = %x\n", v9);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME45Present = %x\n", v31);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME23Present = %x\n", v30);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: IsOnBoardNVME01Present = %x\n", v29);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: FirstInterPoserCardInstall = %x\n", (unsigned __int8)v34);
sub_5408(0x80000000LL, "[OemCollectNvmeVmdSlotInfo]: SecondInterPoserCardInstallx = %x\n", v35);
byte_7D91 = 0; /*0x1c4d*/
sub_5B28(17170432, v33); /*0x1c59*/
if ( v33[0] == 1 ) /*0x1c62*/
{
if ( v9 ) /*0x1c6b*/
{
n7 = n8; /*0x1c6d*/
if ( (unsigned __int8)n8 >= 8u ) /*0x1c74*/
goto LABEL_25; /*0x1c74*/
do /*0x1ca6*/
{
sub_1914(n7, n8, v6, v29, v30, v31, v9); /*0x1c9c*/
n7 = v14 + 1; /*0x1ca1*/
}
while ( (unsigned __int8)n7 < 8u ); /*0x1ca6*/
}
else
{
n4_1 = n4; /*0x1cad*/
if ( (unsigned __int8)n4 >= 4u ) /*0x1cb3*/
goto LABEL_25; /*0x1cb3*/
v16 = v34; /*0x1cb9*/
v17 = v35; /*0x1cbd*/
do /*0x1ce4*/
{
sub_19FC(n4_1, n4, v7, v12, v16, v17, 1); /*0x1cd8*/
n4_1 = v18 + 1; /*0x1cdd*/
}
while ( n4_1 < 4u ); /*0x1ce4*/
}
}
else
{
n4_2 = n4; /*0x1ceb*/
if ( v9 ) /*0x1cf1*/
{
if ( (unsigned __int8)n4 < 4u ) /*0x1cf6*/
{
v20 = v34; /*0x1cf8*/
v21 = v35; /*0x1cfc*/
do /*0x1d23*/
{
sub_19FC(n4_2, n4, v7, v12, v20, v21, 2); /*0x1d17*/
n4_2 = v22 + 1; /*0x1d1c*/
}
while ( n4_2 < 4u ); /*0x1d23*/
n8 = n8_1; /*0x1d25*/
v6 = v37; /*0x1d29*/
}
n8_2 = n8; /*0x1d2d*/
if ( (unsigned __int8)n8 >= 8u ) /*0x1d34*/
goto LABEL_25; /*0x1d34*/
do /*0x1d62*/
{
sub_1914(n8_2, n8, v6, v29, v30, v31, v9); /*0x1d58*/
n8_2 = v24 + 1; /*0x1d5d*/
}
while ( (unsigned __int8)n8_2 < 8u ); /*0x1d62*/
}
else
{
if ( (unsigned __int8)n4 >= 4u ) /*0x1d69*/
goto LABEL_25; /*0x1d69*/
v25 = v34; /*0x1d6b*/
v26 = v35; /*0x1d6f*/
do /*0x1d96*/
{
sub_19FC(n4_2, n4, v7, v12, v25, v26, 2); /*0x1d8a*/
n4_2 = v27 + 1; /*0x1d8f*/
}
while ( n4_2 < 4u ); /*0x1d96*/
}
}
v1 = 0; /*0x1d9e*/
LABEL_25:
byte_7D60[0] = byte_7D91; /*0x1da0*/
result = sub_5408(
0x80000000LL,
"[OemCollectNvmeVmdSlotInfo]: mVmdSetupConfiguration.DevCount = %x\n",
(unsigned __int8)byte_7D91);
if ( byte_7D91 )
{
do
{
sub_5408(
0x80000000LL,
"[OemCollectNvmeVmdSlotInfo]: mVmdSetupConfiguration.Dev[%x].SlotIndex = %x\n",
v1,
(unsigned __int8)byte_7D60[2 * v1 + 1]);
result = sub_5408(
0x80000000LL,
"[OemCollectNvmeVmdSlotInfo]: mVmdSetupConfiguration.Dev[%x].VmdPortIndex = %x\n",
v1,
(unsigned __int8)byte_7D60[2 * v1 + 2]);
++v1; /*0x1e07*/
}
while ( v1 < (unsigned __int8)byte_7D91 );
}
return result; /*0x1e26*/
}