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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb1c
mov eax, dword [0x4424f4]
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 [0x442af0]
mov dword [ebp - 0xb08], ecx
xor ebx, ebx
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x40d134
mov esi, 0x104
lea ecx, [ebp - 0x620]
mov edx, esi
call fcn.00422817
test eax, eax
je 0x40d134
cmp dword [0x442ab0], ebx
jne 0x40cde7
lea ecx, [ebp - 0x418]
call fcn.0042007a
jmp 0x40d104
push esi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x40d104
push ecx
lea eax, [ebp - 0xaf4]
mov edx, esi
push eax
lea ecx, [ebp - 0x210]
call fcn.0040c15d
test eax, eax
js 0x40d104
mov eax, dword [ebp - 0xaf4]
mov edx, esi
push ecx
push 0x401cb0
push ecx
lea ecx, [ebp - 0x210]
sub edx, eax
lea ecx, [ecx + eax*2]
call fcn.0040c1c3
test eax, eax
js 0x40d104
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 0x40d05a
lea ecx, [ebp - 0x210]
call fcn.0041f21e
test eax, eax
je 0x40d104
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 0x40d104
lea eax, [ebp - 0xb1c]
push eax
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x40d04c
lea eax, [ebp - 0xa40]
push eax
lea eax, [ebp - 0xb1c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x40d04c
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 0x40d051
mov ecx, dword [ebp - 0xaf0]
test ecx, ecx
jle 0x40cf3a
movzx eax, cx
jmp 0x40cf41
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 0x40cf71
add ax, dx
jmp 0x40cf95
cmp ax, dx
jae 0x40cf92
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 0x40cfee
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0xa38], ax
mov word [ebp - 0xa3a], cx
cmp cx, 0x20
jne 0x40cfee
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 0x40cfee
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 0x40d051
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 0x40d051
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 0x40d051
mov ebx, 0x80004005
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40d0d1
push eax
call fcn.00440dea
mov edi, eax
pop ecx
test edi, edi
je 0x40d104
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 0x40d0c4
lea eax, [ebp - 0xb14]
push eax
lea eax, [ebp - 0xafc]
push eax
push 0x4043f0
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x40d0c4
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.00440db7
mov ebx, dword [ebp - 0xaf4]
pop ecx
test ebx, ebx
js 0x40d104
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 0x404308
push 0x104
push eax
call fcn.0040c0e1
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.0040c0e1
xor ebx, ebx
add esp, 0x14
test eax, eax
setns bl
ret
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441130
leave
ret