Function at 0x408a94
Capabilities:
Create process on windows
Create process suspended
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0xb0
mov ebx, ecx
call sym.___main
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
lea eax, [opt.help]
mov dword [esp], eax
call dbg.options_init
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x408ad9
movzx eax, byte [opt.help]
test al, al
je 0x408af9
mov dword [esp], 2
mov eax, dword [sym.___acrt_iob_func]
call eax
mov dword [esp], eax
call dbg.options_help
mov eax, 1
jmp 0x408d94
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x2c]
mov dword [esp + 4], eax
lea eax, [opt.help]
mov dword [esp], eax
call dbg.options_target_cmdline
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x408d2a
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
lea eax, [ebp - 0x40]
mov dword [esp], eax
call sym._memset
mov dword [esp + 8], 0x44
mov dword [esp + 4], 0
lea eax, [ebp - 0x84]
mov dword [esp], eax
call sym._memset
mov dword [ebp - 0x84], 0x44
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x40]
mov dword [esp + 0x24], edx
lea edx, [ebp - 0x84]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_CreateProcessA]
call eax
sub esp, 0x28
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x408c33
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
test eax, eax
jg 0x408bd8
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x408be7
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0xc], eax
mov dword [esp], 2
mov eax, dword [sym.___acrt_iob_func]
call eax
mov edx, dword [ebp - 0xc]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Failed_to_launch_executable:__x_n
mov dword [esp], eax
call dbg.fprintf
jmp 0x408d37
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], edx
mov dword [esp], eax
call dbg.inject_dll
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x408d2d
lea eax, [ebp - 0x30]
mov dword [esp + 4], eax
lea eax, [opt.help]
mov dword [esp], eax
call dbg.options_next_dll
test eax, eax
je 0x408c14
movzx eax, byte [opt.debug_pause]
test al, al
je 0x408c69
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call dbg.inject_pause
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x408d30
movzx eax, byte [opt.debug]
test al, al
je 0x408cd7
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_DebugActiveProcess]
call eax
sub esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x408cd7
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
test eax, eax
jg 0x408c9e
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x408cad
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0xc], eax
mov dword [esp], 2
mov eax, dword [sym.___acrt_iob_func]
call eax
mov edx, dword [ebp - 0xc]
mov dword [esp + 8], edx
mov dword [esp + 4], str.DebugActiveProcess_failed:__x_n
mov dword [esp], eax
call dbg.fprintf
jmp 0x408d37
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call dbg.inject_resume
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x408d33
movzx eax, byte [opt.debug]
test al, al
je 0x408d08
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], edx
mov dword [esp], eax
call dbg.debug_main
mov dword [ebp - 0xc], eax
movzx eax, byte [opt.wait]
test al, al
je 0x408d36
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call eax
sub esp, 8
jmp 0x408d37
nop
jmp 0x408d37
nop
jmp 0x408d37
nop
jmp 0x408d37
nop
jmp 0x408d37
nop
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x408d6c
cmp dword [ebp - 0xc], 0
jns 0x408d5c
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_TerminateProcess]
call eax
sub esp, 8
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x408d83
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0xc]
shr eax, 0x1f
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
lea esp, [ecx - 4]
ret