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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2f4
mov eax, dword [0x4424f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, 0x104
lea eax, [ebp - 0x210]
push edi
push eax
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x41e2fe
push ecx
lea eax, [ebp - 0x2d4]
mov edx, edi
push eax
lea ecx, [ebp - 0x210]
call fcn.0040c15d
test eax, eax
js 0x41e2fe
mov eax, dword [ebp - 0x2d4]
sub edi, eax
push ecx
push 0x4040f4
push ecx
lea ecx, [ebp - 0x210]
mov edx, edi
lea ecx, [ecx + eax*2]
call fcn.0040c1c3
test eax, eax
js 0x41e2fe
lea eax, [ebp - 0x2dc]
mov dword [ebp - 0x2dc], esi
push eax
lea eax, [ebp - 0x210]
mov ebx, esi
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0x2d8], eax
test eax, eax
jne 0x41e28d
lea ecx, [ebp - 0x210]
call fcn.0041f21e
test eax, eax
je 0x41e2fe
push esi
push 0x80
push 3
xor eax, eax
push esi
inc eax
push eax
push esi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x2d8], eax
cmp eax, 0xffffffff
je 0x41e2fe
lea ecx, [ebp - 0x2f4]
push ecx
push esi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x41e27a
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x2f4]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x41e27a
push 0xac
lea eax, [ebp - 0x2d0]
push esi
push eax
call sub.msvcrt.dll_memset
movzx ebx, word [ebp - 0x21e]
add esp, 0xc
movzx eax, word [ebp - 0x21a]
mov edi, esi
shl ebx, 0x10
or ebx, eax
lea eax, [ebp - 0x2d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
cmp eax, 0xffffffff
je 0x41e27f
mov ecx, dword [ebp - 0x2d0]
test ecx, ecx
jle 0x41e181
movzx eax, cx
jmp 0x41e188
mov eax, ecx
neg eax
movzx eax, ax
xor edx, edx
movzx eax, ax
mov dword [ebp - 0x2d4], 0x3c
div dword [ebp - 0x2d4]
cmp ecx, 1
mov cx, word [ebp - 0x21a]
movzx edx, ax
mov ax, word [ebp - 0x218]
jge 0x41e1b8
add ax, dx
jmp 0x41e1dc
cmp ax, dx
jae 0x41e1d9
mov dword [ebp - 0x2d4], 0xffff
add cx, word [ebp - 0x2d4]
add ax, 0x18
mov word [ebp - 0x21a], cx
sub ax, dx
mov word [ebp - 0x218], ax
cmp ax, 0x17
jbe 0x41e235
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0x218], ax
mov word [ebp - 0x21a], cx
cmp cx, 0x20
jne 0x41e235
mov ax, word [ebp - 0x21e]
xor ecx, ecx
inc ecx
inc ax
mov word [ebp - 0x21a], cx
mov word [ebp - 0x21e], ax
cmp ax, 0xd
jne 0x41e235
inc word [ebp - 0x220]
mov word [ebp - 0x21e], cx
fldz
lea eax, [ebp - 0x2e8]
push eax
lea eax, [ebp - 0x220]
push eax
fstp qword [ebp - 0x2e8]
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
test eax, eax
je 0x41e27f
fld qword [ebp - 0x2e8]
lea eax, [ebp - 0x220]
push eax
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x41e27f
movzx ebx, word [ebp - 0x21a]
jmp 0x41e27f
mov edi, 0x80004005
push dword [ebp - 0x2d8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41e2f7
push eax
call fcn.00440dea
mov edi, eax
pop ecx
test edi, edi
je 0x41e2fe
push edi
push dword [ebp - 0x2d8]
lea eax, [ebp - 0x210]
mov dword [ebp - 0x2d4], 0x80004005
push esi
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x41e2ea
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp - 0x2d8]
push eax
push 0x4043f0
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x41e2ea
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x2d4], esi
mov ebx, dword [eax + 0xc]
push edi
call fcn.00440db7
mov edi, dword [ebp - 0x2d4]
pop ecx
test edi, edi
js 0x41e2fe
movzx esi, bx
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441130
leave
ret