Function at 0x432bf1
Capabilities:
Accept command line arguments
Create process on windows
Get system information on windows
Get uefi variable
Query environment variable

Disassembly:
push ebp
push ebx
mov edx, 0x54
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x432bf8
call fcn.0045e790
lea ebp, [esp]
mov dword [ebp], 0x11c
lea eax, [esp]
push eax
call sub.ntdll.dll_RtlGetVersion
lea ebp, [esp]
push dword [ebp + 0xc]
mov ebp, dword [0x47356c]
pop eax
mov dword [ebp + 0x20], eax
lea eax, [esp + 0x11c]
push eax
call sub.kernel32.dll_GetNativeSystemInfo
lea ebp, [esp + 0x11c]
movsx ebx, word [ebp]
push ebx
mov ebx, 9
cmp ebx, dword [esp]
jne 0x432d3c
push 2
lea eax, [esp + 0x150]
push eax
mov eax, str.WinNTSetup_WOW64
push eax
call sub.kernel32.dll_GetEnvironmentVariableW
and eax, eax
je 0x432c74
xor eax, eax
jmp 0x432c79
mov eax, 1
and eax, eax
jne 0x432cb3
lea edx, [esp + 0x14c]
push edx
call fcn.0045e620
pop edx
push eax
push 3
push edx
call fcn.0045e880
call fcn.0045e850
mov edx, 0x461b92
pop ecx
push ecx
call fcn.0044e340
mov ecx, eax
call fcn.0044e300
je 0x432cb3
jmp 0x432cba
mov eax, 1
jmp 0x432cbc
xor eax, eax
and eax, eax
je 0x432d27
push edx
call fcn.0045e620
pop edx
push eax
push 0xa
push 0
call sub.kernel32.dll_GetCommandLineW
push eax
call sub.shlwapi.dll_PathGetArgsW
push eax
mov ebp, dword [0x47356c]
mov edx, dword [ebp + 8]
push edx
call fcn.0045e620
pop edx
push eax
push edx
call fcn.0045e6f0
mov edx, str.WinNTSetup_x64.exe
push edx
call fcn.0045e6f0
call fcn.0045e850
push 0
push 0
call fcn.0044e2d2
add dword [esp + 8], edx
call sub.shell32.dll_ShellExecuteW
call fcn.0044e2f0
jmp 0x401801
mov ebp, dword [0x47356c]
mov edx, 0x4678a4
lea ecx, [ebp + 0x24]
call fcn.0044e008
jmp 0x432d75
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x432d58
mov ebp, dword [0x47356c]
mov edx, 0x46920c
lea ecx, [ebp + 0x24]
call fcn.0044e008
jmp 0x432d75
mov ebx, 6
cmp ebx, dword [esp]
jne 0x432d75
mov ebp, dword [0x47356c]
mov edx, str.ia64
lea ecx, [ebp + 0x24]
call fcn.0044e008
pop eax
lea eax, [esp + 0x140]
push eax
push 0
push 1
push 0x16
call sub.ntdll.dll_RtlAdjustPrivilege
push 0
push 0
mov eax, str.00000000_0000_0000_0000_000000000000
push eax
mov eax, 0x46105e
push eax
call sub.kernel32.dll_GetFirmwareEnvironmentVariableW
call sub.kernel32.dll_GetLastError
push eax
mov ebx, 1
cmp ebx, dword [esp]
jne 0x432dbf
jmp 0x432dd6
mov ebx, 0x3e6
cmp ebx, dword [esp]
jne 0x432dd6
mov ebp, dword [0x47356c]
mov dword [ebp + 0x3c], 1
pop eax
lea eax, [esp + 0x140]
push eax
push 0
push dword [esp + 0x148]
push 0x16
call sub.ntdll.dll_RtlAdjustPrivilege
mov ebp, dword [0x47356c]
cmp dword [ebp + 0x3c], 0
je 0x432e19
mov ebp, dword [0x47356c]
mov ebx, dword [ebp + 0x20]
cmp ebx, 0x1db0
jle 0x432e19
mov eax, 1
jmp 0x432e1b
xor eax, eax
and eax, eax
je 0x432e70
lea eax, [esp + 0x140]
push eax
push 2
lea eax, [esp + 0x14c]
push eax
push 0x91
call sub.ntdll.dll_NtQuerySystemInformation
mov ebx, eax
and ebx, ebx
jne 0x432e70
lea ebp, [esp + 0x144]
movsx eax, byte [ebp]
push eax
mov ebp, dword [0x47356c]
pop eax
mov dword [ebp + 0x40], eax
lea ebp, [esp + 0x144]
movsx eax, byte [ebp + 1]
push eax
mov ebp, dword [0x47356c]
pop eax
mov dword [ebp + 0x44], eax
xor eax, eax
add esp, 0x150
pop ebx
pop ebp
ret