Function at 0x42b2a0
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4529a1
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x468744]
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 0x46b6b8
mov edi, ecx
push 0
mov dword [ebp - 0x454], edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x46b6b8
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, 0x46b6b8
lea edx, [eax + 2]
jmp 0x42b300
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42b300
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0xcd0]
mov eax, 0x46b6b8
call fcn.00406580
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42b7c7
mov eax, dword [edi + 0xcb4]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x42b7c7
lea eax, [edi + 0x814]
push eax
call fcn.0042cb40
cmp dword [esi + 0x14], 8
jb 0x42b35f
mov eax, dword [esi]
jmp 0x42b361
mov eax, esi
push eax
push str.__Source:__s
push 0x4699d4
xor eax, eax
call fcn.0042d020
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 ebx, eax
test ebx, ebx
je 0x42b480
lea ecx, [ebp - 0x440]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
cmp dword [ebp - 0x440], 0
setne al
test al, al
je 0x42b480
push 0x11c
lea edx, [ebp - 0x130]
push 0
push edx
call fcn.0043d3f0
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 0x42b480
cmp eax, 0xffffffff
ja 0x42b480
push 0x104
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
test eax, eax
jne 0x42b43f
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.msls31.dll
lea ecx, [ebp - 0x218]
push ecx
call ebx
push 0x8000
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
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 dword [sym.imp.KERNEL32.dll_SetErrorMode]
jmp 0x42b486
mov ebx, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x104
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.tempLangen_USigxpin.exe.mui
lea edx, [ebp - 0x420]
push edx
call ebx
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42b4d0
push 0x104
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.tempLang
jmp 0x42b51f
push str.uninstall
call fcn.00402130
test eax, eax
je 0x42b4fd
cmp dword [esi + 0x14], 8
jb 0x42b4e6
mov esi, dword [esi]
push esi
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0043a483
add esp, 0xc
jmp 0x42b528
cmp dword [esi + 0x14], 8
jb 0x42b505
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x420]
push 0x104
push ecx
call fcn.0043a483
add esp, 0xc
push str.Lang
lea edx, [ebp - 0x420]
push edx
call ebx
lea esi, [ebp - 0x420]
call fcn.0042df40
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
xor ebx, ebx
cmp dword [edi + 0xc], ebx
je 0x42b693
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.0042a490
mov esi, 8
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], esi
jb 0x42b577
mov eax, dword [eax]
push eax
push str.Error_in_command_line:__s
push 0x4699d4
mov eax, 2
call fcn.0042d020
add esp, 0xc
mov byte [ebp - 4], 0
cmp dword [ebp - 0x428], esi
jb 0x42b5aa
mov eax, dword [ebp - 0x43c]
push eax
call fcn.00439b10
add esp, 4
lea esi, [ebp - 0x43c]
call fcn.0042a490
mov ecx, eax
lea ebx, [ebp - 0x450]
mov byte [ebp - 4], 2
call fcn.0040d610
xor ebx, ebx
mov byte [ebp - 4], bl
cmp dword [ebp - 0x428], 8
jb 0x42b5e3
mov ecx, dword [ebp - 0x43c]
push ecx
call fcn.00439b10
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.00433a00
add esp, 0x10
cmp eax, 7
jne 0x42b664
mov dword [0x4699f8], 0xa001
call fcn.0042cf60
mov esi, dword [ebp - 0x450]
mov dword [edi + 0x10], 1
cmp esi, ebx
je 0x42b7c7
mov edi, dword [ebp - 0x44c]
mov eax, esi
call fcn.0040d800
push esi
call fcn.00439b10
add esp, 4
jmp 0x42b7c7
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x450]
cmp esi, ebx
je 0x42b691
mov edi, dword [ebp - 0x44c]
mov eax, esi
call fcn.0040d800
push esi
call fcn.00439b10
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 0x45bec4
call fcn.00402130
test eax, eax
je 0x42b6cb
mov eax, dword [0x46afc0]
push ebx
push 0x436900
push ebx
push 0x9b
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x42b748
push 0x45e1a8
call fcn.00402130
test eax, eax
je 0x42b6e4
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x42b748
push str.noinstall
call fcn.00402130
test eax, eax
je 0x42b6fb
mov esi, edi
call fcn.0042ba00
jmp 0x42b748
push 0x45be14
call fcn.00402130
test eax, eax
je 0x42b712
mov eax, edi
call fcn.0042ba40
jmp 0x42b748
push str.uninstall
call fcn.00402130
test eax, eax
je 0x42b729
mov esi, edi
call fcn.0042b940
jmp 0x42b748
push 0x456394
call fcn.00402130
test eax, eax
je 0x42b741
push edi
call fcn.0042bba0
test al, al
je 0x42b748
mov esi, edi
call fcn.0042b7f0
push 0x45bec0
call fcn.00402130
test eax, eax
je 0x42b76f
call fcn.00402500
test eax, eax
je 0x42b768
mov esi, edi
call fcn.0042c540
jmp 0x42b783
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x42b774
push str.IIF_will_NOT_initiate_reboot
push 0x4699d4
xor eax, eax
call fcn.0042d020
add esp, 8
call fcn.0042cf60
cmp dword [0x46afb4], ebx
je 0x42b7c1
mov ecx, dword [0x46afc0]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x46afb8], 8
mov eax, dword [0x46afa4]
mov dword [0x46afc0], ebx
mov dword [0x46afb4], ebx
jae 0x42b7bc
mov eax, 0x46afa4
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.00438786
mov esp, ebp
pop ebp
ret