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

Disassembly:
push ebp
lea ebp, [esp - 0x61c4]
mov eax, 0x6240
call fcn.0040f5e0
mov eax, dword [0x431920]
xor eax, ebp
mov dword [ebp + 0x61c0], eax
push ebx
push esi
mov esi, dword [ebp + 0x61d0]
xor ebx, ebx
mov byte [0x43e930], bl
cmp esi, ebx
je 0x40e510
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push edi
xor edi, edi
sar eax, 2
inc edi
cmp eax, edi
jbe 0x40e2d9
push edi
mov ecx, esi
call fcn.00406e3d
push str._create_i4j_log
push dword [eax]
call fcn.0040f895
pop ecx
pop ecx
test eax, eax
je 0x40e2a9
push edi
mov ecx, esi
call fcn.00406e3d
push str._create_e4j_log
push dword [eax]
call fcn.0040f895
pop ecx
pop ecx
test eax, eax
je 0x40e2a9
push edi
mov ecx, esi
call fcn.00406e3d
push 0x42c66c
push dword [eax]
call fcn.0040f895
pop ecx
pop ecx
test eax, eax
je 0x40e2a9
push edi
mov ecx, esi
call fcn.00406e3d
push 0x42c64c
push dword [eax]
call fcn.0040f895
pop ecx
pop ecx
test eax, eax
jne 0x40e2d9
push esi
push dword [esi + 0xc]
lea ecx, [ebp - 0x20]
call fcn.00407102
push edi
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x20]
call fcn.00406056
push dword [eax + 4]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.0040e1c4
mov byte [0x4400b3], 1
cmp byte [ebp + 0x61d4], bl
je 0x40e50f
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
xor edi, edi
sar eax, 2
mov dword [ebp - 0x1c], edi
test eax, eax
jbe 0x40e50f
push edi
mov ecx, esi
call fcn.00406e3d
push str._temp
push dword [eax]
call fcn.0040f895
pop ecx
pop ecx
test eax, eax
je 0x40e345
push edi
mov ecx, esi
call fcn.00406e3d
push 0x42c634
push dword [eax]
call fcn.0040f895
pop ecx
pop ecx
test eax, eax
je 0x40e345
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
inc edi
sar eax, 2
mov dword [ebp - 0x1c], edi
cmp edi, eax
jb 0x40e2fb
jmp 0x40e50f
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
sar eax, 2
dec eax
cmp edi, eax
jae 0x40e4e4
inc edi
push edi
mov ecx, esi
call fcn.00406e3d
push dword [eax]
call fcn.0040f87b
pop ecx
test eax, eax
jbe 0x40e4e4
push edi
mov ecx, esi
call fcn.00406e3d
push dword [eax]
call fcn.0040f87b
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040ef5c
pop ecx
pop ecx
push edi
mov ecx, esi
mov dword [0x43e8d4], eax
call fcn.00406e3d
push dword [eax]
push dword [0x43e8d4]
call fcn.0040fdea
xor edi, edi
inc edi
push edi
push ebx
push dword [0x43e8d4]
call fcn.00404dc6
add esp, 0x14
test al, al
je 0x40e468
lea eax, [ebp - 0x14]
push eax
push dword [0x43e8d4]
mov dword [ebp - 0x14], ebx
call fcn.0040eea3
pop ecx
pop ecx
mov dword [0x43e8d8], eax
cmp dword [ebp - 0x14], ebx
jne 0x40e3f8
push edi
push ebx
push eax
call fcn.00404d4e
add esp, 0xc
test al, al
jne 0x40e44a
push 0x1770
lea eax, [ebp + 0x2ed0]
push eax
push dword [0x43e8d4]
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
push dword [0x43e8d8]
call fcn.0040f388
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x2ed0]
push eax
mov dword [ebp - 0x14], ebx
call fcn.0040eea3
add esp, 0xc
mov dword [0x43e8d8], eax
cmp dword [ebp - 0x14], ebx
jne 0x40e468
push edi
push ebx
push eax
call fcn.00404d4e
add esp, 0xc
test al, al
je 0x40e468
push dword [0x43e8d8]
push dword [0x43e8d4]
push str.Using_manual_temp_dir__s___S_
call fcn.0040c1e2
add esp, 0xc
jmp 0x40e50f
push dword [0x43e8d8]
push dword [0x43e8d4]
push str.Manual_temp_dir_not_usable__s___S_
call fcn.0040c1e2
mov eax, dword [0x43e8d4]
add esp, 0xc
cmp eax, ebx
je 0x40e497
push eax
call fcn.0040f388
pop ecx
mov dword [0x43e8d4], ebx
mov eax, dword [0x43e8d8]
cmp eax, ebx
je 0x40e4ad
push eax
call fcn.0040f388
pop ecx
mov dword [0x43e8d8], ebx
push esi
push dword [esi + 0xc]
lea ecx, [ebp - 0x18]
call fcn.00407102
push edi
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.00406056
mov ecx, eax
call fcn.00406056
push dword [eax + 4]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x18]
push eax
call fcn.0040e1c4
push esi
push dword [esi + 0xc]
lea ecx, [ebp - 0x18]
call fcn.00407102
push dword [ebp - 0x1c]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.00406056
push dword [eax + 4]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x38]
push eax
call fcn.0040e1c4
pop edi
push esi
call fcn.004038d5
mov eax, dword [ebp + 0x61cc]
mov dword [0x4400ac], eax
push 2
lea eax, [ebp - 0x14]
push eax
push 0x7d1
call fcn.004037d1
mov al, byte [ebp - 0x14]
add esp, 0x10
mov byte [0x4400a0], al
cmp al, 0x65
jne 0x40e556
mov dword [0x4400a8], str.exe4j
mov dword [0x4400a4], 0x42c24c
jmp 0x40e56a
mov dword [0x4400a8], str.install4j
mov dword [0x4400a4], 0x42c22c
cmp byte [0x4400b0], bl
je 0x40e57a
cmp byte [0x4400b1], bl
je 0x40e5e4
push 0x1770
lea eax, [ebp - 0x10]
push eax
push 0x92
call fcn.0040379b
add esp, 0xc
cmp word [ebp - 0x10], bx
je 0x40e5d9
lea eax, [ebp - 0x10]
push 1
push eax
call fcn.004068a9
push 1
push 1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x2ed0]
push eax
call fcn.00405655
add esp, 0x18
lea eax, [ebp + 0x2ed0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [ebp + 0x2ed0]
push eax
push str.change_working_directory_to__s
call fcn.0040c1e2
pop ecx
jmp 0x40e5e3
push str.working_directory_unchanged
call fcn.0040c1e2
pop ecx
cmp byte [0x4400b3], bl
je 0x40e6c6
call fcn.0040c16c
push eax
lea eax, [ebp - 0x10]
push str.The_following_log_file_will_be_created:_n_n_s_n_nDo_you_want_to_open_an_Explorer_window_
push eax
call fcn.0040fe09
add esp, 0xc
push 4
push dword [0x4400a4]
lea eax, [ebp - 0x10]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x40e6c6
mov esi, 0x104
lea eax, [ebp + 0x5db0]
push esi
push eax
call fcn.0040c16c
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
push esi
lea eax, [ebp + 0x5fb8]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp + 0x5db0]
push eax
lea eax, [ebp + 0x5fb8]
push eax
lea eax, [ebp - 0x10]
push str._sexplorer.exe__select__s
push eax
call fcn.0040fe09
lea eax, [ebp - 0x10]
push eax
push str.calling__s
call fcn.0040c1e2
push 0x10
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.00410e00
push 0x44
pop esi
push esi
lea eax, [ebp - 0x7c]
push ebx
push eax
call fcn.00410e00
add esp, 0x30
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x7c]
push eax
push ebx
push ebx
push 0x20
push 1
push ebx
push ebx
lea eax, [ebp - 0x10]
push eax
push ebx
mov dword [ebp - 0x7c], esi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x40e6c6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.could_not_open_explorer_window__d
call fcn.0040c1e2
pop ecx
pop ecx
mov ecx, dword [ebp + 0x61c0]
pop esi
xor ecx, ebp
pop ebx
call fcn.0040f5c8
add ebp, 0x61c4
leave
ret