Function at 0x4522d0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6f0
mov eax, dword [0x541a34]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x6dc], ecx
call fcn.00453a90
mov dword [ebp - 0x6e8], eax
mov dword [ebp - 0x694], 0
push 0x688
push 0
lea eax, [ebp - 0x68c]
push eax
call fcn.004d64c0
add esp, 0xc
mov dword [ebp - 0x694], 0x690
mov dword [ebp - 0x6a0], 0
mov dword [ebp - 0x6c4], 0
mov dword [ebp - 0x69c], 0
lea ecx, [ebp - 0x6c4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x20c
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x69c], eax
cmp dword [ebp - 0x69c], 0
jbe 0x4524b3
mov eax, dword [ebp - 0x69c]
push eax
call fcn.004d283a
add esp, 4
mov dword [ebp - 0x6d0], eax
mov ecx, dword [ebp - 0x6d0]
mov dword [ebp - 0x6a8], ecx
mov edx, dword [ebp - 0x69c]
push edx
push 0
mov eax, dword [ebp - 0x6a8]
push eax
call fcn.004d64c0
add esp, 0xc
mov ecx, dword [ebp - 0x6a8]
push ecx
mov edx, dword [ebp - 0x69c]
push edx
mov eax, dword [ebp - 0x6c4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x20c
push ecx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jle 0x452498
mov edx, dword [0x504e98]
mov dword [ebp - 0x6d4], edx
lea eax, [ebp - 0x6f0]
push eax
lea ecx, [ebp - 0x6a0]
push ecx
lea edx, [ebp - 0x6d4]
push edx
mov eax, dword [ebp - 0x6a8]
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x452498
mov ecx, dword [ebp - 0x6a0]
mov edx, dword [ecx + 8]
shr edx, 0x10
and edx, 0xffff
mov word [ebp - 0x6b8], dx
mov eax, dword [ebp - 0x6a0]
mov ecx, dword [eax + 8]
and ecx, 0xffff
mov word [ebp - 0x6b4], cx
mov edx, dword [ebp - 0x6a0]
mov eax, dword [edx + 0xc]
shr eax, 0x10
and eax, 0xffff
mov word [ebp - 0x6b0], ax
mov ecx, dword [ebp - 0x6a0]
mov edx, dword [ecx + 0xc]
and edx, 0xffff
mov word [ebp - 0x6ac], dx
movzx eax, word [ebp - 0x6ac]
push eax
movzx ecx, word [ebp - 0x6b0]
push ecx
movzx edx, word [ebp - 0x6b4]
push edx
movzx eax, word [ebp - 0x6b8]
push eax
push 0x504e9c
push 0x200
mov ecx, dword [ebp + 8]
add ecx, 0x61c
push ecx
call fcn.00453af0
add esp, 0x1c
mov edx, dword [ebp - 0x6a8]
mov dword [ebp - 0x6d8], edx
mov eax, dword [ebp - 0x6d8]
push eax
call fcn.004d2003
add esp, 4
lea ecx, [ebp - 0x694]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [edx]
push ecx
mov edx, dword [ebp - 0x6dc]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.dbghelp.dll_SymGetModuleInfo64]
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x6c0], ecx
cmp dword [ebp - 0x6c0], 0
jne 0x4524f8
mov dword [ebp - 0x6cc], 0
jmp 0x4525b0
mov edx, dword [ebp - 0x6c0]
mov dword [ebp - 0x6a4], edx
mov eax, dword [ebp - 0x6a4]
add eax, 1
mov dword [ebp - 0x6e0], eax
mov ecx, dword [ebp - 0x6a4]
mov dl, byte [ecx]
mov byte [ebp - 0x695], dl
add dword [ebp - 0x6a4], 1
cmp byte [ebp - 0x695], 0
jne 0x452513
mov eax, dword [ebp - 0x6a4]
sub eax, dword [ebp - 0x6e0]
mov dword [ebp - 0x6e4], eax
mov ecx, dword [ebp - 0x6e4]
add ecx, 1
mov dword [ebp - 0x6bc], ecx
cmp dword [ebp - 0x6bc], 0x3fffffff
jle 0x45256a
mov dword [ebp - 0x6c8], 0
jmp 0x4525a4
mov eax, dword [ebp - 0x6bc]
shl eax, 1
call fcn.004d2d40
mov dword [ebp - 0x6ec], esp
mov edx, dword [ebp - 0x6e8]
push edx
mov eax, dword [ebp - 0x6bc]
push eax
mov ecx, dword [ebp - 0x6c0]
push ecx
mov edx, dword [ebp - 0x6ec]
push edx
call fcn.00451a80
mov dword [ebp - 0x6c8], eax
mov eax, dword [ebp - 0x6c8]
mov dword [ebp - 0x6cc], eax
mov ecx, dword [ebp - 0x6cc]
push ecx
push 0x104
mov edx, dword [ebp + 8]
add edx, 0x414
push edx
call fcn.00453840
lea esp, [ebp - 0x6f0]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret 4