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

Disassembly:
mov eax, 0x479ad0
call fcn.0044db9c
sub esp, 0x28
push ebx
push esi
push edi
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x493548
lea ecx, [ebp - 0x24]
mov esi, eax
call fcn.004680a4
and dword [ebp - 4], 0
lea ecx, [ebp - 0x24]
call fcn.004680c7
mov ecx, dword [0x49349c]
test ecx, ecx
je 0x45bf02
mov eax, dword [0x493480]
xor edx, edx
div ecx
sub esi, dword [0x493538]
cmp esi, eax
jae 0x45bf02
mov esi, dword [ebp + 8]
sub esp, 0x14
mov edi, esp
mov ecx, dword [ebp + 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
call fcn.00468ce7
jmp 0x45c124
mov ebx, dword [ebp + 8]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
push dword [ebx + 5]
call esi
mov ecx, dword [edi + 0x1f]
push eax
mov dword [ebp - 0x18], eax
call fcn.00467127
test eax, eax
je 0x45c11c
push dword [ebx + 9]
call esi
push dword [ebx + 0xd]
mov dword [ebp - 0x14], eax
call esi
test eax, eax
mov dword [ebp - 0x10], eax
jl 0x45c11c
mov eax, dword [edi + 0x1f]
mov ecx, dword [eax + 0x44]
mov edx, ecx
sub edx, dword [ebp - 0x14]
cmp dword [ebp - 0x10], edx
ja 0x45c11c
mov esi, dword [eax + 0x70]
mov ebx, dword [eax + 0x74]
mov eax, dword [ebp - 0x18]
cdq
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cdq
push dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
push 0
push ecx
call fcn.0044c970
sub esi, eax
sbb ebx, edx
sub esi, dword [ebp - 0x1c]
sbb ebx, dword [ebp - 0x18]
test ebx, ebx
jg 0x45bf94
jl 0x45c11c
test esi, esi
jbe 0x45c11c
mov eax, dword [ebp - 0x10]
cdq
cmp ebx, edx
jg 0x45bfa9
jl 0x45bfa2
cmp esi, eax
jae 0x45bfa9
mov ebx, esi
mov dword [ebp - 0x10], ebx
jmp 0x45bfae
mov dword [ebp - 0x10], eax
mov ebx, eax
lea eax, [ebx + 0xd]
push eax
call fcn.0044aeaf
pop ecx
add ebx, 9
push ebx
mov esi, eax
call dword [sym.imp.WS2_32.dll_htonl]
push dword [ebp - 0x28]
mov dword [esi], eax
mov eax, dword [ebp + 8]
mov byte [esi + 4], 7
push dword [ebp - 0x2c]
and dword [ebp + 8], 0
mov ecx, dword [eax + 5]
mov dword [esi + 5], ecx
mov eax, dword [eax + 9]
mov dword [esi + 9], eax
mov eax, dword [edi + 0x1f]
push 0
push dword [eax + 0x44]
call fcn.0044c970
add eax, dword [ebp - 0x1c]
mov ebx, edx
adc ebx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x13]
test eax, eax
je 0x45c045
mov edx, dword [edi + 0x17]
mov ecx, dword [ebp + 8]
sub edx, eax
sar edx, 2
cmp edx, ecx
jbe 0x45c045
shl ecx, 2
mov dword [ebp - 0x18], ecx
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
call dword [eax + 4]
xor ecx, ecx
cmp ecx, ebx
ja 0x45c045
jb 0x45c02c
cmp eax, dword [ebp - 0x2c]
jae 0x45c045
mov eax, dword [edi + 0x13]
mov ecx, dword [ebp - 0x18]
inc dword [ebp + 8]
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
call dword [eax + 4]
sub dword [ebp - 0x2c], eax
sbb ebx, 0
jmp 0x45bffb
mov ecx, dword [edi + 0x13]
test ecx, ecx
jne 0x45c050
xor eax, eax
jmp 0x45c058
mov eax, dword [edi + 0x17]
sub eax, ecx
sar eax, 2
cmp eax, dword [ebp + 8]
jne 0x45c06a
mov ecx, dword [ebp + 0x10]
call fcn.00468cb7
jmp 0x45c113
mov ebx, dword [ebp - 0x10]
and dword [ebp - 0x14], 0
test ebx, ebx
jle 0x45c0ca
mov eax, dword [edi + 0x13]
test eax, eax
je 0x45c0c5
mov ecx, dword [edi + 0x17]
sub ecx, eax
sar ecx, 2
cmp dword [ebp + 8], ecx
jae 0x45c0c5
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 0x13]
mov edx, ebx
sub edx, dword [ebp - 0x14]
shl eax, 2
push edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax + ecx]
inc dword [ebp + 8]
lea edx, [edx + esi + 0xd]
mov eax, dword [ecx]
push edx
push dword [ebp - 0x2c]
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x45c05d
add dword [ebp - 0x14], eax
and dword [ebp - 0x2c], 0
and dword [ebp - 0x28], 0
cmp dword [ebp - 0x14], ebx
jge 0x45c0ca
jmp 0x45c075
cmp dword [ebp - 0x14], ebx
jl 0x45c05d
mov ecx, dword [ebp + 0x10]
lea eax, [ebx + 0xd]
push eax
push esi
mov edx, dword [ecx]
call dword [edx + 8]
cmp eax, 0xffffffff
je 0x45c05d
mov ecx, dword [0x49349c]
test ecx, ecx
je 0x45c0fb
mov eax, dword [0x493480]
xor edx, edx
div ecx
mov dword [0x493480], ebx
add dword [0x493538], eax
mov dword [ebp - 0x30], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x1f]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
call fcn.0046750a
push esi
call fcn.004472d3
pop ecx
jmp 0x45c124
mov ecx, dword [ebp + 0x10]
call fcn.00468cb7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.004680b3
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0xc