Function at 0x40914c
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 0x409191
movzx eax, byte [opt.help]
test al, al
je 0x4091b1
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 0x40944c
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 0x4093e2
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 0x4092eb
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
test eax, eax
jg 0x409290
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x40929f
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 0x4093ef
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 0x4093e5
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 0x4092cc
movzx eax, byte [opt.debug_pause]
test al, al
je 0x409321
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call dbg.inject_pause
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x4093e8
movzx eax, byte [opt.debug]
test al, al
je 0x40938f
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 0x40938f
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
test eax, eax
jg 0x409356
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x409365
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 0x4093ef
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call dbg.inject_resume
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x4093eb
movzx eax, byte [opt.debug]
test al, al
je 0x4093c0
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 0x4093ee
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 0x4093ef
nop
jmp 0x4093ef
nop
jmp 0x4093ef
nop
jmp 0x4093ef
nop
jmp 0x4093ef
nop
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x409424
cmp dword [ebp - 0xc], 0
jns 0x409414
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 0x40943b
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