Function at 0x405420
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x218
mov eax, dword [0x446214]
push esi
mov dword [esp + 0x218], eax
mov esi, ecx
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
test eax, eax
push edi
je 0x405459
mov edi, dword [esp + 0x22c]
push 0
push 0
push 0
push edi
push eax
call dword [sym.imp.WININET.dll_InternetSetFilePointer]
cmp eax, 0xffffffff
jne 0x405472
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x214]
call fcn.0041a963
add esp, 0x218
ret 0xc
mov ecx, dword [esp + 0x224]
mov eax, dword [ecx]
push ebx
push ebp
push 0
push 0
push edi
call dword [eax + 0x28]
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 8]
shl edx, 1
push edx
call fcn.00429e88
mov ebp, dword [esp + 0x234]
mov ebx, eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 8]
add ecx, edi
add esp, 4
cmp ecx, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0
jae 0x4055ec
jmp 0x4054c0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4054d1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x10], eax
mov edx, dword [esi + 0x18]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x22c]
push edi
push eax
push ebx
push ecx
mov ecx, esi
call fcn.00405390
test eax, eax
je 0x40560c
cmp dword [esi], 0
je 0x4055a7
test edi, edi
mov dword [esp + 0x18], edi
fild dword [esp + 0x18]
jge 0x40550c
fadd dword [0x438970]
fld st(0)
fdiv dword [esi + 8]
call fcn.0041b710
mov ebx, eax
cmp ebx, dword [esi + 0xc]
je 0x4055a1
test ebp, ebp
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
mov dword [esi + 0xc], ebx
jge 0x405536
fadd dword [0x438970]
fdivp st(1)
fmul qword [0x438968]
call fcn.0041b710
push eax
push ebp
push edi
lea edx, [esp + 0x28]
push 0x438938
push edx
call fcn.0041ad49
lea eax, [esp + 0x30]
push 0x438934
push eax
call fcn.0041acbd
add esp, 0x1c
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [0x447168]
call fcn.00403510
mov ecx, eax
call fcn.00408000
mov ecx, eax
call fcn.00405ab0
mov ecx, dword [0x447168]
push ebx
call fcn.00403510
mov ecx, eax
call fcn.00408000
mov ecx, eax
call fcn.00405aa0
jmp 0x4055a3
fstp st(0)
mov ebx, dword [esp + 0x14]
mov edx, dword [esi + 0x18]
mov eax, dword [edx + 4]
test eax, eax
je 0x4055d7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x10], ecx
jae 0x4055ce
sub eax, ecx
jmp 0x4055d0
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x18]
add edi, dword [eax + 8]
mov ecx, eax
mov edx, dword [ecx + 8]
add edx, edi
cmp edx, ebp
jb 0x4054c0
mov eax, ebp
sub eax, edi
je 0x40567c
push edi
push eax
mov eax, dword [esp + 0x234]
push ebx
push eax
mov ecx, esi
call fcn.00405390
test eax, eax
jne 0x405619
push ebx
call fcn.00429e8d
add esp, 4
xor eax, eax
jmp 0x40568a
cmp dword [esi], 0
je 0x40567c
push ebp
push ebp
lea ecx, [esp + 0x24]
push 0x438904
push ecx
call fcn.0041ad49
lea edx, [esp + 0x2c]
push 0x438934
push edx
call fcn.0041acbd
mov ecx, dword [0x447168]
add esp, 0x18
lea eax, [esp + 0x1c]
push eax
call fcn.00403510
mov ecx, eax
call fcn.00408000
mov ecx, eax
call fcn.00405ab0
mov ecx, dword [esi + 4]
push ecx
mov ecx, dword [0x447168]
call fcn.00403510
mov ecx, eax
call fcn.00408000
mov ecx, eax
call fcn.00405aa0
push ebx
call fcn.00429e8d
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x224]
pop ebp
pop ebx
pop edi
pop esi
call fcn.0041a963
add esp, 0x218
ret 0xc