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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xfc
mov eax, dword [0x4434f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
push edi
xor esi, esi
lea edi, [ebx + 0x10]
cmp dword [edi], esi
jne 0x4245e9
push 0x80
mov esi, 0x80004005
call fcn.0044183a
mov dword [edi], eax
pop ecx
test eax, eax
je 0x4245f0
mov ecx, dword [ebx + 4]
xor edx, edx
inc edx
test ecx, ecx
js 0x42424e
cmp ecx, edx
jle 0x424220
cmp ecx, 3
jne 0x42424e
test edi, edi
je 0x4245e4
push eax
call fcn.00441807
and dword [edi], 0
pop ecx
push 0x10
call fcn.0044183a
mov dword [edi], eax
pop ecx
test eax, eax
je 0x4245b6
push 0x4059ec
jmp 0x4245c2
and dword [ebp - 0xe0], 0
cmp dword [ebx + 0xc], 0
je 0x424594
push 0x208
call fcn.0044183a
mov dword [ebp - 0xcc], eax
pop ecx
test eax, eax
je 0x424594
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x42457f
push 0x5c
push dword [ebx + 0xc]
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x4242a2
add eax, 2
jmp 0x4242a5
mov eax, dword [ebx + 0xc]
push dword [ebp - 0xcc]
xor ecx, ecx
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xdc], ecx
xor ebx, ebx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
mov edx, 0x104
call fcn.0040c045
and dword [ebp - 0xe4], ebx
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0xcc]
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4244b7
mov ecx, dword [ebp - 0xcc]
call fcn.0041f47f
test eax, eax
je 0x42457f
xor eax, eax
push eax
push 0x80
push 3
push eax
push 1
push eax
push dword [ebp - 0xcc]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xd8], eax
cmp eax, 0xffffffff
je 0x42457f
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xd0], esi
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x4244a9
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xfc]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4244a9
push 0xac
lea eax, [ebp - 0xc8]
push ebx
push eax
call sub.msvcrt.dll_memset
movzx ebx, word [ebp - 0x12]
add esp, 0xc
movzx eax, word [ebp - 0xe]
movzx ecx, word [ebp - 0x14]
and dword [ebp - 0xd0], 0
shl ebx, 0x10
or ebx, eax
mov dword [ebp - 0xdc], ecx
lea eax, [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
cmp eax, 0xffffffff
je 0x4244a9
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jle 0x4243c9
movzx eax, cx
jmp 0x4243d0
mov eax, ecx
neg eax
movzx eax, ax
xor edx, edx
movzx eax, ax
mov dword [ebp - 0xd4], 0x3c
div dword [ebp - 0xd4]
cmp ecx, 1
mov cx, word [ebp - 0xe]
movzx edx, ax
mov ax, word [ebp - 0xc]
jge 0x4243fa
add ax, dx
jmp 0x42441b
cmp ax, dx
jae 0x424418
mov dword [ebp - 0xd4], 0xffff
add cx, word [ebp - 0xd4]
add ax, 0x18
mov word [ebp - 0xe], cx
sub ax, dx
mov word [ebp - 0xc], ax
cmp ax, 0x17
jbe 0x42445c
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0xc], ax
mov word [ebp - 0xe], cx
cmp cx, 0x20
jne 0x42445c
mov ax, word [ebp - 0x12]
xor ecx, ecx
inc ecx
inc ax
mov word [ebp - 0xe], cx
mov word [ebp - 0x12], ax
cmp ax, 0xd
jne 0x42445c
inc word [ebp - 0x14]
mov word [ebp - 0x12], cx
fldz
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x14]
push eax
fstp qword [ebp - 0xf0]
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
test eax, eax
je 0x4244a9
fld qword [ebp - 0xf0]
lea eax, [ebp - 0x14]
push eax
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x4244a9
movzx ebx, word [ebp - 0x12]
movzx ecx, word [ebp - 0x14]
movzx eax, word [ebp - 0xe]
shl ebx, 0x10
mov dword [ebp - 0xdc], ecx
or ebx, eax
push dword [ebp - 0xd8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x424533
push eax
call fcn.0044183a
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x42457f
push eax
push dword [ebp - 0xd8]
mov dword [ebp - 0xd0], esi
push 0
push dword [ebp - 0xcc]
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x424527
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0xd8]
push eax
push 0x4043e0
push dword [ebp - 0xd4]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x424527
mov eax, dword [ebp - 0xd8]
and dword [ebp - 0xd0], 0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [ebp - 0xdc], ecx
push dword [ebp - 0xd4]
call fcn.00441807
pop ecx
cmp dword [ebp - 0xd0], 0
jl 0x42457f
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xcc]
movzx eax, bx
push eax
shr ebx, 0x10
push ebx
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push 0x4042f8
push 0x104
push esi
call fcn.0040c0b5
add esp, 0x1c
mov edx, esi
mov ecx, edi
call fcn.0041ede1
mov esi, eax
xor eax, eax
inc eax
mov dword [ebp - 0xe0], eax
push dword [ebp - 0xcc]
call fcn.00441807
cmp dword [ebp - 0xe0], 0
pop ecx
jne 0x4245e9
test edi, edi
je 0x4245e4
cmp dword [edi], 0
je 0x4245a8
push dword [edi]
call fcn.00441807
and dword [edi], 0
pop ecx
push 0x10
call fcn.0044183a
mov dword [edi], eax
pop ecx
test eax, eax
jne 0x4245bd
mov esi, 0x8007000e
jmp 0x4245e9
push 0x4059fc
push 8
pop edx
mov ecx, eax
call fcn.0040c010
mov esi, eax
test esi, esi
jns 0x4245e9
cmp dword [edi], 0
je 0x4245e9
push dword [edi]
call fcn.0041fb3c
and dword [edi], 0
pop ecx
jmp 0x4245e9
mov esi, 0x80004003
not esi
shr esi, 0x1f
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441b90
mov esp, ebp
pop ebp
ret