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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2f4
mov eax, dword [0x4434f4]
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 0x41e51d
push ecx
lea eax, [ebp - 0x2d4]
mov edx, edi
push eax
lea ecx, [ebp - 0x210]
call fcn.0040c131
test eax, eax
js 0x41e51d
mov eax, dword [ebp - 0x2d4]
sub edi, eax
push ecx
push 0x4040e4
push ecx
lea ecx, [ebp - 0x210]
mov edx, edi
lea ecx, [ecx + eax*2]
call fcn.0040c197
test eax, eax
js 0x41e51d
lea eax, [ebp - 0x2dc]
mov dword [ebp - 0x2dc], esi
push eax
lea eax, [ebp - 0x210]
mov edi, esi
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0x2d8], eax
test eax, eax
jne 0x41e4ac
lea ecx, [ebp - 0x210]
call fcn.0041f47f
test eax, eax
je 0x41e51d
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 0x41e51d
lea ecx, [ebp - 0x2f4]
push ecx
push esi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x41e499
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x2f4]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x41e499
push 0xac
lea eax, [ebp - 0x2d0]
push esi
push eax
call sub.msvcrt.dll_memset
movzx edi, word [ebp - 0x21e]
add esp, 0xc
movzx eax, word [ebp - 0x21a]
mov ebx, esi
shl edi, 0x10
or edi, eax
lea eax, [ebp - 0x2d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
cmp eax, 0xffffffff
je 0x41e49e
mov ecx, dword [ebp - 0x2d0]
test ecx, ecx
jle 0x41e394
movzx eax, cx
jmp 0x41e39b
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 0x41e3cb
add ax, dx
jmp 0x41e3ef
cmp ax, dx
jae 0x41e3ec
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 0x41e448
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0x218], ax
mov word [ebp - 0x21a], cx
cmp cx, 0x20
jne 0x41e448
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 0x41e448
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 0x41e49e
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 0x41e49e
movzx edi, word [ebp - 0x21e]
movzx eax, word [ebp - 0x21a]
shl edi, 0x10
or edi, eax
jmp 0x41e49e
mov ebx, 0x80004005
push dword [ebp - 0x2d8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41e516
push eax
call fcn.0044183a
mov ebx, eax
pop ecx
test ebx, ebx
je 0x41e51d
push ebx
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 0x41e509
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp - 0x2d8]
push eax
push 0x4043e0
push ebx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x41e509
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x2d4], esi
mov edi, dword [eax + 0xc]
push ebx
call fcn.00441807
mov ebx, dword [ebp - 0x2d4]
pop ecx
test ebx, ebx
js 0x41e51d
movzx esi, di
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441b90
mov esp, ebp
pop ebp
ret