Function at 0x42acd0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x452581
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x469738]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x104
push 0x46c5b8
mov edi, ecx
push 0
mov dword [ebp - 0x454], edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x46c5b8
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, 0x46c5b8
lea edx, [eax + 2]
jmp 0x42ad30
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42ad30
sub eax, edx
sar eax, 1
lea ebx, [edi + 0xcd0]
push eax
mov eax, 0x46c5b8
mov esi, ebx
call fcn.004065b0
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42b188
mov eax, dword [edi + 0xcb4]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x42b188
lea eax, [edi + 0x814]
push eax
call fcn.0042cc70
cmp dword [ebx + 0x14], 8
jb 0x42ad91
mov eax, dword [ebx]
jmp 0x42ad93
mov eax, ebx
push eax
push str.__Source:__s
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 0xc
push str.IsWow64Process
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x42aeac
lea ecx, [ebp - 0x440]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
cmp dword [ebp - 0x440], 0
setne al
test al, al
je 0x42aeac
push 0x11c
lea edx, [ebp - 0x130]
push 0
push edx
call fcn.004440d0
add esp, 0xc
lea eax, [ebp - 0x130]
push eax
mov dword [ebp - 0x130], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx eax, byte [ebp - 0x12c]
movzx ecx, byte [ebp - 0x128]
movzx edx, byte [ebp - 0x16]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x1c]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
cmp eax, 0x5010100
jb 0x42aeac
cmp eax, 0xffffffff
ja 0x42aeac
push 0x104
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
test eax, eax
jne 0x42ae71
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push str.msls31.dll
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8000
call esi
lea edx, [ebp - 0x218]
push edx
mov dword [ebp - 0x440], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov eax, dword [ebp - 0x440]
push eax
call esi
cmp dword [ebx + 0x14], 8
jb 0x42aeb4
mov ebx, dword [ebx]
push ebx
lea ecx, [ebp - 0x420]
push 0x104
push ecx
call fcn.0043a043
add esp, 0xc
push str.uninstall
call fcn.00402130
test eax, eax
jne 0x42aee9
push str.Lang
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea esi, [ebp - 0x420]
call fcn.0042e040
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
xor ebx, ebx
cmp dword [edi + 0xc], ebx
je 0x42b054
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x44c], ebx
mov dword [ebp - 0x448], ebx
lea esi, [ebp - 0x43c]
mov dword [ebp - 4], ebx
call fcn.00429f30
mov esi, 8
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], esi
jb 0x42af38
mov eax, dword [eax]
push eax
push str.Error_in_command_line:__s
push 0x46a9d4
mov eax, 2
call fcn.0042d150
add esp, 0xc
mov byte [ebp - 4], 0
cmp dword [ebp - 0x428], esi
jb 0x42af6b
mov eax, dword [ebp - 0x43c]
push eax
call fcn.004396db
add esp, 4
lea esi, [ebp - 0x43c]
call fcn.00429f30
mov ecx, eax
lea ebx, [ebp - 0x450]
mov byte [ebp - 4], 2
call fcn.0040d5e0
xor ebx, ebx
mov byte [ebp - 4], bl
cmp dword [ebp - 0x428], 8
jb 0x42afa4
mov ecx, dword [ebp - 0x43c]
push ecx
call fcn.004396db
add esp, 4
push 0x7f02
xor edx, edx
push 7
mov word [ebp - 0x43c], dx
push 0x84
push 0x7d9
lea ecx, [ebp - 0x450]
mov edx, 0x3b
mov dword [ebp - 0x428], 7
mov dword [ebp - 0x42c], ebx
call fcn.00433c70
add esp, 0x10
cmp eax, 7
jne 0x42b025
mov dword [0x46a9f8], 0xa001
call fcn.0042d090
mov esi, dword [ebp - 0x450]
mov dword [edi + 0x10], 1
cmp esi, ebx
je 0x42b188
mov edi, dword [ebp - 0x44c]
mov eax, esi
call fcn.0040d7d0
push esi
call fcn.004396db
add esp, 4
jmp 0x42b188
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x450]
cmp esi, ebx
je 0x42b052
mov edi, dword [ebp - 0x44c]
mov eax, esi
call fcn.0040d7d0
push esi
call fcn.004396db
mov edi, dword [ebp - 0x454]
add esp, 4
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
mov ecx, edi
call edx
push 0x45cdc0
call fcn.00402130
test eax, eax
je 0x42b08c
mov eax, dword [0x46bec0]
push ebx
push 0x436a90
push ebx
push 0x9b
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x42b109
push 0x45eb94
call fcn.00402130
test eax, eax
je 0x42b0a5
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x42b109
push str.noinstall
call fcn.00402130
test eax, eax
je 0x42b0bc
mov esi, edi
call fcn.0042b3c0
jmp 0x42b109
push 0x45cd10
call fcn.00402130
test eax, eax
je 0x42b0d3
mov eax, edi
call fcn.0042b400
jmp 0x42b109
push str.uninstall
call fcn.00402130
test eax, eax
je 0x42b0ea
mov esi, edi
call fcn.0042b300
jmp 0x42b109
push 0x457414
call fcn.00402130
test eax, eax
je 0x42b102
push edi
call fcn.0042b560
test al, al
je 0x42b109
mov esi, edi
call fcn.0042b1b0
push 0x45cdbc
call fcn.00402130
test eax, eax
je 0x42b130
call fcn.00402500
test eax, eax
je 0x42b129
mov esi, edi
call fcn.0042c650
jmp 0x42b144
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x42b135
push str.IIF_will_NOT_initiate_reboot
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 8
call fcn.0042d090
cmp dword [0x46beb4], ebx
je 0x42b182
mov ecx, dword [0x46bec0]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x46beb8], 8
mov eax, dword [0x46bea4]
mov dword [0x46bec0], ebx
mov dword [0x46beb4], ebx
jae 0x42b17d
mov eax, 0x46bea4
xor edx, edx
mov word [eax], dx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00438351
mov esp, ebp
pop ebp
ret