Function at 0x405c1d
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x422c46
call fcn.00419178
sub esp, 0x110
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x405c3b
xor ecx, ecx
jmp 0x405c3d
mov ecx, dword [eax]
push ebx
xor ebx, ebx
push esi
inc ebx
cmp ecx, eax
push edi
mov dword [ebp - 0x14], ecx
je 0x405e79
mov esi, dword [ebp - 0x14]
add esi, 8
lea eax, [ebp - 0x38]
push esi
push eax
call fcn.00405135
lea eax, [esi + 0x38]
push eax
lea eax, [ebp - 0x70]
xor edi, edi
push eax
mov dword [ebp - 4], edi
call fcn.00405135
lea eax, [esi + 0x1c]
push eax
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], bl
call fcn.00405135
add esp, 0x18
cmp dword [ebp - 0x24], edi
mov byte [ebp - 4], 2
jbe 0x405e46
push ebx
push edi
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x10], 0x40
call fcn.00401755
mov edi, eax
cmp edi, 0xffffffff
je 0x405d58
push edi
push 0
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x38]
call fcn.00401663
push 0xffffffffffffffff
inc edi
push edi
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 3
call fcn.00401663
cmp dword [ebp - 0x90], 0x10
mov eax, dword [ebp - 0xa4]
mov byte [ebp - 4], 4
jae 0x405cef
lea eax, [ebp - 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x405d31
cmp dword [ebp - 0x74], 0x10
mov eax, dword [ebp - 0x88]
jae 0x405d0e
lea eax, [ebp - 0x88]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x405d1e
call eax
jmp 0x405d28
cmp byte [esi + 0x54], 0
je 0x405e8a
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x405d3b
cmp byte [esi + 0x54], 0
je 0x405ed9
push ebx
lea ecx, [ebp - 0xa8]
call fcn.004017f0
push ebx
lea ecx, [ebp - 0x8c]
call fcn.004017f0
jmp 0x405e46
push 0x3c
pop edi
push edi
lea eax, [ebp - 0xe4]
push 0
push eax
call fcn.00417230
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xd8], str.open
jae 0x405d89
lea eax, [ebp - 0x34]
cmp dword [ebp - 0x58], 0x10
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x6c]
jae 0x405d9b
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x3c], 0x10
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x50]
jae 0x405dad
lea eax, [ebp - 0x50]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xe4]
push eax
mov dword [ebp - 0xc8], 5
mov dword [ebp - 0xe0], 0x440
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
je 0x405e36
mov eax, dword [ebp - 0xac]
mov edi, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
lea ecx, [ebp - 0x18]
push ecx
mov dword [ebp - 0x1c], eax
push eax
jmp 0x405e13
cmp dword [ebp - 0x18], 0x103
jne 0x405e1b
cmp byte [0x42cd68], 0
jne 0x405f90
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
call edi
test eax, eax
jne 0x405dee
jmp 0x405e46
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x18], 0
je 0x405e46
cmp byte [esi + 0x54], 0
je 0x405f90
jmp 0x405e46
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [esi + 0x54], 0
je 0x405f40
mov eax, dword [ebp - 0x14]
mov esi, dword [eax]
push ebx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x14], esi
call fcn.004017f0
push ebx
lea ecx, [ebp - 0x70]
call fcn.004017f0
or dword [ebp - 4], 0xffffffff
push ebx
lea ecx, [ebp - 0x38]
call fcn.004017f0
mov eax, dword [ebp + 8]
cmp esi, dword [eax + 4]
jne 0x405c4e
mov al, bl
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x11c]
push str.Failed_to_find_func_
push eax
call fcn.004049f1
push 0x4266a8
push eax
lea eax, [ebp - 0x100]
push eax
mov byte [ebp - 4], 5
call fcn.004049a5
push eax
mov byte [ebp - 4], 6
call fcn.00404c39
add esp, 0x1c
push ebx
lea ecx, [ebp - 0x100]
call fcn.004017f0
lea ecx, [ebp - 0x11c]
jmp 0x405f26
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x100]
push str.Failed_to_load_library_
push eax
call fcn.004049f1
push 0x4266a8
push eax
lea eax, [ebp - 0x11c]
push eax
mov byte [ebp - 4], 7
call fcn.004049a5
push eax
mov byte [ebp - 4], 8
call fcn.00404c39
add esp, 0x1c
push ebx
lea ecx, [ebp - 0x11c]
call fcn.004017f0
lea ecx, [ebp - 0x100]
push ebx
call fcn.004017f0
push ebx
lea ecx, [ebp - 0xa8]
call fcn.004017f0
lea ecx, [ebp - 0x8c]
jmp 0x405f8a
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x100]
push str.Failed_to_execute_
push eax
call fcn.004049f1
push 0x4266a8
push eax
lea eax, [ebp - 0x11c]
push eax
mov byte [ebp - 4], 9
call fcn.004049a5
push eax
mov byte [ebp - 4], 0xa
call fcn.00404c39
add esp, 0x1c
push ebx
lea ecx, [ebp - 0x11c]
call fcn.004017f0
lea ecx, [ebp - 0x100]
push ebx
call fcn.004017f0
push ebx
lea ecx, [ebp - 0x54]
call fcn.004017f0
push ebx
lea ecx, [ebp - 0x70]
call fcn.004017f0
push ebx
lea ecx, [ebp - 0x38]
call fcn.004017f0
xor al, al
jmp 0x405e7b