Function at 0x410180
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x45b9b4]
push ebx
push ebp
mov eax, 0x92ea28a3
imul ecx
add edx, ecx
push esi
mov esi, dword [0x45b9ac]
push edi
mov edi, dword [0x45b9c8]
sar edx, 0x12
imul edi, edi, 0xde7fc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x6352a551
imul esi
sar edx, 0x12
add edi, edx
mov eax, edx
shr eax, 0x1f
add eax, edi
mov edi, eax
mov eax, 0x6352a551
imul ecx
sar edx, 0x12
add edi, edx
mov ecx, edx
mov edx, dword [0x45b9c0]
imul edx, edx, 0x6a5ba
shr ecx, 0x1f
add ecx, edi
mov edi, dword [esp + 0x24]
add ecx, edx
mov eax, 0x9dbc161
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 0x410470
mov ecx, dword [0x45b9ac]
mov eax, 0x93a3ffdd
imul ecx
add edx, ecx
mov ecx, dword [0x45b9c8]
sar edx, 0x12
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, 0x6352a551
imul ecx
mov ecx, dword [str._r_____r____]
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
mov ebx, eax
mov eax, 0x6352a551
imul ecx
sar edx, 0x12
mov eax, edx
add ebx, edx
mov edx, dword [0x45b9c0]
imul edx, edx, 0x6a5ba
shr eax, 0x1f
add eax, ebx
add eax, edx
sub eax, ecx
add eax, 0x3e2f3
push esi
mov dword [0x45b9ac], eax
call fcn.004408b2
add esp, 4
mov ebx, eax
push ebx
push esi
push ebp
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x41045a
mov ecx, dword [0x45b9bc]
mov esi, dword [0x45b9c8]
mov eax, 0x93a3ffdd
imul esi, esi, 0x6f3fe
imul ecx
add edx, ecx
mov ecx, dword [0x45b9c4]
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x6352a551
imul ecx
mov eax, dword [0x45b9a8]
mov edi, dword [0x45b9c0]
imul eax, eax, 0x6a5ba
sar edx, 0x12
mov ecx, edx
add esi, edx
mov edx, dword [str._r_____r____]
imul edx, edx, 0xa4f50
shr ecx, 0x1f
add ecx, esi
add ecx, edx
mov edx, dword [0x45b9b8]
imul edx, edx, 0xc0c12
add eax, edi
add eax, ecx
lea eax, [edx + eax - 0x53d95]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x44c194
push ebx
mov dword [0x45b9b4], eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
mov edi, dword [0x45b9c8]
mov esi, dword [0x45b9b8]
je 0x4103e4
mov ecx, dword [0x45b9c4]
mov eax, 0x92ea28a3
imul ecx
add edx, ecx
mov ecx, dword [0x45b9a8]
sar edx, 0x12
imul ecx, ecx, 0x6ef8e
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, edi
imul ebp, ebp, 0x6f3fe
sub ebp, eax
mov edx, esi
imul edx, edx, 0xa4f50
add ebp, ecx
mov ecx, dword [0x45b9b4]
add ebp, edx
mov eax, 0x6352a551
imul esi
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x6352a551
imul ecx
sar edx, 0x12
add ebp, edx
mov ecx, edx
mov eax, 0x9dbc161
imul esi
sar edx, 0xe
mov eax, edx
shr ecx, 0x1f
shr eax, 0x1f
add ecx, ebp
add eax, edx
sub ecx, eax
mov dword [0x45b9c4], ecx
mov ecx, dword [esp + 0x10]
mov dx, word [ecx + 0x14]
mov word [esp + 0x14], dx
mov ecx, dword [0x45b9b0]
imul edi, edi, 0x6f3fe
mov eax, 0x92ea28a3
imul ecx
mov eax, dword [0x45b9c0]
add edx, ecx
imul eax, eax, 0x85399
imul ecx, ecx, 0x67dee
sar edx, 0x12
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
add ebp, eax
mov eax, 0x6352a551
imul esi
sar edx, 0x12
add ebp, edx
mov esi, edx
mov edx, dword [0x45b9bc]
imul edx, edx, 0x53d95
shr esi, 0x1f
add esi, ebp
add esi, edx
mov edx, dword [0x45b9ac]
mov eax, 0x2a7feb
imul edx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
add esi, ecx
mov dword [0x45b9bc], esi
push ebx
call fcn.004408b7
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