Function at 0x415bb0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, 0x5c4
mov word [ebp - 0xc], ax
mov byte [ebp - 1], 0xcd
mov ecx, 0x3f8
mov word [ebp - 8], cx
movzx edx, byte [ebp - 1]
sub edx, 0xe6
mov byte [ebp - 1], dl
lea eax, [ebp - 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x223fe5c8
mov dword [ebp - 0x20], 0x8406e929
cmp dword [ebp - 0x10], 0x7068a08a
je 0x415c5f
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0x10e5e7ca
je 0x415c32
cmp dword [ebp - 0x2c], 0x223fe5c8
je 0x415c10
jmp 0x415c4b
lea edx, [ebp - 0x20]
mov dword [ebp - 0x24], edx
mov al, byte [ebp - 1]
mov byte [ebp - 3], al
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 3]
mov dword [ebp - 0x1c], ecx
jmp 0x415c4b
mov byte [ebp + 8], 0x31
lea edx, [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0x58], eax
mov dl, byte [ebp + 8]
mov byte [ebp - 2], dl
lea eax, [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax]
add ecx, 0x849
movzx edx, word [ebp - 8]
cmp ecx, edx
jge 0x415cb0
movzx eax, word [ebp - 8]
shl eax, 5
mov ecx, dword [ebp - 0x14]
mov word [ecx], ax
movzx edx, byte [ebp - 2]
push edx
call fcn.00415bb0
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 1]
xor ecx, edx
mov byte [ebp - 3], cl
jmp 0x415d16
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
and ecx, dword [eax]
mov edx, dword [ebp - 0x28]
cmp ecx, dword [edx]
je 0x415d16
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x10]
sar edx, cl
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
push 0x6d
push 0x9f
push 0x8e
mov ecx, dword [ebp - 0x60]
push ecx
call sub.COMCTL32.dll_DefSubclassProc
mov dword [ebp - 0x64], eax
movzx edx, byte [ebp - 2]
push edx
call fcn.00415bb0
mov eax, dword [ebp - 0x30]
or eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
push 0xd0
push 0x8b
push 0x89
mov edx, dword [ebp - 0x68]
push edx
call sub.COMCTL32.dll_DefSubclassProc
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
add edx, dword [ecx]
cmp eax, edx
jl 0x415d4e
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 1]
sub ecx, edx
mov eax, dword [ebp - 0x1c]
mov byte [eax], cl
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], ecx
jmp 0x415d6a
lea edx, [ebp - 0x34]
mov dword [ebp - 0x70], edx
mov al, byte [ebp - 2]
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx]
movzx eax, word [ebp - 8]
add edx, eax
mov word [ebp - 0xc], dx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0x7b09e08
je 0x415dac
cmp dword [ebp - 0x38], 0x56749c1d
je 0x415d84
jmp 0x415db6
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0x50]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x50]
push edx
push 0x5a
call sub.VERSION.dll_VerInstallFileW
mov dword [ebp - 0x20], eax
jmp 0x415db6
push 0x41
call fcn.00416570
add esp, 4
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax]
movzx edx, word [ebp - 8]
and ecx, edx
mov eax, dword [ebp - 0x14]
mov word [eax], cx
mov eax, 0x86
mov esp, ebp
pop ebp
ret 4