Function at 0x411110
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x45ccd4]
push ebx
push ebp
push esi
mov esi, dword [0x45cce8]
mov eax, 0x98dd629f
imul esi, esi, 0xdaea
imul ecx
add edx, ecx
sar edx, 0xf
push edi
mov edi, edx
add esi, edx
shr edi, 0x1f
add edi, esi
mov esi, dword [0x45cccc]
mov eax, esi
imul eax, eax, 0xd3c7
add edi, eax
mov eax, 0x61494a93
imul ecx
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x61494a93
imul esi
sub edi, ecx
sar edx, 0xf
add edi, edx
mov ecx, edx
mov edx, dword [0x45ccdc]
imul edx, edx, 0xd082
shr ecx, 0x1f
add ecx, edi
mov edi, dword [esp + 0x24]
add ecx, edx
mov eax, 0x5cb3b92f
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [str._r_____r____], ecx
lea ecx, [esp + 0x18]
push ecx
xor ebp, ebp
xor ebx, ebx
push edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebp
je 0x411414
mov ebx, dword [0x45cce4]
mov edx, dword [0x45cce8]
imul ebx, ebx, 0x64e1
mov ecx, dword [0x45ccd4]
imul edx, edx, 0xdaea
sub ebx, edx
mov eax, 0x98dd629f
imul ecx
add edx, ecx
sar edx, 0xf
add ebx, edx
mov eax, edx
mov edx, dword [0x45cce0]
shr eax, 0x1f
imul edx, edx, 0xd3c7
add eax, ebx
add eax, edx
mov dword [esp + 0x10], eax
mov eax, 0x4e93cfed
imul ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [0x45cccc]
sar edx, 0xe
add eax, edx
mov ebx, edx
shr ebx, 0x1f
add ebx, eax
mov eax, 0x8891a35
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add ebx, edx
mov edx, dword [str._r_____r____]
add eax, ebx
sub eax, edx
add eax, 0x86a3
push esi
mov dword [0x45cccc], eax
call fcn.00441a32
add esp, 4
mov ebx, eax
push ebx
push esi
push ebp
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x4113fe
mov esi, dword [0x45ccdc]
mov ecx, dword [str._r_____r____]
mov edx, dword [0x45ccd8]
lea edi, [edx + ecx]
imul ecx, ecx, 0xd65c
mov eax, 0x98dd629f
imul edi, edi, 0xd082
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
add eax, ecx
mov ecx, esi
imul ecx, ecx, 0xd3c7
add eax, ecx
mov ecx, dword [0x45cce0]
mov edi, eax
mov eax, 0x8891a35
imul esi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
lea edx, [edi + ecx - 0x64e1]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0x44d2b8
push ebx
mov dword [0x45ccd4], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x411387
mov edx, dword [0x45ccd4]
mov eax, dword [0x45ccc8]
mov ecx, dword [0x45ccd8]
lea edi, [eax + edx]
mov esi, dword [str._r_____r____]
imul edi, edi, 0x3bfc
mov eax, 0x98dd629f
imul ecx
add edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov edx, esi
imul edx, edx, 0xd65c
add edi, edx
mov edx, dword [0x45cce4]
mov eax, 0x61494a93
imul edx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x5cb3b92f
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x79b0bfed
imul esi
sar edx, 0xe
sub edi, ecx
mov ecx, edx
add edi, edx
mov edx, dword [esp + 0x10]
shr ecx, 0x1f
add ecx, edi
mov dword [0x45cce4], ecx
mov ax, word [edx + 0x14]
mov word [esp + 0x14], ax
jmp 0x41138d
mov ecx, dword [0x45cce4]
mov esi, dword [0x45cccc]
mov edx, dword [0x45ccd0]
mov eax, dword [0x45ccdc]
lea edi, [edx + esi]
imul eax, eax, 0x64e1
imul edi, edi, 0xb0bd
add edi, eax
mov eax, 0x98dd629f
imul ecx
add edx, ecx
sar edx, 0xf
add edi, edx
mov ebp, edx
mov eax, 0x61494a93
imul ecx
sar edx, 0xf
shr ebp, 0x1f
mov ecx, edx
add ebp, edi
add ebp, edx
mov eax, 0x4e93cfed
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cce0]
imul edx, edx, 0x10171
shr ecx, 0x1f
add ecx, ebp
sub ecx, eax
add ecx, edx
mov dword [0x45ccdc], ecx
push ebx
call fcn.00441a37
mov ax, word [esp + 0x18]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
mov ax, bx
pop ebx
add esp, 0x10
ret