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

Disassembly:
push 0xffffffffffffffff
push 0x4449e6
mov eax, dword fs:[0]
push eax
mov eax, 0x1004c
call fcn.0042f550
mov eax, dword [0x45b9b0]
xor eax, esp
mov dword [esp + 0x10048], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45b9b0]
xor eax, esp
push eax
lea eax, [esp + 0x10060]
mov dword fs:[0], eax
mov ebp, ecx
push 0x1000
lea ecx, [esp + 0x28]
call fcn.00401f00
xor esi, esi
push 0x1000
lea ecx, [esp + 0x44]
mov dword [esp + 0x1006c], esi
call fcn.00401f00
mov dword [esp + 0x14], esi
or esi, 0xffffffff
cmp dword [ebp + 0x418], esi
mov byte [esp + 0x10068], 1
jne 0x40afe5
lea ecx, [esp + 0x40]
mov byte [esp + 0x10068], 0
call fcn.00401ea0
lea ecx, [esp + 0x24]
mov dword [esp + 0x10068], esi
call fcn.00401ea0
mov eax, esi
jmp 0x40b2a0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [esp + 0x10074]
mov dword [esp + 0x18], eax
mov eax, 0x10624dd3
mul ebx
shr edx, 6
imul edx, edx, 0x3e8
sub ebx, edx
imul ebx, ebx, 0x3e8
lea edi, [ebp + 0x41c]
lea eax, [esp + 0x24]
push eax
call fcn.00401130
mov edx, dword [ebp + 0x418]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00401110
lea eax, [esp + 0x4c]
push eax
call fcn.00401130
add esp, 0x10
lea esp, [esp]
mov ecx, dword [edi + 8]
mov eax, ecx
sub eax, edi
push 0
neg eax
push 0x45a018
sbb eax, eax
push section..data
and eax, ecx
push 0
push eax
call fcn.0042fdf5
mov esi, eax
add esp, 0x14
test esi, esi
je 0x40b0ab
mov ecx, esi
call fcn.00401e70
test eax, eax
je 0x40b097
cmp esi, edi
je 0x40b08b
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [ecx + 8], edx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
jmp 0x40b040
mov edx, dword [ebp + 0x418]
lea ecx, [esp + 0x40]
push ecx
push edx
call fcn.00401110
add esp, 8
mov eax, dword [esp + 0x10070]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x418]
neg esi
sbb esi, esi
lea edx, [esp + 0x44]
push 0
and esi, edx
mov dword [esp + 0x24], eax
push esi
lea eax, [esp + 0x30]
push eax
add ecx, 1
push ecx
mov dword [esp + 0x34], ebx
call fcn.004010a0
add esp, 0x14
test eax, eax
jl 0x40b234
jne 0x40b0fc
mov edx, dword [ebp]
mov eax, dword [edx + 8]
mov ecx, ebp
call eax
jmp 0x40b20c
mov edx, dword [ebp + 0x418]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.00401120
add esp, 8
test eax, eax
je 0x40b142
push 0x10000
lea eax, [esp + 0x60]
push eax
mov ecx, ebp
call fcn.0040adc0
test eax, eax
mov edx, dword [ebp]
mov ecx, ebp
jbe 0x40b268
mov edx, dword [edx + 4]
push eax
lea eax, [esp + 0x60]
push eax
call edx
add dword [esp + 0x14], 1
mov ecx, dword [ebp + 0x418]
lea eax, [esp + 0x40]
push eax
push ecx
call fcn.00401120
add esp, 8
test eax, eax
je 0x40b20c
mov edi, edi
mov ecx, dword [edi + 8]
mov eax, ecx
sub eax, edi
push 0
neg eax
push 0x45a018
sbb eax, eax
push section..data
and eax, ecx
push 0
push eax
call fcn.0042fdf5
mov esi, eax
add esp, 0x14
test esi, esi
je 0x40b20c
mov ecx, esi
call fcn.00401e70
test eax, eax
je 0x40b1bb
cmp esi, edi
je 0x40b1af
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov dword [ecx + 4], edx
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
jmp 0x40b160
mov ecx, esi
call fcn.00401e50
push eax
mov ecx, esi
call fcn.00401c50
push eax
mov ecx, ebp
call fcn.0040ade0
push 0
push eax
mov ecx, esi
call fcn.00401c60
mov ecx, esi
call fcn.00401e70
test eax, eax
je 0x40b207
cmp esi, edi
je 0x40b1fd
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
add dword [esp + 0x14], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x10070]
sub eax, dword [esp + 0x18]
imul ecx, ecx, 0x3e8
add ecx, dword [esp + 0x10074]
cmp eax, ecx
jb 0x40b014
jmp 0x40b277
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x10068], 0
call fcn.00401ea0
lea ecx, [esp + 0x24]
mov dword [esp + 0x10068], 0xffffffff
call fcn.00401ea0
or eax, 0xffffffff
jmp 0x40b2a0
mov eax, dword [edx + 0xc]
push 0
call eax
mov dword [esp + 0x14], 0xffffffff
lea ecx, [esp + 0x40]
mov byte [esp + 0x10068], 0
call fcn.00401ea0
lea ecx, [esp + 0x24]
mov dword [esp + 0x10068], 0xffffffff
call fcn.00401ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10060]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10048]
xor ecx, esp
call fcn.0042ec03
add esp, 0x10058
ret 8