Function at 0x4037c0
Capabilities:
Create process on windows
Set current directory

Disassembly:
mov eax, dword [0x427698]
sub esp, 0xc
test eax, eax
push edi
jne 0x403b39
mov eax, dword [0x427288]
mov edi, dword [0x427284]
test eax, eax
mov dword [esp + 8], 0
mov dword [esp + 4], edi
jbe 0x403b39
push ebx
push ebp
push esi
jmp 0x4037f9
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x16]
mov eax, dword [esp + 0x24]
mov esi, ecx
shr esi, 0x1b
and esi, 1
mov dword [esp + 0x18], esi
je 0x403819
cmp eax, 1
je 0x403b13
jmp 0x403822
cmp eax, 2
je 0x403b13
mov eax, dword [esp + 0x20]
mov edx, ecx
and edx, 0x7000000
cmp edx, eax
jne 0x403b13
cmp eax, 0x3000000
ja 0x40387a
je 0x403885
cmp eax, 0x1000000
je 0x40384d
cmp eax, 0x2000000
jne 0x40389a
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40386c
mov eax, dword [0x42769c]
test eax, eax
je 0x40389a
test ecx, 0x80000000
jne 0x403b13
jmp 0x40389a
test ecx, 0x80000000
je 0x403b13
jmp 0x40389a
cmp eax, 0x4000000
jne 0x40389a
test esi, esi
jne 0x40389a
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40389a
mov eax, dword [0x42769c]
test eax, eax
jne 0x403b13
test ecx, 0x40000000
je 0x403946
xor eax, eax
test esi, esi
setne al
add eax, 0x21
push eax
push 7
call fcn.004036a0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x403946
cmp byte [ebp], 0
je 0x403946
push 0
push edi
call fcn.00403b40
mov ebx, eax
push 0x5c
push ebx
call fcn.00418f20
add esp, 0x10
test eax, eax
je 0x4038e7
lea ebx, [eax + 1]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 1]
push eax
call fcn.00419070
mov esi, eax
add esp, 4
test esi, esi
je 0x40393e
push ebx
push ebp
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x24
push esi
call fcn.00403660
xor ecx, ecx
cmp eax, 6
sete cl
push esi
mov edi, ecx
call fcn.004191d3
add esp, 0x18
test edi, edi
je 0x403b0f
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
push edi
call fcn.0040d560
add esp, 4
test esi, esi
je 0x4039bc
mov edx, dword [0x4271fc]
push 0
push edx
call fcn.00401040
add esp, 8
cmp eax, 0xffffffff
je 0x403b13
push eax
call fcn.004012c0
mov eax, dword [0x4271fc]
push 0x2e
push eax
call fcn.00418f20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40398f
mov esi, dword [0x4220a4]
mov ecx, dword [0x4271f8]
mov edx, dword [0x4271fc]
push 0x104
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov eax, dword [0x4271f8]
push esi
push eax
call fcn.00402660
add esp, 8
jmp 0x403b13
mov ecx, dword [0x427690]
push ecx
call fcn.004020b0
mov edx, dword [0x427690]
add esp, 4
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x427690]
push eax
call fcn.00402060
mov ecx, dword [0x4271f8]
mov edx, dword [0x4271fc]
add esp, 4
push 0x104
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push 8
push edi
call fcn.00403b40
mov ebp, eax
add esp, 8
mov ebx, ebp
cmp byte [ebp], 0
je 0x403a37
push 0xffdc
push ebp
push 0
call fcn.0040c0c0
lea esi, [eax + 1]
push esi
call fcn.00419070
mov ebx, eax
push esi
push ebp
push ebx
call fcn.0040c0c0
add esp, 0x1c
test dword [edi + 0x16], 0x10000000
je 0x403a92
mov eax, dword [0x4271f8]
push 1
push ebx
push eax
call fcn.00402b50
mov eax, dword [edi + 0x16]
add esp, 0xc
test eax, 0x20000000
je 0x403b00
mov ecx, dword [0x4271f8]
push ecx
call fcn.004194a0
add esp, 4
test eax, eax
je 0x403b00
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [0x4271f8]
push edx
call fcn.004194a0
add esp, 4
jmp 0x403b00
cmp byte [ebx], 0x30
je 0x403af2
mov edi, 0x4222f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x4271f8]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x4271f8]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x10]
mov eax, dword [0x4271f8]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
cmp ebx, ebp
je 0x403b13
push ebx
call fcn.004191d3
add esp, 4
jmp 0x403b13
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push edi
inc esi
mov dword [esp + 0x18], esi
call fcn.004037b0
mov dword [esp + 0x14], eax
mov eax, dword [0x427288]
add esp, 4
cmp esi, eax
jb 0x4037f5
pop esi
pop ebp
pop ebx
pop edi
add esp, 0xc
ret