Function at 0x410da0
Capabilities:
Get file version info

Disassembly:
sub esp, 0x10
mov ecx, dword [0x45cbcc]
push ebx
push ebp
mov eax, 0x5fa6246b
imul ecx
push esi
push edi
mov edi, ecx
mov esi, dword [0x45cbd4]
imul edi, edi, 0xdc65
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe8]
sub edi, eax
imul edx, edx, 0xd60e
mov eax, dword [0x45cbdc]
imul eax, eax, 0x100de
add edi, edx
add edi, eax
mov eax, 0x2aa871e5
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x2aa871e5
imul ecx
sar edx, 0xe
add edi, edx
mov ecx, edx
mov eax, 0x1006124d
imul esi
shr ecx, 0x1f
sar edx, 0xc
add ecx, edi
mov edi, dword [esp + 0x24]
mov eax, edx
add ecx, edx
shr eax, 0x1f
add eax, 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
mov dword [str._r_____r____], eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebp
je 0x411094
mov ebx, dword [0x45cbe0]
mov edx, dword [0x45cbe8]
imul ebx, ebx, 0xdc65
mov eax, dword [0x45cbe4]
imul edx, edx, 0xd60e
mov ecx, dword [0x45cbcc]
imul eax, eax, 0xa88a
sub ebx, edx
add ebx, eax
mov eax, 0x3e77639f
imul ecx
mov ecx, dword [0x45cbd4]
sar edx, 0xe
add ebx, edx
mov eax, edx
shr eax, 0x1f
add eax, ebx
mov dword [esp + 0x10], eax
mov eax, 0x7f915fef
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 0xf
mov ebx, edx
add eax, edx
shr ebx, 0x1f
add ebx, eax
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ebx, edx
mov edx, dword [str._r_____r____]
add ecx, ebx
sub ecx, edx
add ecx, 0xa8e3
push esi
mov dword [0x45cbcc], ecx
call fcn.004417b4
add esp, 4
mov ebx, eax
push ebx
push esi
push ebp
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x41107e
mov esi, dword [0x45cbdc]
mov ecx, dword [str._r_____r____]
mov edx, dword [0x45cbd8]
lea edi, [edx + ecx]
imul ecx, ecx, 0xff9f
mov eax, esi
imul edi, edi, 0x100de
imul eax, eax, 0xdc65
add edi, eax
mov eax, 0x3e77639f
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x1006124d
imul esi
mov esi, dword [0x45cbe0]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, esi
add eax, edi
lea ecx, [ecx + eax - 0xa88a]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x14]
push eax
push 0x44d2c0
push ebx
mov dword [0x45cbd4], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x41100b
mov ecx, dword [0x45cbd4]
mov edx, dword [0x45cbc8]
mov edi, dword [0x45cbd8]
lea ebp, [edx + ecx]
mov esi, dword [str._r_____r____]
imul ebp, ebp, 0x10649
mov eax, 0x5fa6246b
imul edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x1840c0e3
imul esi
imul esi, esi, 0xff9f
sar edx, 0xc
add ebp, edx
mov ecx, edx
mov edx, dword [0x45cbe4]
mov eax, 0x2aa871e5
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
shr ecx, 0x1f
add ecx, ebp
sub ecx, eax
mov eax, 0x1006124d
imul edi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
sub ecx, eax
add ecx, esi
mov dword [0x45cbe4], ecx
mov ax, word [edx + 0x14]
mov word [esp + 0x14], ax
jmp 0x411011
mov ecx, dword [0x45cbe4]
mov edx, dword [0x45cbcc]
mov eax, dword [0x45cbd0]
lea esi, [eax + edx]
mov eax, dword [0x45cbe0]
imul esi, esi, 0x15696
imul eax, eax, 0x15433
add esi, eax
mov eax, dword [0x45cbdc]
imul eax, eax, 0xa88a
add esi, eax
mov eax, 0x7f915fef
imul edx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x2aa871e5
imul ecx
sar edx, 0xe
add esi, edx
mov edi, edx
mov eax, 0x1006124d
imul ecx
shr edi, 0x1f
sar edx, 0xc
add edi, esi
mov ecx, edx
shr ecx, 0x1f
add edi, edx
add ecx, edi
mov dword [0x45cbdc], ecx
push ebx
call fcn.004417b9
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