Function at 0x40d4a0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x86c
mov eax, dword [0x48d06c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x864], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x860], edx
mov dword [ebp - 0x868], eax
push edi
test esi, esi
je 0x40d77b
xor eax, eax
cmp ax, word [esi]
je 0x40d77b
push 0x20a
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.00424870
add esp, 0xc
mov dword [ebp - 0x850], ebx
lea eax, [ebp - 0x428]
mov dword [ebp - 0x84c], ebx
mov dword [ebp - 0x85c], ebx
mov dword [ebp - 0x854], ebx
push 0x20a
push ebx
push eax
call fcn.00424870
add esp, 0xc
lea eax, [ebp - 0x638]
push 0x20a
push ebx
push eax
call fcn.00424870
add esp, 0xc
lea eax, [ebp - 0x848]
push 0x20a
push ebx
push eax
call fcn.00424870
add esp, 0xc
push ebx
push esi
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0x858], eax
test eax, eax
je 0x40d77b
push eax
call fcn.004229ab
mov edi, eax
add esp, 4
test edi, edi
je 0x40d768
push edi
push dword [ebp - 0x858]
push ebx
push esi
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x40d75f
mov esi, dword [sym.imp.VERSION.dll_VerQueryValueW]
lea eax, [ebp - 0x85c]
push eax
lea eax, [ebp - 0x854]
push eax
push str.VarFileInfoTranslation
push edi
call esi
test eax, eax
je 0x40d75f
mov ecx, dword [ebp - 0x854]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xFileDescription
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004012f0
add esp, 0x14
lea eax, [ebp - 0x84c]
push eax
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x218]
push eax
push edi
call esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynW]
test eax, eax
je 0x40d61b
cmp dword [ebp - 0x84c], ebx
jbe 0x40d61b
push 0x104
push dword [ebp - 0x850]
lea eax, [ebp - 0x428]
push eax
call esi
push 0x20a
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00424870
mov ecx, dword [ebp - 0x854]
add esp, 0xc
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xFileVersion
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004012f0
mov ebx, dword [sym.imp.VERSION.dll_VerQueryValueW]
lea eax, [ebp - 0x84c]
add esp, 0x14
push eax
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x218]
push eax
push edi
call ebx
test eax, eax
je 0x40d698
cmp dword [ebp - 0x84c], 0
jbe 0x40d698
push 0x104
push dword [ebp - 0x850]
lea eax, [ebp - 0x638]
push eax
call esi
push 0x20a
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00424870
mov ecx, dword [ebp - 0x854]
add esp, 0xc
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xProductName
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004012f0
add esp, 0x14
lea eax, [ebp - 0x84c]
push eax
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x218]
push eax
push edi
call ebx
test eax, eax
je 0x40d70f
cmp dword [ebp - 0x84c], 0
jbe 0x40d70f
push 0x104
push dword [ebp - 0x850]
lea eax, [ebp - 0x848]
push eax
call esi
mov eax, dword [ebp - 0x860]
test eax, eax
je 0x40d728
push 0x104
lea ecx, [ebp - 0x428]
push ecx
push eax
call esi
mov eax, dword [ebp - 0x864]
test eax, eax
je 0x40d741
push 0x104
lea ecx, [ebp - 0x638]
push ecx
push eax
call esi
mov eax, dword [ebp - 0x868]
test eax, eax
je 0x40d75a
push 0x104
lea ecx, [ebp - 0x848]
push ecx
push eax
call esi
mov ebx, 1
push edi
call fcn.00422319
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422308
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00422308
mov esp, ebp
pop ebp
ret