Function at 0x428900
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4533f1
mov eax, dword fs:[0]
push eax
sub esp, 0x444
mov eax, dword [0x4663e0]
xor eax, esp
mov dword [esp + 0x440], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4663e0]
xor eax, esp
push eax
lea eax, [esp + 0x458]
mov dword fs:[0], eax
push 0x104
push 0x469160
xor ebx, ebx
push ebx
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x469160
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, 0x469160
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x428963
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0xcc8]
push 0x469160
call fcn.00404160
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [edi + 0x10]
cmp eax, ebx
jne 0x428d0b
mov eax, dword [edi + 0xcb0]
neg eax
sbb eax, eax
and eax, 0xe
cmp eax, ebx
jne 0x428d0b
lea eax, [edi + 0x814]
push eax
call fcn.0042c660
cmp dword [esi + 0x18], 8
jb 0x4289c3
mov eax, dword [esi + 4]
jmp 0x4289c6
lea eax, [esi + 4]
push eax
push str.__Source:__s
push 0x4676a0
xor eax, eax
call fcn.0042cad0
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 ebp, eax
cmp ebp, ebx
je 0x428a75
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebp
cmp dword [esp + 0x14], ebx
setne al
test al, al
je 0x428a75
call fcn.00430be0
cmp eax, 0x5010100
jb 0x428a75
cmp eax, 0xffffffff
ja 0x428a75
push 0x104
lea edx, [esp + 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
cmp eax, ebx
jne 0x428a46
push 0x104
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push str.msls31.dll
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov ebp, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8000
call ebp
lea edx, [esp + 0x44]
push edx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebx
call ebp
xor ebx, ebx
cmp dword [esi + 0x18], 8
jb 0x428a80
mov esi, dword [esi + 4]
jmp 0x428a83
add esi, 4
push esi
lea eax, [esp + 0x250]
push 0x104
push eax
call fcn.00439323
add esp, 0xc
mov edx, str.uninstall
call fcn.00401e70
test eax, eax
jne 0x428aba
push str.Lang
lea ecx, [esp + 0x250]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea esi, [esp + 0x24c]
call fcn.0042d8d0
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
cmp dword [edi + 0xc], ebx
je 0x428beb
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea esi, [esp + 0x28]
mov dword [esp + 0x460], ebx
call fcn.00427b80
mov ebx, 1
mov ebp, 8
mov byte [esp + 0x460], bl
cmp dword [eax + 0x18], ebp
jb 0x428b0f
mov eax, dword [eax + 4]
jmp 0x428b12
add eax, 4
push eax
push str.Error_in_command_line:__s
push 0x4676a0
mov eax, 2
call fcn.0042cad0
add esp, 0xc
mov byte [esp + 0x460], 0
cmp dword [esp + 0x40], ebp
jb 0x428b45
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00439059
add esp, 4
lea esi, [esp + 0x28]
call fcn.00427b80
push eax
lea esi, [esp + 0x1c]
mov byte [esp + 0x464], 2
call fcn.0040d140
mov byte [esp + 0x460], 0
cmp dword [esp + 0x40], ebp
jb 0x428b7b
mov edx, dword [esp + 0x2c]
push edx
call fcn.00439059
add esp, 4
push 0x7f02
push 7
xor eax, eax
push 0x84
push 0x7d9
lea edx, [esp + 0x28]
mov ecx, 0x3b
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], eax
mov word [esp + 0x3c], ax
call fcn.00432a80
add esp, 0x10
cmp eax, 7
jne 0x428bd5
mov dword [0x4676c4], 0xa001
call fcn.0042ca20
lea esi, [esp + 0x18]
mov dword [edi + 0x10], ebx
call fcn.0040cec0
jmp 0x428d0b
lea esi, [esp + 0x18]
mov dword [esp + 0x460], 0xffffffff
call fcn.0040cec0
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
mov edx, 0x45bc0c
call fcn.00401e70
test eax, eax
je 0x428c23
mov eax, dword [0x468ca0]
push ebx
push 0x435680
push ebx
push 0x9b
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x428ca0
mov edx, 0x45bc3c
call fcn.00401e70
test eax, eax
je 0x428c3c
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x428ca0
mov edx, 0x45bc10
call fcn.00401e70
test eax, eax
je 0x428c53
mov esi, edi
call fcn.00428f50
jmp 0x428ca0
mov edx, 0x45bc40
call fcn.00401e70
test eax, eax
je 0x428c6a
mov eax, edi
call fcn.00428f90
jmp 0x428ca0
mov edx, str.uninstall
call fcn.00401e70
test eax, eax
je 0x428c81
mov esi, edi
call fcn.00428e90
jmp 0x428ca0
mov edx, 0x4568a8
call fcn.00401e70
test eax, eax
je 0x428c99
push edi
call fcn.004290f0
test al, al
je 0x428ca0
mov esi, edi
call fcn.00428d40
mov edx, 0x45bca4
call fcn.00401e70
test eax, eax
je 0x428cc7
call fcn.004021b0
test eax, eax
je 0x428cc0
mov esi, edi
call fcn.0042a070
jmp 0x428cdb
push 0x45bca8
jmp 0x428ccc
push str.IIF_will_NOT_initiate_reboot
push 0x4676a0
xor eax, eax
call fcn.0042cad0
add esp, 8
call fcn.0042ca20
cmp dword [0x468c98], ebx
je 0x428d05
mov ecx, dword [0x468ca0]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, 0x468c84
mov dword [0x468ca0], ebx
call fcn.00421c00
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x458]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x440]
xor ecx, esp
call fcn.0043782a
add esp, 0x450
ret