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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x452b31
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x469744]
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 0x46c6b8
mov edi, ecx
push 0
mov dword [ebp - 0x454], edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x46c6b8
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, 0x46c6b8
lea edx, [eax + 2]
jmp 0x42b430
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42b430
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0xcd0]
mov eax, 0x46c6b8
call fcn.00406550
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42b8f7
mov eax, dword [edi + 0xcb4]
neg eax
sbb eax, eax
and eax, 0xe
test eax, eax
jne 0x42b8f7
lea eax, [edi + 0x814]
push eax
call fcn.0042cc70
cmp dword [esi + 0x14], 8
jb 0x42b48f
mov eax, dword [esi]
jmp 0x42b491
mov eax, esi
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 ebx, eax
test ebx, ebx
je 0x42b5b0
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 0x42b5b0
push 0x11c
lea edx, [ebp - 0x130]
push 0
push edx
call fcn.0043d4f0
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 0x42b5b0
cmp eax, 0xffffffff
ja 0x42b5b0
push 0x104
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
test eax, eax
jne 0x42b56f
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 0x42b5b6
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 0x42b600
push 0x104
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.tempLang
jmp 0x42b64f
push str.uninstall
call fcn.00402130
test eax, eax
je 0x42b62d
cmp dword [esi + 0x14], 8
jb 0x42b616
mov esi, dword [esi]
push esi
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0043a583
add esp, 0xc
jmp 0x42b658
cmp dword [esi + 0x14], 8
jb 0x42b635
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x420]
push 0x104
push ecx
call fcn.0043a583
add esp, 0xc
push str.Lang
lea edx, [ebp - 0x420]
push edx
call ebx
lea esi, [ebp - 0x420]
call fcn.0042e070
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
xor ebx, ebx
cmp dword [edi + 0xc], ebx
je 0x42b7c3
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.0042a5c0
mov esi, 8
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], esi
jb 0x42b6a7
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 0x42b6da
mov eax, dword [ebp - 0x43c]
push eax
call fcn.00439c00
add esp, 4
lea esi, [ebp - 0x43c]
call fcn.0042a5c0
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 0x42b713
mov ecx, dword [ebp - 0x43c]
push ecx
call fcn.00439c00
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.00433b40
add esp, 0x10
cmp eax, 7
jne 0x42b794
mov dword [0x46a9f8], 0xa001
call fcn.0042d090
mov esi, dword [ebp - 0x450]
mov dword [edi + 0x10], 1
cmp esi, ebx
je 0x42b8f7
mov edi, dword [ebp - 0x44c]
mov eax, esi
call fcn.0040d800
push esi
call fcn.00439c00
add esp, 4
jmp 0x42b8f7
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x450]
cmp esi, ebx
je 0x42b7c1
mov edi, dword [ebp - 0x44c]
mov eax, esi
call fcn.0040d800
push esi
call fcn.00439c00
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 0x45cec4
call fcn.00402130
test eax, eax
je 0x42b7fb
mov eax, dword [0x46bfc0]
push ebx
push 0x436a40
push ebx
push 0x9b
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x42b878
push 0x45f228
call fcn.00402130
test eax, eax
je 0x42b814
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x42b878
push str.noinstall
call fcn.00402130
test eax, eax
je 0x42b82b
mov esi, edi
call fcn.0042bb30
jmp 0x42b878
push 0x45ce14
call fcn.00402130
test eax, eax
je 0x42b842
mov eax, edi
call fcn.0042bb70
jmp 0x42b878
push str.uninstall
call fcn.00402130
test eax, eax
je 0x42b859
mov esi, edi
call fcn.0042ba70
jmp 0x42b878
push 0x457394
call fcn.00402130
test eax, eax
je 0x42b871
push edi
call fcn.0042bcd0
test al, al
je 0x42b878
mov esi, edi
call fcn.0042b920
push 0x45cec0
call fcn.00402130
test eax, eax
je 0x42b89f
call fcn.00402500
test eax, eax
je 0x42b898
mov esi, edi
call fcn.0042c670
jmp 0x42b8b3
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x42b8a4
push str.IIF_will_NOT_initiate_reboot
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 8
call fcn.0042d090
cmp dword [0x46bfb4], ebx
je 0x42b8f1
mov ecx, dword [0x46bfc0]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x46bfb8], 8
mov eax, dword [0x46bfa4]
mov dword [0x46bfc0], ebx
mov dword [0x46bfb4], ebx
jae 0x42b8ec
mov eax, 0x46bfa4
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.00438876
mov esp, ebp
pop ebp
ret