Function at 0x403e65
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov byte [ebp - 0x89], 8
mov byte [ebp - 0x89], 0x7b
movsx eax, byte [ebp - 0x89]
dec eax
mov byte [ebp - 0x89], al
movsx eax, byte [ebp - 0x89]
add eax, 0x31
mov byte [ebp - 0x89], al
mov dword [ebp - 0xc], 0x10e3
push 0
call dword [sym.imp.GDI32.dll_StrokeAndFillPath]
and dword [ebp - 8], 0
mov byte [ebp - 2], 0
movzx eax, byte [ebp - 2]
test eax, eax
je 0x403ec5
movzx eax, byte [ebp - 2]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 2], al
movzx eax, byte [ebp - 2]
test eax, eax
je 0x403ed1
mov byte [ebp - 2], 0
movzx eax, byte [ebp - 2]
test eax, eax
jne 0x403edd
mov byte [ebp - 2], 0
mov dword [ebp - 0x38], 0x144
mov dword [ebp - 0x38], 0xd6
mov eax, dword [ebp - 0x38]
dec eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
add eax, 0x64
mov dword [ebp - 0x38], eax
call dword [sym.imp.USER32.dll_GetCursor]
mov word [ebp - 0x14], 0xc4
mov byte [ebp - 0x31], 0x10
mov byte [ebp - 0x31], 0xf7
movsx eax, byte [ebp - 0x31]
dec eax
mov byte [ebp - 0x31], al
movsx eax, byte [ebp - 0x31]
add eax, 0x75
mov byte [ebp - 0x31], al
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
and word [ebp - 0x58], 0
mov byte [ebp - 0x17], 0
movzx eax, byte [ebp - 0x17]
test eax, eax
je 0x403f44
movzx eax, byte [ebp - 0x17]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x17], al
movzx eax, byte [ebp - 0x17]
test eax, eax
je 0x403f50
mov byte [ebp - 0x17], 0
movzx eax, byte [ebp - 0x17]
test eax, eax
jne 0x403f5c
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 8
mov byte [ebp - 0x16], 0x9e
movsx eax, byte [ebp - 0x16]
dec eax
mov byte [ebp - 0x16], al
movsx eax, byte [ebp - 0x16]
add eax, 0xf8
mov byte [ebp - 0x16], al
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov byte [ebp - 0x2a], 0
movzx eax, byte [ebp - 0x2a]
test eax, eax
je 0x403f96
movzx eax, byte [ebp - 0x2a]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x2a], al
movzx eax, byte [ebp - 0x2a]
test eax, eax
je 0x403fa2
mov byte [ebp - 0x2a], 0
movzx eax, byte [ebp - 0x2a]
test eax, eax
jne 0x403fae
mov byte [ebp - 0x2a], 0
mov byte [ebp - 1], 0x1a
mov byte [ebp - 1], 0x10
movsx eax, byte [ebp - 1]
dec eax
mov byte [ebp - 1], al
movsx eax, byte [ebp - 1]
add eax, 0x33
mov byte [ebp - 1], al
push 0
call dword [sym.imp.GDI32.dll_StartPage]
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.DLL_GetStartupInfoA]
mov byte [ebp - 0x29], 0
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x403ff5
movzx eax, byte [ebp - 0x29]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x29], al
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x404001
mov byte [ebp - 0x29], 0
movzx eax, byte [ebp - 0x29]
test eax, eax
jne 0x40400d
mov byte [ebp - 0x29], 0
mov dword [ebp - 0x30], 0x1b0
mov dword [ebp - 0x30], 0x18
mov eax, dword [ebp - 0x30]
dec eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
add eax, 0xaf
mov dword [ebp - 0x30], eax
push 0
call dword [sym.imp.GDI32.dll_EndPath]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x88]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_CreateProcessA]
test eax, eax
je 0x404062
mov dword [ebp - 8], 1
mov byte [ebp - 0x3d], 0x24
mov byte [ebp - 0x3d], 0x15
movsx eax, byte [ebp - 0x3d]
dec eax
mov byte [ebp - 0x3d], al
movsx eax, byte [ebp - 0x3d]
add eax, 0xde
mov byte [ebp - 0x3d], al
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x404096
movzx eax, byte [ebp - 0xd]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x4040a2
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x4040ae
mov byte [ebp - 0xd], 0
push 0
call dword [sym.imp.GDI32.dll_StrokePath]
mov eax, dword [ebp - 8]
jmp 0x4040f8
leave
ret