Function at 0x411440
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x45dbd4]
mov eax, 0x771da23
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
push ebx
push ebp
push esi
mov esi, eax
mov eax, 0x77668d35
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [0x45dbcc]
mov eax, 0x77668d35
imul ecx
push edi
sar edx, 0xc
mov edi, edx
add esi, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x2214
mov eax, ecx
imul eax, eax, 0x2179
shr edi, 0x1f
add edi, esi
add edi, edx
add edi, eax
mov eax, 0x98742075
imul ecx
add edx, ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45dbdc]
imul edx, edx, 0x147d
sub edi, ecx
add edi, edx
lea eax, [esp + 0x18]
mov dword [str._r_____r____], edi
mov edi, dword [esp + 0x24]
push eax
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 0x411740
mov ecx, dword [0x45dbd4]
mov eax, 0x771da23
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
mov ebx, eax
imul edx, edx, 0x2214
mov eax, dword [0x45dbe0]
imul eax, eax, 0x2179
sub ebx, edx
add ebx, eax
mov eax, 0xc7eb4e25
imul ecx
add edx, ecx
mov ecx, dword [0x45dbcc]
sar edx, 0xc
mov eax, edx
add ebx, edx
shr eax, 0x1f
add eax, ebx
mov ebx, eax
mov eax, 0x49e7e4dd
imul ecx
sar edx, 0xa
mov ecx, edx
add ebx, edx
mov edx, dword [0x45dbe4]
imul edx, edx, 0x4de
shr ecx, 0x1f
add ecx, ebx
add ecx, edx
sub ecx, dword [str._r_____r____]
add ecx, 0x1cbc
push esi
mov dword [0x45dbcc], ecx
call fcn.004421c4
add esp, 4
mov ebx, eax
push ebx
push esi
push ebp
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x41172a
mov ecx, dword [str._r_____r____]
mov eax, dword [0x45dbd8]
mov esi, dword [0x45dbdc]
lea edi, [eax + ecx]
imul ecx, ecx, 0x2263
mov eax, 0x771da23
imul edi, edi, 0x147d
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
add eax, ecx
mov ecx, esi
imul ecx, ecx, 0x2179
add eax, ecx
mov ecx, dword [0x45dbe0]
mov edi, eax
mov eax, 0x49e7e4dd
imul esi
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
lea edx, [edi + ecx - 0x4de]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0x44e2c0
push ebx
mov dword [0x45dbd4], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x4116b3
mov edx, dword [0x45dbd4]
mov eax, dword [0x45dbc8]
mov esi, dword [0x45dbd8]
lea edi, [eax + edx]
mov eax, 0x771da23
imul edi, edi, 0xddb
imul esi
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45dbe4]
mov eax, 0x77668d35
imul ecx
mov ecx, dword [str._r_____r____]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, edx, 0x2263
sub edi, eax
add edi, edx
mov eax, 0x8e8c0a95
imul ecx
add edx, ecx
sar edx, 0xc
add edi, edx
mov ecx, edx
mov eax, 0x98742075
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
shr ecx, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
add ecx, edi
sub ecx, eax
mov dword [0x45dbe4], ecx
mov ax, word [edx + 0x14]
mov word [esp + 0x14], ax
jmp 0x4116b9
mov ecx, dword [0x45dbe4]
mov esi, dword [0x45dbcc]
mov edx, dword [0x45dbd0]
lea edi, [edx + esi]
mov eax, 0x771da23
imul edi, edi, 0x1ade
imul ecx
sar edx, 8
add edi, edx
mov ebp, edx
mov eax, 0x77668d35
imul ecx
sar edx, 0xc
shr ebp, 0x1f
mov ecx, edx
add ebp, edi
add ebp, edx
mov eax, 0xc7eb4e25
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr ecx, 0x1f
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe0]
add ecx, ebp
imul edx, edx, 0xdf5
sub ecx, eax
mov eax, dword [0x45dbdc]
imul eax, eax, 0x4de
add ecx, edx
add ecx, eax
mov dword [0x45dbdc], ecx
push ebx
call fcn.004421c9
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