Function at 0x56b234
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 0x56b646
push dword fs:[eax]
mov dword fs:[eax], esp
cmp word [edi + 0x1e], 0xa
jbe 0x56b2b5
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
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 [0x688998]
mov eax, dword [eax]
call fcn.0048ec40
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x56b2b5
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
test bl, 8
je 0x56b2d0
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.005b31f4
jmp 0x56b316
test bl, 4
je 0x56b2ef
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.005b3558
jmp 0x56b316
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 0x56b5b6
cmp dword [ebp + 8], 0
je 0x56b5b6
movzx ebx, byte [edi + 0xa8]
test bl, bl
jne 0x56b343
movzx eax, word [edi + 0x1e]
dec eax
sub ax, 9
jae 0x56b343
movzx ebx, byte [edi + 0x1e]
mov eax, ebx
dec eax
sub al, 9
jae 0x56b510
mov eax, ebx
dec eax
sub al, 4
jae 0x56b464
dec bl
je 0x56b36e
dec bl
je 0x56b396
dec bl
je 0x56b3be
dec bl
je 0x56b3e6
jmp 0x56b406
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
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 0x56b408
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
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 0x56b408
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
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 0x56b408
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
sub eax, dword [edx]
mov ecx, 0x96
xor edx, edx
div ecx
and eax, 7
add eax, 0xfa
jmp 0x56b408
xor eax, eax
test eax, eax
jle 0x56b5b6
mov edx, dword [0x688aac]
mov edx, dword [edx]
xchg edx, eax
call fcn.0048ec40
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x56b5b6
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 0x56b5b6
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
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 0x56b491
add eax, 0x3ca
jmp 0x56b4c3
cmp bl, 8
jne 0x56b49d
add eax, 0x3c0
jmp 0x56b4c3
cmp bl, 7
jne 0x56b4a9
add eax, 0x3d4
jmp 0x56b4c3
cmp bl, 6
jne 0x56b4b5
add eax, 0x3e8
jmp 0x56b4c3
cmp bl, 5
jne 0x56b4c1
add eax, 0x3de
jmp 0x56b4c3
xor eax, eax
test eax, eax
jle 0x56b5b6
mov edx, dword [0x68906c]
mov edx, dword [edx]
xchg edx, eax
call fcn.0048ec40
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x56b5b6
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 0x56b5b6
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x688c24]
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 0x56b544
add eax, 0x3ca
jmp 0x56b576
cmp dl, 0xc
jb 0x56b550
add eax, 0x3c0
jmp 0x56b576
cmp dl, 9
jb 0x56b55c
add eax, 0x3d4
jmp 0x56b576
cmp dl, 6
jb 0x56b568
add eax, 0x3e8
jmp 0x56b576
cmp dl, 3
jb 0x56b574
add eax, 0x3de
jmp 0x56b576
xor eax, eax
test eax, eax
jle 0x56b5b6
mov edx, dword [0x68906c]
mov edx, dword [edx]
xchg edx, eax
call fcn.0048ec40
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x56b5b6
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 0x56b623
test byte [edi + 0x13], 4
je 0x56b623
cmp word [edi + 0x20], 1
jbe 0x56b623
movzx ebx, word [edi + 0xa3]
cmp bx, 1
jbe 0x56b623
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 [0x6883dc]
mov eax, dword [eax]
call fcn.004857a0
mov edx, dword [ebp + 0x1c]
sub edx, eax
mov eax, dword [0x6883dc]
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 0x56b64d
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.00405988
lea eax, [ebp - 4]
call fcn.00405158
ret