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

Disassembly:
push ebp
lea ebp, [esp - 0x61c4]
mov eax, 0x6240
call fcn.0040ede0
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 [0x4400a0], bl
cmp esi, ebx
je 0x40dd33
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push edi
xor edi, edi
sar eax, 2
inc edi
cmp eax, edi
jbe 0x40daac
push edi
mov ecx, esi
call fcn.004092c6
push str._create_i4j_log
push dword [eax]
call fcn.0040f095
pop ecx
pop ecx
test eax, eax
je 0x40da7c
push edi
mov ecx, esi
call fcn.004092c6
push str._create_e4j_log
push dword [eax]
call fcn.0040f095
pop ecx
pop ecx
test eax, eax
je 0x40da7c
push edi
mov ecx, esi
call fcn.004092c6
push 0x42c1ac
push dword [eax]
call fcn.0040f095
pop ecx
pop ecx
test eax, eax
je 0x40da7c
push edi
mov ecx, esi
call fcn.004092c6
push 0x42c18c
push dword [eax]
call fcn.0040f095
pop ecx
pop ecx
test eax, eax
jne 0x40daac
push esi
push dword [esi + 0xc]
lea ecx, [ebp - 0x20]
call fcn.00406e7f
push edi
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x20]
call fcn.0040960c
push dword [eax + 4]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.0040702e
mov byte [0x441823], 1
cmp byte [ebp + 0x61d4], bl
je 0x40dd32
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 0x40dd32
push edi
mov ecx, esi
call fcn.004092c6
push str._temp
push dword [eax]
call fcn.0040f095
pop ecx
pop ecx
test eax, eax
je 0x40db18
push edi
mov ecx, esi
call fcn.004092c6
push 0x42c174
push dword [eax]
call fcn.0040f095
pop ecx
pop ecx
test eax, eax
je 0x40db18
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
inc edi
sar eax, 2
mov dword [ebp - 0x1c], edi
cmp edi, eax
jb 0x40dace
jmp 0x40dd32
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
sar eax, 2
dec eax
cmp edi, eax
jae 0x40dd07
inc edi
push edi
mov ecx, esi
call fcn.004092c6
push dword [eax]
call fcn.0040f07b
pop ecx
test eax, eax
jbe 0x40dd07
push edi
mov ecx, esi
call fcn.004092c6
push dword [eax]
call fcn.0040f07b
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040e75d
pop ecx
pop ecx
push edi
mov ecx, esi
mov dword [0x440044], eax
call fcn.004092c6
push dword [eax]
push dword [0x440044]
call fcn.0040f5ea
push 1
push ebx
push dword [0x440044]
call fcn.00404b38
add esp, 0x14
test al, al
je 0x40dc8a
mov edi, 0x1770
push edi
mov dword [ebp - 0x14], ebx
call fcn.0040e75d
pop ecx
lea ecx, [ebp - 0x14]
push ecx
push 0x428e38
push edi
push eax
push dword [0x440044]
mov dword [0x440048], eax
call fcn.0040f07b
mov edi, dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
pop ecx
inc eax
push eax
push dword [0x440044]
push ebx
call edi
neg eax
sbb eax, eax
inc eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp dword [ebp - 0x14], ebx
jne 0x40dbfe
push 1
push ebx
push dword [0x440048]
call fcn.00404ac0
add esp, 0xc
test al, al
jne 0x40dc6c
push 0x1770
lea eax, [ebp + 0x2ed0]
push eax
push dword [0x440044]
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea eax, [ebp - 0x14]
push eax
push 0x428e38
push 0x1770
push dword [0x440048]
lea eax, [ebp + 0x2ed0]
push eax
mov dword [ebp - 0x14], ebx
call fcn.0040f07b
pop ecx
inc eax
push eax
lea eax, [ebp + 0x2ed0]
push eax
push ebx
call edi
neg eax
sbb eax, eax
inc eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp dword [ebp - 0x14], ebx
jne 0x40dc8a
push 1
push ebx
push dword [0x440048]
call fcn.00404ac0
add esp, 0xc
test al, al
je 0x40dc8a
push dword [0x440048]
push dword [0x440044]
push str.Using_manual_temp_dir__s___S_
call fcn.0040be55
add esp, 0xc
jmp 0x40dd32
push dword [0x440048]
push dword [0x440044]
push str.Manual_temp_dir_not_usable__s___S_
call fcn.0040be55
mov eax, dword [0x440044]
add esp, 0xc
cmp eax, ebx
je 0x40dcb9
push eax
call fcn.0040eb88
pop ecx
mov dword [0x440044], ebx
mov eax, dword [0x440048]
cmp eax, ebx
je 0x40dccf
push eax
call fcn.0040eb88
pop ecx
mov dword [0x440048], ebx
push esi
push dword [esi + 0xc]
lea ecx, [ebp - 0x18]
call fcn.00406e7f
push 1
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040960c
mov ecx, eax
call fcn.0040960c
push dword [eax + 4]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x18]
push eax
call fcn.0040702e
push esi
push dword [esi + 0xc]
lea ecx, [ebp - 0x18]
call fcn.00406e7f
push dword [ebp - 0x1c]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040960c
push dword [eax + 4]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x38]
push eax
call fcn.0040702e
pop edi
push esi
call fcn.004038d4
mov eax, dword [ebp + 0x61cc]
mov dword [0x44181c], eax
push 2
lea eax, [ebp - 0x14]
push eax
push 0x7d1
call fcn.004037d0
mov al, byte [ebp - 0x14]
add esp, 0x10
mov byte [0x441810], al
cmp al, 0x65
jne 0x40dd79
mov dword [0x441818], str.exe4j
mov dword [0x441814], 0x42bd88
jmp 0x40dd8d
mov dword [0x441818], str.install4j
mov dword [0x441814], 0x42bd68
cmp byte [0x441820], bl
je 0x40dd9d
cmp byte [0x441821], bl
je 0x40de0a
push 0x1770
lea eax, [ebp + 0x2ed0]
push eax
push 0x92
call fcn.0040379a
add esp, 0xc
cmp word [ebp + 0x2ed0], bx
je 0x40ddff
lea eax, [ebp + 0x2ed0]
push 1
push eax
call fcn.0040664d
push 1
push 1
lea eax, [ebp + 0x2ed0]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004053c4
add esp, 0x18
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [ebp - 0x10]
push eax
push str.change_working_directory_to__s
call fcn.0040be55
pop ecx
jmp 0x40de09
push str.working_directory_unchanged
call fcn.0040be55
pop ecx
cmp byte [0x441823], bl
je 0x40defb
call fcn.0040bddf
push eax
lea eax, [ebp + 0x2ed0]
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.0040f609
add esp, 0xc
push 4
push dword [0x441814]
lea eax, [ebp + 0x2ed0]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x40defb
mov esi, 0x104
lea eax, [ebp + 0x5fb8]
push esi
push eax
call fcn.0040bddf
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
push esi
lea eax, [ebp + 0x5db0]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp + 0x5fb8]
push eax
lea eax, [ebp + 0x5db0]
push eax
lea eax, [ebp + 0x2ed0]
push str._sexplorer.exe__select__s
push eax
call fcn.0040f609
lea eax, [ebp + 0x2ed0]
push eax
push str.calling__s
call fcn.0040be55
push 0x10
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.00411640
push 0x44
pop esi
push esi
lea eax, [ebp - 0x7c]
push ebx
push eax
call fcn.00411640
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 + 0x2ed0]
push eax
push ebx
mov dword [ebp - 0x7c], esi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x40defb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.could_not_open_explorer_window__d
call fcn.0040be55
pop ecx
pop ecx
mov ecx, dword [ebp + 0x61c0]
pop esi
xor ecx, ebp
pop ebx
call fcn.0040edc8
add ebp, 0x61c4
leave
ret