__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*/ }