Function at 0x40cd7b
Capabilities:
Get common file path
Get file version info

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb1c
mov eax, dword [0x4434f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
lea eax, [ebp - 0xa30]
mov dword [ebp - 0xb04], edx
push eax
push 0x9c
push dword [0x443af0]
mov dword [ebp - 0xb08], ecx
xor ebx, ebx
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x40d145
mov esi, 0x104
lea ecx, [ebp - 0x620]
mov edx, esi
call fcn.00422b05
test eax, eax
je 0x40d145
cmp dword [0x443ab0], ebx
jne 0x40cdf8
lea ecx, [ebp - 0x418]
call fcn.00420303
jmp 0x40d115
push esi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x40d115
push ecx
lea eax, [ebp - 0xaf4]
mov edx, esi
push eax
lea ecx, [ebp - 0x210]
call fcn.0040c131
test eax, eax
js 0x40d115
mov eax, dword [ebp - 0xaf4]
mov edx, esi
push ecx
push 0x401ca0
push ecx
lea ecx, [ebp - 0x210]
sub edx, eax
lea ecx, [ecx + eax*2]
call fcn.0040c197
test eax, eax
js 0x40d115
lea eax, [ebp - 0xb00]
mov dword [ebp - 0xb00], ebx
push eax
lea eax, [ebp - 0x210]
mov ecx, ebx
push eax
mov esi, ebx
mov dword [ebp - 0xaf8], ecx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0xafc], eax
test eax, eax
jne 0x40d06b
lea ecx, [ebp - 0x210]
call fcn.0041f47f
test eax, eax
je 0x40d115
push ebx
push 0x80
push 3
xor eax, eax
push ebx
inc eax
push eax
push ebx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x40d115
lea eax, [ebp - 0xb1c]
push eax
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x40d05d
lea eax, [ebp - 0xa40]
push eax
lea eax, [ebp - 0xb1c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x40d05d
push 0xac
lea eax, [ebp - 0xaf0]
push ebx
push eax
call sub.msvcrt.dll_memset
movzx esi, word [ebp - 0xa3e]
add esp, 0xc
movzx eax, word [ebp - 0xa3a]
movzx ecx, word [ebp - 0xa40]
shl esi, 0x10
or esi, eax
mov dword [ebp - 0xaf8], ecx
lea eax, [ebp - 0xaf0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
cmp eax, 0xffffffff
je 0x40d062
mov ecx, dword [ebp - 0xaf0]
test ecx, ecx
jle 0x40cf4b
movzx eax, cx
jmp 0x40cf52
mov eax, ecx
neg eax
movzx eax, ax
xor edx, edx
movzx eax, ax
mov dword [ebp - 0xaf4], 0x3c
div dword [ebp - 0xaf4]
cmp ecx, 1
mov cx, word [ebp - 0xa3a]
movzx edx, ax
mov ax, word [ebp - 0xa38]
jge 0x40cf82
add ax, dx
jmp 0x40cfa6
cmp ax, dx
jae 0x40cfa3
mov dword [ebp - 0xaf4], 0xffff
add cx, word [ebp - 0xaf4]
add ax, 0x18
mov word [ebp - 0xa3a], cx
sub ax, dx
mov word [ebp - 0xa38], ax
cmp ax, 0x17
jbe 0x40cfff
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0xa38], ax
mov word [ebp - 0xa3a], cx
cmp cx, 0x20
jne 0x40cfff
mov ax, word [ebp - 0xa3e]
xor ecx, ecx
inc ecx
inc ax
mov word [ebp - 0xa3a], cx
mov word [ebp - 0xa3e], ax
cmp ax, 0xd
jne 0x40cfff
inc word [ebp - 0xa40]
mov word [ebp - 0xa3e], cx
fldz
lea eax, [ebp - 0xb10]
push eax
lea eax, [ebp - 0xa40]
push eax
fstp qword [ebp - 0xb10]
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
test eax, eax
je 0x40d062
fld qword [ebp - 0xb10]
lea eax, [ebp - 0xa40]
push eax
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x40d062
movzx esi, word [ebp - 0xa3e]
movzx ecx, word [ebp - 0xa40]
movzx eax, word [ebp - 0xa3a]
shl esi, 0x10
mov dword [ebp - 0xaf8], ecx
or esi, eax
jmp 0x40d062
mov ebx, 0x80004005
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40d0e2
push eax
call fcn.0044183a
mov edi, eax
pop ecx
test edi, edi
je 0x40d115
push edi
push dword [ebp - 0xafc]
lea eax, [ebp - 0x210]
mov dword [ebp - 0xaf4], 0x80004005
push ebx
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x40d0d5
lea eax, [ebp - 0xb14]
push eax
lea eax, [ebp - 0xafc]
push eax
push 0x4043e0
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x40d0d5
mov eax, dword [ebp - 0xafc]
mov dword [ebp - 0xaf4], ebx
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov dword [ebp - 0xaf8], ecx
push edi
call fcn.00441807
mov ebx, dword [ebp - 0xaf4]
pop ecx
test ebx, ebx
js 0x40d115
mov ecx, dword [ebp - 0xaf8]
movzx eax, si
push eax
movzx eax, cx
shr esi, 0x10
push esi
push eax
shr ecx, 0x10
lea eax, [ebp - 0x418]
push ecx
push 0x4042f8
push 0x104
push eax
call fcn.0040c0b5
add esp, 0x1c
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0xa30]
push eax
push dword [ebp - 0xb04]
push dword [ebp - 0xb08]
call fcn.0040c0b5
xor ebx, ebx
add esp, 0x14
test eax, eax
setns bl
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441b90
mov esp, ebp
pop ebp
ret