Function at 0x40e290
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
push esi
push edi
mov edi, eax
call fcn.0040aeb0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e2a3
sub eax, edx
mov edx, eax
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e2b3
sub eax, esi
lea esi, [eax + edx + 8]
push esi
call fcn.00414f9a
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x40e2c0
push edi
push ecx
call fcn.0040aeb0
mov ebx, dword [ebp - 4]
add esp, 4
push eax
push 0x42a684
push ebx
call fcn.0041512c
add esp, 0x10
lea eax, [ebp - 0xc]
push eax
push ebx
mov dword [ebp - 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetBinaryTypeA]
test eax, eax
jne 0x40e31b
push 0x20
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
je 0x40e5a4
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e320
sub eax, edx
lea esi, [eax + 1]
lea esp, [esp]
push esi
call fcn.00414f9a
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40e330
mov esi, eax
push esi
push 0
push 0
push 0
push ebx
call fcn.0041645b
add esp, 0x14
push 0x12
call fcn.004051a0
mov ecx, dword [0x42f218]
mov ecx, dword [ecx + 0x48]
add esp, 4
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e387
test dl, dl
je 0x40e383
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e387
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e367
xor eax, eax
jmp 0x40e38c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e49f
push 4
call fcn.00414f9a
add esp, 4
mov dword [ebp - 8], eax
test eax, eax
je 0x40e394
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, dword [ebp - 8]
mov dword [edx], eax
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e3b6
sub eax, edx
lea esi, [eax + 1]
push esi
call fcn.00414f9a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40e3c2
mov edx, ebx
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40e3d7
push 0x42fa24
call fcn.00403be0
add esp, 4
push 0x42fa1c
call fcn.00403be0
mov eax, dword [0x42f6fc]
mov edi, dword [0x42fa24]
add esp, 4
inc eax
mov dword [0x42f6fc], eax
lea esi, [eax*4]
push esi
push edi
call fcn.0041507f
add esp, 8
test eax, eax
je 0x40e413
mov edi, dword [0x42fa1c]
mov dword [0x42fa24], eax
lea esp, [esp]
push esi
push edi
call fcn.0041507f
add esp, 8
test eax, eax
je 0x40e430
mov edi, dword [ebp - 8]
mov dword [0x42fa1c], eax
mov eax, dword [0x42fa24]
mov dword [esi + eax - 4], ebx
mov ecx, dword [0x42fa1c]
mov dword [esi + ecx - 4], edi
mov esi, 0x42fa24
call fcn.00403ce0
mov esi, 0x42fa1c
call fcn.00403ce0
push 0xb8
call fcn.004051a0
mov edx, dword [0x42f218]
mov eax, dword [edx + 0x2e0]
add esp, 4
push eax
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40e595
call eax
jmp 0x40e595
push 0x11
call fcn.004051a0
mov ecx, dword [0x42f218]
mov ecx, dword [ecx + 0x44]
add esp, 4
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40e4d4
test dl, dl
je 0x40e4d0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40e4d4
add eax, 2
add ecx, 2
test dl, dl
jne 0x40e4b4
xor eax, eax
jmp 0x40e4d9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e598
push 0x44
push eax
lea edx, [ebp - 0x68]
push edx
call fcn.00418380
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x68]
push ecx
push 0
push 0
push 0x100
push 0
push 0
push 0
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e523
sub eax, edx
lea esi, [eax + 1]
nop
push esi
call fcn.00414f9a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40e530
mov edx, ebx
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40e545
push 0x42fa20
call fcn.00403be0
mov eax, dword [0x42f700]
mov edi, dword [0x42fa20]
add esp, 4
inc eax
mov dword [0x42f700], eax
lea esi, [eax*4]
push esi
push edi
call fcn.0041507f
add esp, 8
test eax, eax
je 0x40e574
mov dword [0x42fa20], eax
mov dword [esi + eax - 4], ebx
mov esi, 0x42fa20
call fcn.00403ce0
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
push edx
call fcn.00414f60
add esp, 4
push ebx
call fcn.00414f60
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret