Function at 0x64a9b0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea eax, [ebp - 0x358]
mov edi, ecx
sub esp, 0x37c
mov dword [ecx], 0x880f80
mov dword [esp], eax
call fcn.00461cf0
mov esi, dword [ebp - 0x358]
mov eax, dword [esi + 4]
lea ebx, [eax + 1]
cmp ebx, 0x100
mov dword [ebp - 0x224], ebx
jg 0x64ab25
lea ebx, [ebp - 0x218]
mov dword [ebp - 0x228], 0x100
mov dword [ebp - 0x220], ebx
mov eax, ebx
mov edx, dword [esi + 4]
add esi, dword [esi + 0xc]
lea ecx, [edx + edx]
je 0x64aa35
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x35c], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x220]
mov edx, dword [ebp - 0x35c]
xor ecx, ecx
mov word [eax + edx*2], cx
mov eax, dword [ebp - 0x220]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
sub esp, 8
test eax, eax
mov esi, eax
je 0x64aac6
cmp eax, 0x100
mov dword [ebp - 0x334], eax
jg 0x64ab50
lea eax, [ebp - 0x328]
mov dword [ebp - 0x338], 0x100
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x35c], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.VERSION.dll_GetFileVersionInfoW
sub esp, 0x10
test eax, eax
mov edx, dword [ebp - 0x330]
jne 0x64ab90
cmp edx, dword [ebp - 0x35c]
je 0x64aac6
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x220]
cmp eax, ebx
je 0x64aad8
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x358]
mov edx, dword [eax]
test edx, edx
je 0x64ab01
cmp edx, 0xffffffff
je 0x64aaf5
lock sub dword [eax], 1
mov eax, dword [ebp - 0x358]
je 0x64ab01
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov dword [esp], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 2
call fcn.004a4c50
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 4
lea eax, [ebx + ebx]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
mov dword [ebp - 0x220], eax
je 0x64ae53
mov dword [ebp - 0x228], ebx
lea ebx, [ebp - 0x218]
jmp 0x64aa08
mov dword [esp], eax
mov dword [ebp - 0x35c], eax
call sub.msvcrt.dll_malloc
test eax, eax
mov dword [ebp - 0x330], eax
mov edx, dword [ebp - 0x35c]
je 0x64ae3d
lea ecx, [ebp - 0x328]
mov dword [ebp - 0x338], edx
mov dword [ebp - 0x35c], ecx
jmp 0x64aa87
lea eax, [ebp - 0x354]
mov dword [esp + 4], 0x74a918
mov dword [esp], edx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x350]
mov dword [esp + 8], eax
call sub.VERSION.dll_VerQueryValueW
sub esp, 0x10
test eax, eax
je 0x64abc5
mov esi, dword [ebp - 0x354]
test esi, esi
jne 0x64abd0
mov edx, dword [ebp - 0x330]
jmp 0x64aab6
mov esi, dword [ebp - 0x350]
mov ecx, 0x20
mov dword [ebp - 0x34c], 0x8c19c0
movzx eax, word [esi + 0x12]
mov word [esp + 0x14], cx
lea ecx, [ebp - 0x348]
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x34c]
mov dword [esp], eax
call fcn.00664e80
mov eax, dword [esi + 0x10]
sub esp, 0x18
mov edx, 0x20
lea ecx, [ebp - 0x344]
mov word [esp + 0x14], dx
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
movzx eax, ax
mov dword [esp + 4], eax
lea eax, [ebp - 0x348]
mov dword [esp], eax
call fcn.00664e80
movzx eax, word [esi + 0x16]
sub esp, 0x18
mov ecx, 0x20
mov word [esp + 0x14], cx
lea ecx, [ebp - 0x340]
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x344]
mov dword [esp], eax
call fcn.00664e80
mov eax, dword [esi + 0x14]
sub esp, 0x18
mov edx, 0x20
lea ecx, [ebp - 0x33c]
mov word [esp + 0x14], dx
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
movzx eax, ax
mov dword [esp + 4], eax
lea eax, [ebp - 0x340]
mov dword [esp], eax
call fcn.00664e80
mov eax, dword [edi]
mov edx, dword [ebp - 0x33c]
sub esp, 0x18
mov dword [edi], edx
mov dword [ebp - 0x33c], eax
mov edx, dword [eax]
test edx, edx
je 0x64adc0
cmp edx, 0xffffffff
je 0x64ad11
lock sub dword [eax], 1
je 0x64adc0
mov eax, dword [ebp - 0x340]
mov edx, dword [eax]
test edx, edx
je 0x64ae20
cmp edx, 0xffffffff
je 0x64ad36
lock sub dword [eax], 1
mov eax, dword [ebp - 0x340]
je 0x64ae20
mov eax, dword [ebp - 0x344]
mov edx, dword [eax]
test edx, edx
je 0x64ae00
cmp edx, 0xffffffff
je 0x64ad5b
lock sub dword [eax], 1
mov eax, dword [ebp - 0x344]
je 0x64ae00
mov eax, dword [ebp - 0x348]
mov edx, dword [eax]
test edx, edx
je 0x64ade3
cmp edx, 0xffffffff
je 0x64ad78
lock sub dword [eax], 1
mov eax, dword [ebp - 0x348]
je 0x64ade3
mov eax, dword [ebp - 0x34c]
mov edx, dword [eax]
test edx, edx
je 0x64ada0
cmp edx, 0xffffffff
je 0x64abc5
lock sub dword [eax], 1
mov eax, dword [ebp - 0x34c]
jne 0x64abc5
lea esi, [esi]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x64abc5
mov eax, dword [ebp - 0x33c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x64ad11
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x64ad78
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x64ad5b
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x64ad36
call fcn.0071fff4
mov edx, dword [ebp - 0x334]
mov eax, dword [ebp - 0x330]
jmp 0x64ab72
call fcn.0071fff4
mov ebx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x220]
mov esi, dword [ebp - 0x358]
jmp 0x64ab3e