Function at 0x4114d0
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x45dbd4]
push ebx
mov eax, 0xbf1fa759
imul ecx
add edx, ecx
sar edx, 0x10
push esi
mov esi, dword [0x45dbcc]
push edi
mov edi, dword [0x45dbdc]
mov eax, edx
imul edi, edi, 0xdbb5
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0xbf1fa759
imul esi
add edx, esi
sar edx, 0x10
add edi, edx
mov eax, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x156ac
shr eax, 0x1f
add eax, edi
add eax, edx
mov edi, eax
mov eax, 0xca9db4d5
imul ecx
add edx, ecx
sar edx, 0x10
add edi, edx
mov ecx, edx
mov edx, esi
imul edx, edx, 0x14289
shr ecx, 0x1f
add ecx, edi
mov edi, dword [esp + 0x20]
add ecx, edx
mov eax, 0x7f55e343
imul esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [str._r_____r____], ecx
lea ecx, [esp + 0x14]
push ecx
xor ebx, ebx
push edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
test esi, esi
je 0x4117df
mov ecx, dword [0x45dbd4]
mov eax, 0x9524e185
imul ecx
add edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x156ac
mov ebx, eax
sub ebx, edx
mov eax, 0xca9db4d5
imul ecx
add edx, ecx
mov ecx, dword [0x45dbe0]
sar edx, 0x10
imul ecx, ecx, 0x14289
add ebx, edx
mov eax, edx
mov edx, dword [0x45dbe4]
shr eax, 0x1f
imul edx, edx, 0x3f76
add eax, ebx
add eax, ecx
mov ecx, dword [0x45dbcc]
add eax, edx
mov ebx, eax
mov eax, 0x72c3c0b5
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add ebx, edx
mov edx, dword [str._r_____r____]
add eax, ebx
sub eax, edx
add eax, 0x11aa4
push esi
mov dword [0x45dbcc], eax
call fcn.004423c4
add esp, 4
mov ebx, eax
push ebx
push esi
push 0
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x4117ca
mov esi, dword [0x45dbdc]
mov ecx, dword [str._r_____r____]
mov edx, dword [0x45dbd8]
lea edi, [edx + ecx]
imul ecx, ecx, 0x14373
mov eax, 0xca9db4d5
imul edi, edi, 0xdbb5
imul esi
add edx, esi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
add eax, ecx
mov ecx, esi
imul ecx, ecx, 0x14289
add eax, ecx
mov ecx, dword [0x45dbe0]
mov edi, eax
mov eax, 0x72c3c0b5
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
lea edx, [edi + ecx - 0x3f76]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x10]
push ecx
push 0x44e2c0
push ebx
mov dword [0x45dbd4], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], 0
call sub.VERSION.dll_VerQueryValueA
test eax, eax
mov ecx, dword [0x45dbe4]
je 0x411755
mov edx, dword [0x45dbd4]
mov eax, dword [0x45dbc8]
lea edi, [eax + edx]
mov esi, dword [0x45dbd8]
imul edi, edi, 0x8ec3
mov eax, 0xbf1fa759
imul ecx
add edx, ecx
sar edx, 0x10
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0xca9db4d5
imul esi
add edx, esi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, ecx
mov ecx, dword [str._r_____r____]
mov edx, ecx
imul edx, edx, 0x14373
sub edi, eax
add edi, edx
mov eax, 0x39f7b4f
imul ecx
sar edx, 0xa
add edi, edx
mov ecx, edx
mov eax, 0x7f55e343
imul esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
shr ecx, 0x1f
add eax, edx
mov edx, dword [esp + 0xc]
add ecx, edi
sub ecx, eax
mov dword [0x45dbe4], ecx
mov ax, word [edx + 0x14]
mov word [esp + 0x10], ax
mov esi, dword [0x45dbcc]
mov edx, dword [0x45dbd0]
lea edi, [edx + esi]
mov eax, 0x9524e185
imul edi, edi, 0x10156
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0xbf1fa759
imul ecx
add edx, ecx
sar edx, 0x10
add edi, edx
mov esi, edx
mov eax, 0xca9db4d5
imul ecx
mov eax, dword [0x45dbe0]
add edx, ecx
imul eax, eax, 0x8af5
shr esi, 0x1f
sar edx, 0x10
add esi, edi
add esi, edx
mov ecx, edx
mov edx, dword [0x45dbdc]
imul edx, edx, 0x3f76
shr ecx, 0x1f
add ecx, esi
add ecx, edx
add ecx, eax
mov dword [0x45dbdc], ecx
push ebx
call fcn.004423c9
mov ax, word [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebx
add esp, 0x10
ret
pop edi
pop esi
mov ax, bx
pop ebx
add esp, 0x10
ret