Function at 0x40f440
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x459b3c]
mov eax, dword [0x459b58]
imul eax, eax, 0x171ed6e
push ebx
push esi
mov esi, dword [0x459b44]
push edi
mov edi, ecx
imul edi, edi, 0x1a0fa8c
add edi, eax
mov eax, 0x5e407cd
imul esi
sar edx, 0x14
add edi, edx
mov eax, edx
shr eax, 0x1f
add eax, edi
shl eax, 1
mov edi, eax
mov eax, 0x702fe9a3
imul esi
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x565ef47
imul ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
lea edx, [esp + 0x14]
mov dword [str._r_____r____], edi
mov edi, dword [esp + 0x20]
push edx
xor ebx, ebx
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebx
je 0x40f6fb
mov ecx, dword [0x459b44]
push ebp
mov ebp, dword [0x459b50]
mov eax, 0x5e407cd
imul ebp, ebp, 0x1a0fa8c
imul ecx
mov ecx, dword [0x459b3c]
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
mov ebp, eax
mov eax, 0x545b9e19
imul ecx
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + ebp*2 + 0x3409364]
sub ecx, dword [str._r_____r____]
push esi
mov dword [0x459b3c], ecx
call fcn.0043eba2
add esp, 4
mov ebp, eax
push ebp
push esi
push ebx
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x40f6f1
mov ecx, dword [0x459b4c]
mov esi, ecx
mov eax, 0x545b9e19
imul esi, esi, 0x341f518
imul ecx
mov ecx, dword [0x459b58]
imul ecx, ecx, 0x171ed6e
sar edx, 0x17
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov edi, dword [0x459b50]
add esi, ecx
mov ecx, dword [0x459b44]
mov eax, 0x5e407cd
imul ecx
mov ecx, dword [str._r_____r____]
sar edx, 0x14
imul ecx, ecx, 0x2b75400
mov eax, edx
add esi, edx
mov edx, dword [0x459b48]
imul edx, edx, 0xd0a84b
shr eax, 0x1f
add eax, esi
add ecx, edi
add ecx, eax
lea eax, [edx + ecx - 0x53d33c3]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x44a230
push ebp
mov dword [0x459b44], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
mov ebx, dword [0x459b44]
mov esi, dword [0x459b58]
je 0x40f673
mov edi, dword [0x459b38]
imul edi, edi, 0x18470b7
mov eax, esi
imul eax, eax, 0x171ed6e
add edi, eax
mov eax, 0x5e407cd
imul ebx
sar edx, 0x14
add edi, edx
mov ecx, edx
mov edx, dword [str._r_____r____]
imul edx, edx, 0x2b75400
shr ecx, 0x1f
add ecx, edi
add ecx, edx
mov edx, dword [0x459b54]
mov edi, dword [0x459b48]
mov eax, 0x702fe9a3
imul edx
sar edx, 0x19
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x5e407cd
imul edi
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x565ef47
imul edi
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
sub ecx, eax
mov dword [0x459b54], ecx
mov ax, word [edx + 0x14]
mov word [esp + 0x14], ax
jmp 0x40f679
mov ecx, dword [0x459b54]
imul esi, esi, 0x171ed6e
mov eax, 0x5e407cd
imul ebx
sar edx, 0x14
add esi, edx
mov edi, edx
mov eax, 0x702fe9a3
imul ecx
mov ecx, dword [0x459b50]
mov eax, dword [0x459b40]
imul ecx, ecx, 0x185d014
sar edx, 0x19
imul eax, eax, 0xbdb188
shr edi, 0x1f
add edi, esi
add edi, edx
mov esi, edx
mov edx, dword [0x459b4c]
imul edx, edx, 0x53d33c3
shr esi, 0x1f
add esi, edi
add esi, ecx
mov ecx, dword [0x459b3c]
mov ebx, dword [esp + 0x14]
add esi, edx
add esi, eax
mov eax, 0x2742b221
imul ecx
sar edx, 0x15
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov dword [0x459b4c], esi
push ebp
call fcn.0043eba7
add esp, 4
pop ebp
pop edi
pop esi
mov ax, bx
pop ebx
add esp, 0x10
ret