Function at 0x411230
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x45dbcc]
push ebx
push ebp
push esi
mov esi, dword [0x45dbd4]
mov eax, 0x4a4dc96f
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
push edi
mov edi, eax
mov eax, 0x4a4dc96f
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, edx, 0x365
sub eax, edi
add eax, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x338
add eax, edx
mov edi, eax
mov eax, 0xa33a575b
imul esi
add edx, esi
sar edx, 9
add edi, edx
mov esi, edx
mov eax, 0xc152500d
imul ecx
add edx, ecx
mov ecx, dword [0x45dbdc]
sar edx, 9
imul ecx, ecx, 0x221
mov eax, edx
shr esi, 0x1f
shr eax, 0x1f
add esi, edi
mov edi, dword [esp + 0x24]
add eax, edx
lea edx, [esp + 0x18]
sub esi, eax
push edx
add esi, ecx
xor ebp, ebp
xor ebx, ebx
push edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebx
mov dword [str._r_____r____], esi
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebp
je 0x411538
mov ebx, dword [0x45dbe0]
mov eax, dword [0x45dbe8]
imul ebx, ebx, 0x365
mov ecx, dword [0x45dbd4]
imul eax, eax, 0x338
sub ebx, eax
mov eax, 0xa33a575b
imul ecx
add edx, ecx
sar edx, 9
add ebx, edx
mov eax, edx
shr eax, 0x1f
add eax, ebx
mov dword [esp + 0x10], eax
mov eax, 0xf07fc3e1
imul ecx
mov eax, dword [esp + 0x10]
add edx, ecx
mov ecx, dword [0x45dbcc]
sar edx, 9
mov ebx, edx
add eax, edx
shr ebx, 0x1f
add ebx, eax
mov eax, 0x5e6ea9af
imul ecx
sar edx, 7
mov ecx, edx
add ebx, edx
mov edx, dword [0x45dbe4]
imul edx, edx, 0x92
shr ecx, 0x1f
add ecx, ebx
add ecx, edx
sub ecx, dword [str._r_____r____]
add ecx, 0x2f4
push esi
mov dword [0x45dbcc], ecx
call fcn.00442144
add esp, 4
mov ebx, eax
push ebx
push esi
push ebp
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x411522
mov esi, dword [0x45dbdc]
mov ecx, dword [str._r_____r____]
mov eax, dword [0x45dbd8]
lea edi, [eax + ecx]
imul ecx, ecx, 0x323
imul edi, edi, 0x221
mov edx, esi
imul edx, edx, 0x365
add edi, edx
mov eax, 0xa33a575b
imul esi
add edx, esi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
add eax, ecx
mov ecx, dword [0x45dbe0]
mov edi, eax
mov eax, 0x5e6ea9af
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
lea edx, [edi + ecx - 0x92]
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
mov ecx, dword [0x45dbe4]
je 0x4114af
mov edx, dword [0x45dbd4]
mov eax, dword [0x45dbc8]
lea edi, [eax + edx]
mov eax, 0x4a4dc96f
imul edi, edi, 0x15b
imul ecx
sar edx, 8
mov ecx, edx
mov esi, dword [str._r_____r____]
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45dbd8]
mov eax, 0xa33a575b
imul ecx
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov edx, esi
imul edx, edx, 0x323
add edi, edx
mov eax, 0xc152500d
imul ecx
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0xad602b59
imul esi
add edx, esi
sar edx, 9
mov ecx, edx
add edi, edx
mov edx, dword [esp + 0x10]
shr ecx, 0x1f
add ecx, edi
mov dword [0x45dbe4], ecx
mov ax, word [edx + 0x14]
mov word [esp + 0x14], ax
mov esi, dword [0x45dbcc]
mov edx, dword [0x45dbd0]
lea edi, [edx + esi]
mov eax, 0x4a4dc96f
imul edi, edi, 0x2a6
imul ecx
sar edx, 8
add edi, edx
mov ebp, edx
mov eax, 0xa33a575b
imul ecx
add edx, ecx
sar edx, 9
shr ebp, 0x1f
mov ecx, edx
add ebp, edi
add ebp, edx
mov eax, 0xf07fc3e1
imul esi
add edx, esi
sar edx, 9
mov eax, edx
shr ecx, 0x1f
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe0]
add ecx, ebp
imul edx, edx, 0x175
sub ecx, eax
mov eax, dword [0x45dbdc]
imul eax, eax, 0x92
add ecx, edx
add ecx, eax
mov dword [0x45dbdc], ecx
push ebx
call fcn.00442149
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