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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4620c0
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x474860]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x44], 0
call edi
cmp eax, 1
ja 0x4085cd
lodsd eax, dword [esi]
fsubr qword [edx + 0x1d]
loopne 0x4085ed
jmp 0x40862a
xor eax, eax
push eax
push 0x46cd04
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
call fcn.00402380
mov dword [ebp - 4], 0
call edi
cmp eax, 6
ja 0x408644
invalid
xchg ebx, eax
add bl, byte [edx + 0x53]
cdq
test al, 0x84
leave
mov eax, dword [0x7ebc0991]
adc bh, byte [ecx - 0x30]
pop ecx
test dword [ecx - 0x3d], ebx
add dword [ecx + 0x1a], ecx
cwde
or dword [ebx], 0x44f8f448
add al, 0xc8
movsd dword es:[edi], dword [esi]
add esi, dword [eax + esi - 0x640612be]
xchg ebx, eax
and dl, 0x2d
mov byte ds:[0x4fdd615f], al
mov byte [0x4fdd615f], al
clc
push edx
push edx
mov ah, 0xbe
std
pop edx
and byte [eax + 0x66], 0xeb
inc esi
cmpsb byte gs:[esi], byte es:[edi]
jns 0x408631
movsb byte es:[edi], byte [esi]
inc word [edi - 0x7d]
jle 0x40865b
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x30], 0
jb 0x408653
or bh, al
inc ebp
rol byte [eax], 1
add byte [eax], al
add byte [edx + 2], dh
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x30]
call fcn.00406f00
mov byte [ebp - 4], 1
call edi
inc esi
inc ebp
cld
add edi, edi
xlatb
cmp eax, 2
ja 0x408686
and eax, 0xc6176a9d
ret
mov dword [ebp - 0x38], 0
call edi
cmp eax, 8
ja 0x4086ef
push esp
scasd eax, dword es:[edi]
call 0xb690996a
xchg edi, eax
push 0xe1949589
or ecx, dword [ebx - 0x45dd2c7b]
aam 0x92
and eax, 0x11e31935
adc ah, al
mov ah, 0x71
shr dword [edx + ecx + 0x3a3c9c81], 0x92
cmp al, 0x3a
xchg edx, eax
mov esi, 0x19b05c0c
pop ds
std
add ebx, 0xfffffffc
adc al, 0x73
xchg ecx, eax
div dword [edi]
movntq qword [ecx - 0x1d314ff1], mm6
or bl, byte [ecx + 0x47]
push esi
dec edi
loop 0x4086b7
not dword ss:[esi - 0x7c]
mov dword [edx - 0x67], edi
xchg edi, eax
cli
dec esi
inc ebx
fcomp qword [ecx - 9]
or al, 0x6b
pop esi
stosd dword es:[edi], eax
push ebp
pop ecx
xor eax, 0xc8458d19
lea eax, [ebp - 0x38]
push eax
push ecx
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x2c], 0
call fcn.0040c760
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
or ebx, 0xffffffff
cmp dword [eax - 0xc], 0
je 0x408853
jmp 0x408720
sub esp, 0x18
mov ecx, esp
push 8
xor eax, eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push str.Location
mov word [ecx], ax
call fcn.00402380
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00408250
test al, al
jne 0x408853
lea eax, [ebp - 0x38]
push eax
push ecx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x30]
call fcn.0040c760
mov byte [ebp - 4], 3
mov edx, dword [eax]
mov esi, dword [ebp - 0x2c]
lea ecx, [edx - 0x10]
add esi, 0xfffffff0
cmp ecx, esi
je 0x4087c4
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4087b2
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4087b2
call fcn.00407420
mov dword [ebp - 0x34], eax
mov ecx, ebx
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x4087aa
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x34]
add eax, 0x10
mov dword [ebp - 0x2c], eax
jmp 0x4087be
push dword [edx - 0xc]
lea ecx, [ebp - 0x2c]
push edx
call fcn.00407350
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4087e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call edi
cmp eax, 8
ja 0x408846
jns 0x4087d0
stc
ljmp 0xb147
mov eax, dword [ebp - 0x2c]
cmp dword [eax - 0xc], 0
jne 0x408720
mov esi, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00401d90
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408881
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x40889f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x14], 8
jb 0x4088b0
push dword [ebp - 0x28]
call fcn.00447bb4
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00447bb9
mov esp, ebp
pop ebp
ret 8