Function at 0x40f4e0
Capabilities:
Get file version info

Disassembly:
sub esp, 0xc
mov ecx, dword [0x459b3c]
push ebp
push esi
mov esi, dword [0x459b44]
push edi
mov edi, dword [0x459b58]
mov eax, ecx
imul edi, edi, 0x3b76e
imul eax, eax, 0x426f4
add edi, eax
mov eax, 0x491979d9
imul esi
sar edx, 0x11
add edi, edx
mov eax, edx
shr eax, 0x1f
add eax, edi
shl eax, 1
mov edi, eax
mov eax, 0x89cc5bfb
imul ecx
add edx, ecx
sar edx, 0x10
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x5764ae1b
imul esi
sar edx, 0x12
mov eax, edx
sub edi, ecx
shr eax, 0x1f
add eax, edx
sub edi, eax
lea ecx, [esp + 0x10]
mov dword [str._r_____r____], edi
mov edi, dword [esp + 0x1c]
push ecx
xor ebp, ebp
push edi
mov dword [esp + 0x18], ebp
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebp
je 0x40f79f
mov ecx, dword [0x459b44]
push ebx
mov ebx, dword [0x459b50]
mov eax, 0x491979d9
imul ebx, ebx, 0x426f4
imul ecx
mov ecx, dword [0x459b3c]
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
mov ebx, eax
mov eax, 0x415373e5
imul ecx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + ebx*2 + 0x84bc4]
sub ecx, dword [str._r_____r____]
push esi
mov dword [0x459b3c], ecx
call fcn.0043ec92
add esp, 4
mov ebx, eax
push ebx
push esi
push ebp
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x40f795
mov ecx, dword [0x459b4c]
mov eax, 0x415373e5
imul ecx
imul ecx, ecx, 0x84de8
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x459b58]
sub ecx, eax
imul edx, edx, 0x3b76e
mov eax, dword [0x459b48]
imul eax, eax, 0x20dab
add ecx, edx
mov edx, dword [0x459b44]
add ecx, eax
mov edi, dword [0x459b50]
mov eax, 0x491979d9
imul edx
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [str._r_____r____]
imul edx, edx, 0x70110
add eax, edi
add eax, ecx
lea eax, [edx + eax - 0xd61e3]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x44a230
push ebx
mov dword [0x459b44], eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
mov edi, dword [0x459b44]
mov esi, dword [0x459b58]
je 0x40f70c
mov ecx, dword [0x459b48]
mov ebp, dword [0x459b38]
mov eax, 0x89cc5bfb
imul ebp, ebp, 0x3eb37
imul ecx
add edx, ecx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x459b54]
sub ebp, eax
mov eax, 0x5764ae1b
imul edx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov edx, esi
imul edx, edx, 0x3b76e
add ebp, edx
mov eax, 0x491979d9
imul ecx
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x491979d9
imul edi
mov eax, dword [esp + 0x10]
sar edx, 0x11
add ebp, edx
mov ecx, edx
mov edx, dword [str._r_____r____]
imul edx, edx, 0x70110
shr ecx, 0x1f
add ecx, ebp
add ecx, edx
mov dword [0x459b54], ecx
mov bp, word [eax + 0x14]
jmp 0x40f712
mov ecx, dword [0x459b54]
mov edx, dword [0x459b4c]
imul esi, esi, 0x3b76e
mov eax, dword [0x459b50]
imul edx, edx, 0xd61e3
imul eax, eax, 0x3eb04
add eax, edx
mov edx, dword [0x459b40]
imul edx, edx, 0x1db98
add eax, edx
mov dword [esp + 0x18], eax
mov eax, 0x5764ae1b
imul ecx
mov ecx, dword [esp + 0x18]
sar edx, 0x12
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov ecx, dword [0x459b3c]
add eax, esi
mov dword [esp + 0x18], eax
mov eax, 0xf957fd3
imul ecx
mov ecx, dword [esp + 0x18]
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x491979d9
imul edi
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
mov dword [0x459b4c], eax
push ebx
call fcn.0043ec97
add esp, 4
pop ebx
pop edi
pop esi
mov ax, bp
pop ebp
add esp, 0xc
ret