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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x380
mov eax, dword [0x522638]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x104
lea eax, [ebp - 0x20c]
xor ebx, ebx
push eax
push ebx
mov edi, ecx
mov dword [ebp - 0x284], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor ecx, ecx
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x24c], 7
mov dword [ebp - 0x250], ebx
mov word [ebp - 0x260], cx
lea edx, [eax + 2]
jmp 0x4673c0
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4673c0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x20c]
push edx
lea ecx, [ebp - 0x260]
call fcn.00405fe0
push 1
push 0xffffffffffffffff
push 0x4e84a0
lea ecx, [ebp - 0x260]
call fcn.00454060
cmp eax, 0xffffffff
jne 0x467414
cmp dword [ebp - 0x24c], 8
jb 0x467894
mov eax, dword [ebp - 0x260]
push eax
jmp 0x46788c
mov ecx, dword [ebp - 0x250]
inc eax
cmp eax, ecx
ja 0x46742f
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x260]
call fcn.0043f2c0
jmp 0x46743e
sub eax, ecx
push ebx
push eax
lea ecx, [ebp - 0x260]
call fcn.0040c680
push ebx
lea ecx, [ebp - 0x324]
push ecx
lea ecx, [ebp - 0x2dc]
mov dword [ebp - 0x33c], 0x4ec2e0
mov dword [ebp - 0x32c], 0x4ec2d8
mov dword [ebp - 0x2dc], 0x4ec1e4
mov dword [ebp - 0x334], ebx
mov dword [ebp - 0x330], ebx
call fcn.004654b0
mov edx, dword [ebp - 0x32c]
mov eax, dword [edx + 4]
mov dword [ebp + eax - 0x32c], 0x4ec1e0
mov ecx, dword [ebp - 0x33c]
mov edx, dword [ecx + 4]
mov dword [ebp + edx - 0x33c], 0x4ec1e8
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax + 4]
mov dword [ebp + ecx - 0x33c], 0x4ec2bc
lea ecx, [ebp - 0x324]
call fcn.00464730
mov eax, dword [ebp - 0x32c]
mov edx, dword [edi]
mov dword [ebp - 0x324], 0x4ec25c
mov dword [ebp - 0x2e8], ebx
mov dword [ebp - 0x2e4], ebx
mov eax, dword [eax + 4]
mov ecx, dword [edx + 8]
mov edx, dword [ebp + eax - 0x318]
lea eax, [ebp + eax - 0x32c]
push esi
push 0x4ec30c
push ecx
and edx, 0xfffff9ff
or edx, 0x800
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax + 4]
push 0x4ec2e8
lea ecx, [ebp - 0x260]
push ecx
lea edx, [ebp - 0x32c]
lea eax, [ebp + eax - 0x32c]
push 0x4eba68
mov edi, 8
or dword [eax + 0x14], edi
push edx
call fcn.00465550
add esp, 8
push eax
call fcn.004657b0
add esp, 8
push eax
call fcn.00465550
add esp, 8
mov ecx, eax
call fcn.00465f80
push eax
call fcn.004659d0
add esp, 8
mov ecx, eax
call fcn.00465f80
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x324]
call fcn.00467230
mov eax, dword [ebp - 0x27c]
cmp dword [ebp - 0x268], edi
jae 0x467591
lea eax, [ebp - 0x27c]
push eax
call fcn.0040c758
add esp, 4
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x268], edi
jb 0x4675b7
mov ecx, dword [ebp - 0x27c]
push ecx
call fcn.00406ca9
add esp, 4
push 0x40
lea edx, [ebp - 0x37c]
push ebx
push edx
call fcn.004b8020
add esp, 0xc
lea ecx, [ebp - 0x294]
mov dword [ebp - 0x380], 0x44
call fcn.0041c460
push ebx
xor eax, eax
mov esi, 7
push 0x105
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x214], esi
mov dword [ebp - 0x218], ebx
mov word [ebp - 0x228], ax
call fcn.0040c680
mov eax, dword [ebp - 0x228]
cmp dword [ebp - 0x214], edi
jae 0x46761d
lea eax, [ebp - 0x228]
mov ecx, dword [ebp - 0x218]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp eax, ebx
je 0x467828
cmp eax, dword [ebp - 0x218]
ja 0x467828
push ebx
xor edx, edx
push 0x105
lea ecx, [ebp - 0x244]
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x234], ebx
mov word [ebp - 0x244], dx
call fcn.0040c680
mov eax, dword [ebp - 0x244]
cmp dword [ebp - 0x230], edi
jae 0x467679
lea eax, [ebp - 0x244]
mov ecx, dword [ebp - 0x234]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp eax, ebx
je 0x4677fc
cmp eax, dword [ebp - 0x234]
ja 0x4677fc
mov eax, dword [ebp - 0x244]
cmp dword [ebp - 0x230], edi
jae 0x4676af
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x467701
lea ecx, [ebp - 0x244]
call fcn.00409f90
lea ecx, [ebp - 0x228]
call fcn.00409f90
lea ecx, [ebp - 0x294]
call fcn.00430480
lea ecx, [ebp - 0x280]
call fcn.00442140
lea ecx, [ebp - 0x33c]
call fcn.00465140
lea ecx, [ebp - 0x260]
call fcn.00409f90
jmp 0x467894
mov esi, dword [ebp - 0x244]
cmp dword [ebp - 0x230], edi
jae 0x467715
lea esi, [ebp - 0x244]
lea ecx, [ebp - 0x294]
call fcn.0042d380
push eax
mov eax, dword [ebp - 0x280]
lea edx, [ebp - 0x380]
push edx
push esi
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov esi, eax
mov eax, dword [ebp - 0x228]
cmp dword [ebp - 0x214], edi
jae 0x467752
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp esi, ebx
je 0x4676ba
mov ecx, dword [ebp - 0x294]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea edx, [ebp - 0x284]
mov esi, eax
mov eax, dword [ebp - 0x294]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
setne al
cmp esi, 0x102
je 0x4676ba
cmp al, bl
je 0x4677a5
cmp dword [ebp - 0x284], ebx
jne 0x4677a5
mov bl, 1
lea ecx, [ebp - 0x244]
call fcn.00409f90
lea ecx, [ebp - 0x228]
call fcn.00409f90
lea ecx, [ebp - 0x294]
call fcn.00430480
lea ecx, [ebp - 0x280]
call fcn.00442140
lea ecx, [ebp - 0x33c]
call fcn.00465140
lea ecx, [ebp - 0x260]
call fcn.00409f90
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401306
mov esp, ebp
pop ebp
ret 4
cmp dword [ebp - 0x230], edi
jb 0x467813
mov ecx, dword [ebp - 0x244]
push ecx
call fcn.00406ca9
add esp, 4
xor edx, edx
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x234], ebx
mov word [ebp - 0x244], dx
cmp dword [ebp - 0x214], edi
jb 0x46783f
mov eax, dword [ebp - 0x228]
push eax
call fcn.00406ca9
add esp, 4
xor ecx, ecx
mov word [ebp - 0x228], cx
lea ecx, [ebp - 0x294]
mov dword [ebp - 0x214], esi
mov dword [ebp - 0x218], ebx
call fcn.00430480
mov eax, dword [ebp - 0x280]
cmp eax, ebx
je 0x467872
push eax
call fcn.00402cae
add esp, 4
lea ecx, [ebp - 0x33c]
call fcn.00465140
cmp dword [ebp - 0x24c], edi
jb 0x467894
mov edx, dword [ebp - 0x260]
push edx
call fcn.00406ca9
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor al, al
pop ebx
call fcn.00401306
mov esp, ebp
pop ebp
ret 4