Function at 0x41dc80
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4420b1
mov eax, dword fs:[0]
push eax
sub esp, 0x444
mov eax, dword [0x4513e0]
xor eax, esp
mov dword [esp + 0x440], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4513e0]
xor eax, esp
push eax
lea eax, [esp + 0x458]
mov dword fs:[0], eax
push 0x104
push 0x454130
xor ebx, ebx
push ebx
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x454130
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, 0x454130
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41dce3
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0xad4]
push 0x454130
call fcn.004035b0
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [edi + 0x10]
cmp eax, ebx
jne 0x41e0ad
mov eax, dword [edi + 0xabc]
neg eax
sbb eax, eax
and eax, 0xe
cmp eax, ebx
jne 0x41e0ad
lea eax, [edi + 0x814]
push eax
call fcn.0041ea70
cmp dword [esi + 0x18], 8
jb 0x41dd43
mov eax, dword [esi + 4]
jmp 0x41dd46
lea eax, [esi + 4]
push eax
push str.__Source:__s
push 0x4524d8
xor eax, eax
call fcn.0041eee0
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 0x41ddf5
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 0x41ddf5
call fcn.00423020
cmp eax, 0x5020100
jb 0x41ddf5
cmp eax, 0xffffffff
ja 0x41ddf5
push 0x104
lea edx, [esp + 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
cmp eax, ebx
jne 0x41ddc6
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 0x41de00
mov esi, dword [esi + 4]
jmp 0x41de03
add esi, 4
push esi
lea eax, [esp + 0x250]
push 0x104
push eax
call fcn.00429cf8
add esp, 0xc
mov edx, str.uninstall
call fcn.004051c0
test eax, eax
jne 0x41de3a
push str.Lang
lea ecx, [esp + 0x250]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea esi, [esp + 0x24c]
call fcn.0041fe90
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
cmp dword [edi + 0xc], ebx
je 0x41df6b
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.0041d0d0
mov ebx, 1
mov ebp, 8
mov byte [esp + 0x460], bl
cmp dword [eax + 0x18], ebp
jb 0x41de8f
mov eax, dword [eax + 4]
jmp 0x41de92
add eax, 4
push eax
push str.Error_in_command_line:__s
push 0x4524d8
mov eax, 2
call fcn.0041eee0
add esp, 0xc
mov byte [esp + 0x460], 0
cmp dword [esp + 0x40], ebp
jb 0x41dec5
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00429d64
add esp, 4
lea esi, [esp + 0x28]
call fcn.0041d0d0
push eax
lea esi, [esp + 0x1c]
mov byte [esp + 0x464], 2
call fcn.004159f0
mov byte [esp + 0x460], 0
cmp dword [esp + 0x40], ebp
jb 0x41defb
mov edx, dword [esp + 0x2c]
push edx
call fcn.00429d64
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.004242b0
add esp, 0x10
cmp eax, 7
jne 0x41df55
mov dword [0x4524fc], 0xa001
call fcn.0041ee30
lea esi, [esp + 0x18]
mov dword [edi + 0x10], ebx
call fcn.00415940
jmp 0x41e0ad
lea esi, [esp + 0x18]
mov dword [esp + 0x460], 0xffffffff
call fcn.00415940
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, 0x446988
call fcn.004051c0
test eax, eax
je 0x41dfa3
mov eax, dword [0x453c70]
push ebx
push 0x426870
push ebx
push 0x9b
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x41e016
mov edx, 0x449aec
call fcn.004051c0
test eax, eax
je 0x41dfbc
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
jmp 0x41e016
mov edx, str.noinstall
call fcn.004051c0
test eax, eax
je 0x41dfd3
mov esi, edi
call fcn.0041e2b0
jmp 0x41e016
mov edx, 0x446930
call fcn.004051c0
test eax, eax
jne 0x41e016
mov edx, str.uninstall
call fcn.004051c0
test eax, eax
je 0x41dff8
mov esi, edi
call fcn.0041e1f0
jmp 0x41e016
mov edx, 0x446ce0
call fcn.004051c0
test eax, eax
je 0x41e00f
call fcn.0041e3c0
test al, al
je 0x41e016
mov esi, edi
call fcn.0041e0e0
mov edx, 0x446984
call fcn.004051c0
test eax, eax
je 0x41e069
call fcn.00405500
test eax, eax
je 0x41e062
mov esi, edi
call fcn.0041e9f0
push str.IIF_initiate_reboot
push 0x4524d8
xor eax, eax
call fcn.0041eee0
add esp, 8
call fcn.00423020
cmp eax, 0x5020100
jb 0x41e07d
cmp eax, 0x50201ff
ja 0x41e07d
call fcn.0041f0c0
jmp 0x41e07d
push str.Not_in_silent_mode__ignoring__b_switch
jmp 0x41e06e
push str.IIF_will_NOT_initiate_reboot
push 0x4524d8
xor eax, eax
call fcn.0041eee0
add esp, 8
call fcn.0041ee30
cmp dword [0x453c68], ebx
je 0x41e0a7
mov ecx, dword [0x453c70]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, 0x453c54
mov dword [0x453c70], ebx
call fcn.00415840
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.004289ca
add esp, 0x450
ret