Function at 0x41a250
Capabilities:
Check for time delay via gettickcount
Get disk size
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47ce10
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x4ade78]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x24], 0
call fcn.00419eb0
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0
cmp dword [eax - 0xc], 0
jne 0x41a30b
mov ecx, dword [0x4af2c0]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x15
idiv ecx
cmp edx, 0x10
jne 0x41a2c4
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov edi, dword [ebp + 8]
push 0x492004
mov ecx, edi
call fcn.00401b30
mov esi, dword [ebp - 0x10]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a2f7
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x18]
push ecx
push eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
call sub.VERSION.dll_GetFileVersionInfoSizeA
push 0x492004
lea ecx, [ebp - 0x14]
mov esi, eax
call fcn.00401b30
mov ecx, dword [0x4af2c0]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov ecx, 0x15
idiv ecx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebp - 4], 1
lea edi, [ecx + 0x3b]
cmp edx, 0x11
jne 0x41a36e
call ebx
xor edx, edx
div edi
inc edx
mov dword [0x4af2c0], edx
test esi, esi
je 0x41a4a2
push esi
call fcn.004601e0
add esp, 4
mov edi, eax
push edi
push esi
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x41a499
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x4918d4
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x41a483
cmp dword [ebp - 0x1c], 0
je 0x41a483
mov esi, dword [0x4af2c0]
lea ecx, [esi + 1]
lea eax, [esi + 2]
imul eax, ecx
imul eax, esi
cdq
mov ecx, 0xb
idiv ecx
cmp edx, 3
jne 0x41a3ee
call ebx
xor edx, edx
mov ecx, 0x50
div ecx
lea esi, [edx + 1]
mov dword [0x4af2c0], esi
mov eax, esi
imul eax, esi
cdq
mov ecx, 0xc
idiv ecx
cmp edx, 2
jne 0x41a453
movsd xmm3, qword [0x4919d0]
movsd xmm6, qword [0x4919d8]
movsd xmm5, qword [0x4919c8]
movd xmm4, esi
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x41a43d
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x41a423
mov eax, dword [ebp - 0x20]
cmp dword [eax], 0xfeef04bd
jne 0x41a489
movzx esi, word [eax + 0xa]
movzx edx, word [eax + 8]
movzx ecx, word [eax + 0xe]
movzx eax, word [eax + 0xc]
push eax
push ecx
push edx
push esi
lea eax, [ebp - 0x14]
push str._d._d._d._d
push eax
call fcn.00404500
add esp, 0x18
mov esi, dword [0x4af2c0]
call fcn.0041c3f0
test al, al
jne 0x41a499
inc esi
mov dword [0x4af2c0], esi
push edi
call fcn.0046208f
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
push eax
call fcn.00403ee0
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp + 8]
add eax, 0x10
add edx, 0xfffffff0
or edi, 0xffffffff
mov dword [ebx], eax
add esp, 4
mov byte [ebp - 4], 0
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41a4dc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x10]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x41a4fd
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret