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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xfc
mov eax, dword [0x4424f4]
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 0x42422b
push 0x80
mov esi, 0x80004005
call fcn.00440dea
mov dword [edi], eax
pop ecx
test eax, eax
je 0x424232
mov ecx, dword [ebx + 4]
xor edx, edx
inc edx
test ecx, ecx
js 0x423e90
cmp ecx, edx
jle 0x423e62
cmp ecx, 3
jne 0x423e90
test edi, edi
je 0x424226
push eax
call fcn.00440db7
and dword [edi], 0
pop ecx
push 0x10
call fcn.00440dea
mov dword [edi], eax
pop ecx
test eax, eax
je 0x4241f8
push 0x4059fc
jmp 0x424204
and dword [ebp - 0xe0], 0
cmp dword [ebx + 0xc], 0
je 0x4241d6
push 0x208
call fcn.00440dea
mov dword [ebp - 0xcc], eax
pop ecx
test eax, eax
je 0x4241d6
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x4241c1
push 0x5c
push dword [ebx + 0xc]
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x423ee4
add eax, 2
jmp 0x423ee7
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.0040c075
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 0x4240f9
mov ecx, dword [ebp - 0xcc]
call fcn.0041f21e
test eax, eax
je 0x4241c1
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 0x4241c1
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 0x4240eb
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xfc]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4240eb
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 0x4240eb
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jle 0x42400b
movzx eax, cx
jmp 0x424012
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 0x42403c
add ax, dx
jmp 0x42405d
cmp ax, dx
jae 0x42405a
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 0x42409e
mov edx, 0xffe8
add ax, dx
inc cx
mov word [ebp - 0xc], ax
mov word [ebp - 0xe], cx
cmp cx, 0x20
jne 0x42409e
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 0x42409e
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 0x4240eb
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 0x4240eb
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 0x424175
push eax
call fcn.00440dea
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x4241c1
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 0x424169
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0xd8]
push eax
push 0x4043f0
push dword [ebp - 0xd4]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x424169
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.00440db7
pop ecx
cmp dword [ebp - 0xd0], 0
jl 0x4241c1
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 0x404308
push 0x104
push esi
call fcn.0040c0e1
add esp, 0x1c
mov edx, esi
mov ecx, edi
call fcn.0041eb99
mov esi, eax
xor eax, eax
inc eax
mov dword [ebp - 0xe0], eax
push dword [ebp - 0xcc]
call fcn.00440db7
cmp dword [ebp - 0xe0], 0
pop ecx
jne 0x42422b
test edi, edi
je 0x424226
cmp dword [edi], 0
je 0x4241ea
push dword [edi]
call fcn.00440db7
and dword [edi], 0
pop ecx
push 0x10
call fcn.00440dea
mov dword [edi], eax
pop ecx
test eax, eax
jne 0x4241ff
mov esi, 0x8007000e
jmp 0x42422b
push 0x405a0c
push 8
pop edx
mov ecx, eax
call fcn.0040c040
mov esi, eax
test esi, esi
jns 0x42422b
cmp dword [edi], 0
je 0x42422b
push dword [edi]
call fcn.00440db7
and dword [edi], 0
pop ecx
jmp 0x42422b
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.00441130
leave
ret