/** @file PiSmmIpl.h -- Header for PiSmmIpl Copyright (c) HR650X BIOS Decompilation Project **/ #ifndef __PISMMIPL_H__ #define __PISMMIPL_H__ #include "../uefi_headers/Uefi.h" // // Function Prototypes // EFI_STATUS EFIAPI ModuleEntryPoint( VOID ); EFI_STATUS EFIAPI decompilation of all functions( VOID ); EFI_STATUS EFIAPI @ 0x1128( VOID ); EFI_STATUS EFIAPI @ 0x1154( VOID ); EFI_STATUS EFIAPI __int64 BootServices_1; // r10( VOID ); EFI_STATUS EFIAPI __int64 v6; // rax( VOID ); EFI_STATUS EFIAPI __int64 v8; // rax( VOID ); EFI_STATUS EFIAPI __int64 v10; // rax( VOID ); EFI_STATUS EFIAPI ::ImageHandle = ImageHandle; /*0x116c*/( VOID ); EFI_STATUS EFIAPI @ 0x1504( VOID ); EFI_STATUS EFIAPI __int64 v1; // rax( VOID ); EFI_STATUS EFIAPI __int64 BootServices_1; // rax( VOID ); EFI_STATUS EFIAPI __int64 v5; // rax( VOID ); EFI_STATUS EFIAPI BootServices = BootServices; /*0x1518*/( VOID ); EFI_STATUS EFIAPI @ 0x16CC( VOID ); EFI_STATUS EFIAPI @ 0x1704( VOID ); EFI_STATUS EFIAPI char _smmc__1; // di( VOID ); EFI_STATUS EFIAPI @ 0x180C( VOID ); EFI_STATUS EFIAPI @ 0x1854( VOID ); EFI_STATUS EFIAPI @ 0x185C( VOID ); EFI_STATUS EFIAPI unsigned __int64 result; // rax( VOID ); EFI_STATUS EFIAPI @ 0x1958( VOID ); EFI_STATUS EFIAPI __int64 v3; // rax( VOID ); EFI_STATUS EFIAPI __int64 v5; // [rsp+40h] [rbp+18h] BYREF( VOID ); EFI_STATUS EFIAPI @ 0x19E8( VOID ); EFI_STATUS EFIAPI __int64 v3; // rbx( VOID ); EFI_STATUS EFIAPI char v5; // [rsp+40h] [rbp+18h] BYREF( VOID ); EFI_STATUS EFIAPI @ 0x1AA8( VOID ); EFI_STATUS EFIAPI @ 0x1B0C( VOID ); EFI_STATUS EFIAPI @ 0x1B20( VOID ); EFI_STATUS EFIAPI __int64 v4; // r14( VOID ); EFI_STATUS EFIAPI unsigned __int64 v7; // rax( VOID ); EFI_STATUS EFIAPI __int64 v9; // rsi( VOID ); EFI_STATUS EFIAPI int v11; // r9d( VOID ); EFI_STATUS EFIAPI unsigned int v13; // r9d( VOID ); EFI_STATUS EFIAPI unsigned __int64 v15; // rbx( VOID ); EFI_STATUS EFIAPI __int64 v17; // rax( VOID ); EFI_STATUS EFIAPI unsigned __int64 v19; // [rsp+30h] [rbp-A9h] BYREF( VOID ); EFI_STATUS EFIAPI @ 0x1E50( VOID ); EFI_STATUS EFIAPI unsigned __int64 v9; // r10( VOID ); EFI_STATUS EFIAPI unsigned __int64 v13; // rdi( VOID ); EFI_STATUS EFIAPI __int64 v16; // rax( VOID ); EFI_STATUS EFIAPI __int64 v18; // r8( VOID ); EFI_STATUS EFIAPI __int64 v20; // rdx( VOID ); EFI_STATUS EFIAPI __int64 v22; // rcx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v24; // rax( VOID ); EFI_STATUS EFIAPI __int64 v26; // rcx( VOID ); EFI_STATUS EFIAPI __int64 v28; // rcx( VOID ); EFI_STATUS EFIAPI __int64 v30; // rcx( VOID ); EFI_STATUS EFIAPI _UNKNOWN *retaddr; // [rsp+8h] [rbp+0h] BYREF( VOID ); EFI_STATUS EFIAPI @ 0x2098( VOID ); EFI_STATUS EFIAPI __int64 v3; // rcx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v5; // rbx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v7; // r15( VOID ); EFI_STATUS EFIAPI __int64 v9; // rdi( VOID ); EFI_STATUS EFIAPI __int64 v11; // rcx( VOID ); EFI_STATUS EFIAPI __int64 v13; // r13( VOID ); EFI_STATUS EFIAPI __int64 v15; // r14( VOID ); EFI_STATUS EFIAPI unsigned __int64 v17; // rcx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v19; // rax( VOID ); EFI_STATUS EFIAPI unsigned __int64 *v21; // r14( VOID ); EFI_STATUS EFIAPI unsigned __int64 *v23; // rbx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v25; // rdx( VOID ); EFI_STATUS EFIAPI __int64 v27; // rax( VOID ); EFI_STATUS EFIAPI unsigned __int64 v29; // rbx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v31; // rcx( VOID ); EFI_STATUS EFIAPI _QWORD *v33; // rdx( VOID ); EFI_STATUS EFIAPI __int64 v36; // rdi( VOID ); EFI_STATUS EFIAPI __int64 v38; // rbx( VOID ); EFI_STATUS EFIAPI _QWORD *v40; // [rsp+40h] ... [9911 chars total]( VOID ); EFI_STATUS EFIAPI @ 0x2598( VOID ); EFI_STATUS EFIAPI __int64 v5; // rbx( VOID ); EFI_STATUS EFIAPI unsigned __int64 n258048; // rdi( VOID ); EFI_STATUS EFIAPI __int64 v9; // r11( VOID ); EFI_STATUS EFIAPI _BYTE *v11; // r10( VOID ); EFI_STATUS EFIAPI unsigned __int64 v13; // rdx( VOID ); EFI_STATUS EFIAPI char v15; // r11( VOID ); EFI_STATUS EFIAPI __int64 v17; // r10( VOID ); EFI_STATUS EFIAPI unsigned __int64 v19; // r9( VOID ); EFI_STATUS EFIAPI __int64 v21; // rax( VOID ); EFI_STATUS EFIAPI __int64 (__fastcall **v23)(); // rcx( VOID ); EFI_STATUS EFIAPI __int64 v25; // rbp( VOID ); EFI_STATUS EFIAPI __int64 (__fastcall *v27)(); // rsi( VOID ); EFI_STATUS EFIAPI __int64 v29; // rax( VOID ); EFI_STATUS EFIAPI __int64 v31; // rax( VOID ); EFI_STATUS EFIAPI __int64 v34; // [rsp+70h] [rbp+8h] BYREF( VOID ); EFI_STATUS EFIAPI @ 0x2B38( VOID ); EFI_STATUS EFIAPI @ 0x2B80( VOID ); EFI_STATUS EFIAPI __int64 v7; // rax( VOID ); EFI_STATUS EFIAPI @ 0x2BE8( VOID ); EFI_STATUS EFIAPI v3 = n16 - 1; /*0x2c05*/( VOID ); EFI_STATUS EFIAPI @ 0x2C88( VOID ); EFI_STATUS EFIAPI @ 0x2CB8( VOID ); EFI_STATUS EFIAPI @ 0x2CF8( VOID ); EFI_STATUS EFIAPI unsigned __int64 n0x10; // rbx( VOID ); EFI_STATUS EFIAPI @ 0x2D80( VOID ); EFI_STATUS EFIAPI __int64 v4; // r8( VOID ); EFI_STATUS EFIAPI unsigned __int8 v6; // al( VOID ); EFI_STATUS EFIAPI int n113; // edx( VOID ); EFI_STATUS EFIAPI @ 0x2E00( VOID ); EFI_STATUS EFIAPI result = sub_2CF8(); /*0x2e18*/( VOID ); EFI_STATUS EFIAPI @ 0x2E40( VOID ); EFI_STATUS EFIAPI @ 0x2E4C( VOID ); EFI_STATUS EFIAPI if ( qword_6430 ) /*0x2e58*/( VOID ); EFI_STATUS EFIAPI @ 0x2E74( VOID ); EFI_STATUS EFIAPI @ 0x2EA4( VOID ); EFI_STATUS EFIAPI result = (*(__int64 (**)(void))(BootServices + 72))(); /*0x2eaf*/( VOID ); EFI_STATUS EFIAPI @ 0x2EE8( VOID ); EFI_STATUS EFIAPI if ( !a1 ) /*0x2f0a*/( VOID ); EFI_STATUS EFIAPI @ 0x2FAC( VOID ); EFI_STATUS EFIAPI @ 0x3034( VOID ); EFI_STATUS EFIAPI result = (*(__int64 (__fastcall **)(_QWORD, __int64 *))(RuntimeServices + 64))(0, &RuntimeServices_1); /*0x3048*/( VOID ); EFI_STATUS EFIAPI @ 0x3058( VOID ); EFI_STATUS EFIAPI bool v4; // zf( VOID ); EFI_STATUS EFIAPI __int64 v6; // r9( VOID ); EFI_STATUS EFIAPI __int64 v8; // rcx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v10; // rdx( VOID ); EFI_STATUS EFIAPI __int64 v13; // rax( VOID ); EFI_STATUS EFIAPI unsigned int v15; // r8d( VOID ); EFI_STATUS EFIAPI unsigned int v17; // edx( VOID ); EFI_STATUS EFIAPI int v19; // edx( VOID ); EFI_STATUS EFIAPI unsigned int n0x10; // r8d( VOID ); EFI_STATUS EFIAPI unsigned int v23; // r8d( VOID ); EFI_STATUS EFIAPI unsigned int v25; // edx( VOID ); EFI_STATUS EFIAPI __int16 n3772; // cx( VOID ); EFI_STATUS EFIAPI unsigned int n40; // esi( VOID ); EFI_STATUS EFIAPI __int64 v31; // rcx( VOID ); EFI_STATUS EFIAPI int v33; // ecx( VOID ); EFI_STATUS EFIAPI _BYTE v35[12]; // [rsp+20h] [rbp-49h] BYREF( VOID ); EFI_STATUS EFIAPI @ 0x359C( VOID ); EFI_STATUS EFIAPI char n512_3; // r9( VOID ); EFI_STATUS EFIAPI __int16 n523; // r8( VOID ); EFI_STATUS EFIAPI unsigned __int16 v7; // r10( VOID ); EFI_STATUS EFIAPI __int64 v9; // rax( VOID ); EFI_STATUS EFIAPI char *v11; // r15( VOID ); EFI_STATUS EFIAPI unsigned __int64 v13; // r12( VOID ); EFI_STATUS EFIAPI bool i; // cf( VOID ); EFI_STATUS EFIAPI bool v17; // zf( VOID ); EFI_STATUS EFIAPI unsigned __int64 v19; // rsi( VOID ); EFI_STATUS EFIAPI unsigned __int64 v21; // r12( VOID ); EFI_STATUS EFIAPI unsigned __int64 v23; // r15( VOID ); EFI_STATUS EFIAPI __int64 v25; // rcx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v27; // rax( VOID ); EFI_STATUS EFIAPI __int64 v29; // rcx( VOID ); EFI_STATUS EFIAPI @ 0x3910( VOID ); EFI_STATUS EFIAPI __int64 v5; // rcx( VOID ); EFI_STATUS EFIAPI unsigned int n5; // edx( VOID ); EFI_STATUS EFIAPI unsigned int *v9; // rcx( VOID ); EFI_STATUS EFIAPI __int64 v11; // rax( VOID ); EFI_STATUS EFIAPI unsigned __int64 v13; // rcx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v15; // r11( VOID ); EFI_STATUS EFIAPI _WORD *v19; // r8( VOID ); EFI_STATUS EFIAPI unsigned int *v21; // r14( VOID ); EFI_STATUS EFIAPI unsigned int *v23; // rbp( VOID ); EFI_STATUS EFIAPI unsigned __int64 v25; // rsi( VOID ); EFI_STATUS EFIAPI int v27; // r11d( VOID ); EFI_STATUS EFIAPI int v29; // r11d( VOID ); EFI_STATUS EFIAPI _QWORD *v31; // r8( VOID ); EFI_STATUS EFIAPI __int64 v33; // rax( VOID ); EFI_STATUS EFIAPI @ 0x3C30( VOID ); EFI_STATUS EFIAPI signed __int64 result; // rax( VOID ); EFI_STATUS EFIAPI __int64 v5; // r8( VOID ); EFI_STATUS EFIAPI __int64 v7; // rdx( VOID ); EFI_STATUS EFIAPI __int64 v9; // r8( VOID ); EFI_STATUS EFIAPI __int64 v11; // rbx( VOID ); EFI_STATUS EFIAPI unsigned int *v13; // r13( VOID ); EFI_STATUS EFIAPI __int64 v15; // r12( VOID ); EFI_STATUS EFIAPI unsigned __int64 v17; // rdx( VOID ); EFI_STATUS EFIAPI unsigned __int64 v19; // r14( VOID ); EFI_STATUS EFIAPI unsigned __int64 v21; // r8( VOID ); EFI_STATUS EFIAPI unsigned __int64 v23; // rax( VOID ); EFI_STATUS EFIAPI unsigned __int64 v29; // rcx( VOID ); EFI_STATUS EFIAPI unsigned int n5; // eax( VOID ); EFI_STATUS EFIAPI unsigned __int64 v33; // rax( VOID ); EFI_STATUS EFIAPI _DWORD *v35; // r14( VOID ); EFI_STATUS EFIAPI unsigned int v37; // r8d( VOID ); EFI_STATUS EFIAPI @ 0x422C( VOID ); EFI_STATUS EFIAPI @ 0x43C4( VOID ); EFI_STATUS EFIAPI if ( !qword_6458 && !byte_6450 ) /*0x43db*/( VOID ); EFI_STATUS EFIAPI @ 0x4424( VOID ); EFI_STATUS EFIAPI if ( qword_6458 ) /*0x4430*/( VOID ); EFI_STATUS EFIAPI @ 0x444C( VOID ); EFI_STATUS EFIAPI @ 0x44A8( VOID ); #endif /* __PISMMIPL_H__ */