Function at 0x458590
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff64
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404ea8
mov eax, dword [ebp - 8]
call fcn.00404ea8
xor eax, eax
push ebp
push 0x458895
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
xor eax, eax
push ebp
push 0x458844
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x458830
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4588a8
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 0x20], eax
push 0x4588b8
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x2c], eax
push 0x4588cc
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 0x24], eax
push 0x4588dc
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x30], eax
push 0x4588fc
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 0x28], eax
push 0x458908
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x34], eax
push 0x458920
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x38], eax
call dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x1c]
push eax
call dword [ebp - 0x2c]
test eax, eax
je 0x45878f
cmp dword [ebp - 4], 0
jne 0x4586cf
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_ImpersonateLoggedOnUser
cmp eax, 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x4586bc
lea eax, [ebp - 0x98]
call fcn.004584d4
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xc]
call fcn.00404a4c
call sub.advapi32.dll_RevertToSelf
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x45878f
push 0
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [ebp - 0x34]
test eax, eax
je 0x45878f
lea eax, [ebp - 0x84]
xor ecx, ecx
mov edx, 0x44
call fcn.004031cc
mov dword [ebp - 0x84], 0x44
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x84]
push eax
push 0
mov eax, dword [ebp - 0x18]
push eax
push 0x420
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.00404eb8
push eax
mov eax, dword [ebp - 4]
call fcn.00404eb8
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_CreateProcessAsUserA
test eax, eax
je 0x458758
mov eax, dword [ebp - 0x94]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x90]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x45877f
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0x9c]
call fcn.0043fa28
mov ecx, dword [ebp - 0x9c]
mov dl, 1
mov eax, dword [0x407b58]
call fcn.0040c938
call fcn.004043b4
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x18]
push eax
call dword [ebp - 0x38]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45883a
cmp dword [ebp - 0x20], 0xffffffff
je 0x4587cd
xor eax, eax
push ebp
push 0x4587c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4587cd
cmp dword [ebp - 0x24], 0xffffffff
je 0x4587fe
xor eax, eax
push ebp
push 0x4587f4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4587fe
cmp dword [ebp - 0x28], 0xffffffff
je 0x45882f
xor eax, eax
push ebp
push 0x458825
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x28]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45882f
ret