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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
xor eax, eax
push ebp
push 0x572152
push dword fs:[eax]
mov dword fs:[eax], esp
cmp word [edi + 0x1e], 0xa
jbe 0x571dc1
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x64
xor edx, edx
div ecx
mov ecx, 0x14
xor edx, edx
div ecx
mov eax, edx
movzx edx, word [edi + 0x1e]
sub edx, 0xb
add edx, edx
add edx, edx
lea edx, [edx + edx*4]
add edx, eax
mov eax, dword [0x68e9b4]
mov eax, dword [eax]
call fcn.0048ecc8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x571dc1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
test bl, 8
je 0x571ddc
mov eax, dword [ebp - 0xc]
push eax
push 0
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 8]
call fcn.005b8c5c
jmp 0x571e22
test bl, 4
je 0x571dfb
mov eax, dword [ebp - 0xc]
push eax
push 1
push 0
push 0
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 8]
call fcn.005b8fc0
jmp 0x571e22
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
mov si, 0xfffa
call fcn.00404528
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 1
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp - 8]
call fcn.00486038
test bl, 2
je 0x5720c2
cmp dword [ebp + 8], 0
je 0x5720c2
movzx ebx, byte [edi + 0xa8]
test bl, bl
jne 0x571e4f
movzx eax, word [edi + 0x1e]
dec eax
sub ax, 9
jae 0x571e4f
movzx ebx, byte [edi + 0x1e]
mov eax, ebx
dec eax
sub al, 9
jae 0x57201c
mov eax, ebx
dec eax
sub al, 4
jae 0x571f70
dec bl
je 0x571e7a
dec bl
je 0x571ea2
dec bl
je 0x571eca
dec bl
je 0x571ef2
jmp 0x571f12
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
mov ecx, 6
xor edx, edx
div ecx
mov eax, edx
add eax, 0x104
jmp 0x571f14
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
mov ecx, 0xa
xor edx, edx
div ecx
mov eax, edx
add eax, 0xe6
jmp 0x571f14
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
mov ecx, 0xa
xor edx, edx
div ecx
mov eax, edx
add eax, 0xf0
jmp 0x571f14
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
and eax, 7
add eax, 0xfa
jmp 0x571f14
xor eax, eax
test eax, eax
jle 0x5720c2
mov edx, dword [0x68eac8]
mov edx, dword [edx]
xchg edx, eax
call fcn.0048ecc8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x5720c2
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov si, 0xfffa
call fcn.00404528
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 1
push 0x7c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
sub ecx, 0x16
mov eax, dword [ebp + 8]
mov edx, dword [eax]
sub edx, 0x16
mov eax, dword [ebp - 8]
call fcn.00486e0c
jmp 0x5720c2
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
mov ecx, 0xa
xor edx, edx
div ecx
mov eax, edx
cmp bl, 9
jne 0x571f9d
add eax, 0x3ca
jmp 0x571fcf
cmp bl, 8
jne 0x571fa9
add eax, 0x3c0
jmp 0x571fcf
cmp bl, 7
jne 0x571fb5
add eax, 0x3d4
jmp 0x571fcf
cmp bl, 6
jne 0x571fc1
add eax, 0x3e8
jmp 0x571fcf
cmp bl, 5
jne 0x571fcd
add eax, 0x3de
jmp 0x571fcf
xor eax, eax
test eax, eax
jle 0x5720c2
mov edx, dword [0x68f08c]
mov edx, dword [edx]
xchg edx, eax
call fcn.0048ecc8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x5720c2
mov eax, dword [ebp - 0x10]
push eax
push 1
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov si, 0xfffa
call fcn.00404528
lea ecx, [ebp - 0x20]
mov eax, dword [ebp + 8]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00486d24
jmp 0x5720c2
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68ec3c]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
mov ecx, 0xa
xor edx, edx
div ecx
mov eax, edx
movzx edx, byte [edi + 0xfc]
cmp dl, 0xf
jb 0x572050
add eax, 0x3ca
jmp 0x572082
cmp dl, 0xc
jb 0x57205c
add eax, 0x3c0
jmp 0x572082
cmp dl, 9
jb 0x572068
add eax, 0x3d4
jmp 0x572082
cmp dl, 6
jb 0x572074
add eax, 0x3e8
jmp 0x572082
cmp dl, 3
jb 0x572080
add eax, 0x3de
jmp 0x572082
xor eax, eax
test eax, eax
jle 0x5720c2
mov edx, dword [0x68f08c]
mov edx, dword [edx]
xchg edx, eax
call fcn.0048ecc8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x5720c2
mov eax, dword [ebp - 0x10]
push eax
push 1
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov si, 0xfffa
call fcn.00404528
lea ecx, [ebp - 0x20]
mov eax, dword [ebp + 8]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00486d24
cmp byte [ebp + 0x10], 0
je 0x57212f
test byte [edi + 0x13], 4
je 0x57212f
cmp word [edi + 0x20], 1
jbe 0x57212f
movzx ebx, word [edi + 0xa3]
cmp bx, 1
jbe 0x57212f
lea edx, [ebp - 4]
movzx eax, bx
call fcn.0040a028
push 0xffffff
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 4]
call fcn.00405adc
mov eax, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 4]
call fcn.00405adc
mov edx, dword [ebp - 0x28]
mov eax, dword [0x68e3f8]
mov eax, dword [eax]
call fcn.004857a0
mov edx, dword [ebp + 0x1c]
sub edx, eax
mov eax, dword [0x68e3f8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x18]
call fcn.0048535c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x572159
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.00405988
lea eax, [ebp - 4]
call fcn.00405158
ret