Function at 0x4061e3
Capabilities:
Create process on windows
Create thread
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x364
push ebx
push esi
mov ebx, 0x40e9e8
push edi
push ebx
call fcn.00406898
mov esi, dword [sym.imp._lstrcpyA]
pop ecx
test eax, eax
jbe 0x40636d
mov dl, byte [0x40df90]
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x363]
mov byte [ebp - 0x364], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x21b]
mov byte [ebp - 0x21c], dl
push 0x40
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x117]
mov byte [ebp - 0x118], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x40a79c
push 0
push edi
push ebx
call fcn.00406864
pop ecx
push eax
call fcn.00403f27
add esp, 0xc
push eax
lea eax, [ebp - 0x364]
push eax
call esi
push 1
push edi
push ebx
call fcn.00406864
pop ecx
push eax
call fcn.00403f27
add esp, 0xc
push eax
lea eax, [ebp - 0x21c]
push eax
call esi
lea eax, [ebp - 0x364]
push eax
call fcn.00404148
pop ecx
push eax
lea eax, [ebp - 0x364]
push eax
call esi
lea eax, [ebp - 0x21c]
push eax
call fcn.00404148
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
call esi
lea eax, [ebp - 0x364]
push eax
call fcn.0040468f
lea eax, [ebp - 0x21c]
push eax
call fcn.0040468f
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x364]
push eax
call fcn.0040401e
lea eax, [ebp - 0x118]
push eax
call fcn.00404002
add esp, 0x14
test eax, eax
jne 0x406309
lea eax, [ebp - 0x118]
push eax
call fcn.00404560
pop ecx
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0040401e
lea eax, [ebp - 0x118]
push eax
call fcn.00404002
add esp, 0xc
test eax, eax
jne 0x40633c
lea eax, [ebp - 0x118]
push eax
call fcn.00404560
pop ecx
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x364]
push eax
call fcn.00406769
push ebx
call fcn.0040686b
push ebx
call fcn.00406898
add esp, 0x14
test eax, eax
ja 0x406209
mov ebx, 0x40ae50
push ebx
call dword [sym.imp._lstrlenA]
test eax, eax
jle 0x4066ba
mov al, byte [0x40df90]
push 0x40
mov byte [ebp - 0x118], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x117]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x10
xor eax, eax
pop ecx
lea edi, [ebp - 0x25c]
rep stosd dword es:[edi], eax
mov edi, 0x40ea00
mov dword [ebp - 0x260], 0x44
push edi
call fcn.0040468f
pop ecx
push edi
call dword [sym.imp._SetCurrentDirectoryA]
push ebx
call fcn.00404148
pop ecx
push eax
lea eax, [ebp - 0x118]
push eax
call esi
lea eax, [ebp - 0x118]
push eax
call fcn.0040468f
push 3
lea eax, [ebp - 0x118]
pop esi
push esi
push eax
call fcn.00403d27
push eax
push 0x40a798
call fcn.00403ee1
add esp, 0x14
test eax, eax
je 0x4065f7
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a794
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065f7
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a790
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065f7
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a78c
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a788
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a784
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a780
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a77c
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a778
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a774
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a770
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a76c
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a768
call fcn.00403ee1
add esp, 0x10
test eax, eax
je 0x4065c4
lea eax, [ebp - 0x118]
push esi
push eax
call fcn.00403d27
push eax
push 0x40a764
call fcn.00403ee1
add esp, 0x10
test eax, eax
jne 0x4066ba
mov esi, 0x40df90
push esi
push 0x104
call dword [sym.imp._GetCurrentDirectoryA]
push 0xa
push esi
lea eax, [ebp - 0x118]
push 0
push eax
push str.open
push dword [0x40eb04]
call dword [0x4070fc]
jmp 0x4066ba
lea eax, [ebp - 0x118]
push eax
call fcn.00404705
test eax, eax
pop ecx
je 0x4066a4
lea eax, [ebp - 0x14]
xor esi, esi
push eax
lea eax, [ebp - 0x260]
push eax
push esi
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x118]
push esi
push eax
push esi
call dword [sym.imp._CreateProcessA]
test eax, eax
je 0x406657
push esi
mov esi, dword [0x407110]
push dword [0x40eb04]
call esi
push 0xffffffffffffffff
push dword [ebp - 0x14]
call dword [sym.imp._WaitForSingleObject]
push 5
push dword [0x40eb04]
call esi
jmp 0x4066ba
mov al, byte [0x40df90]
push 0x3f
mov byte [ebp - 0x218], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x217]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x218]
push str._s_could_not_be_executed.
push eax
call dword [0x407178]
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x10
push str.Error
push eax
push esi
call dword [0x407164]
jmp 0x4066ba
lea eax, [ebp - 0x118]
push 5
push eax
mov dword [ebp - 4], 1
call dword [sym.imp._WinExec]
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 4], eax
pop edi
pop esi
pop ebx
sete cl
test dword [0x40df78], ecx
je 0x4066e2
lea ecx, [ebp - 4]
push ecx
push eax
push eax
push 0x406038
push eax
push eax
call dword [sym.imp._CreateThread]
leave
ret