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

Disassembly:
push ebx
add esp, 0xfffffff8
mov ebx, eax
mov eax, ebx
call fcn.00667a8c
cmp byte [ebx + 0x2e4], 0
jne 0x5f60d1
cmp byte [ebx + 0x2ec], 0
jne 0x5f60d1
cmp byte [ebx + 0x2a5], 0
jne 0x5f60d1
cmp byte [ebx + 0x31a], 0
jne 0x5f60d1
mov eax, ebx
call fcn.00661c1c
test al, al
je 0x5f60d1
mov eax, ebx
call fcn.005f5bb0
test al, al
je 0x5f5d57
mov eax, ebx
call fcn.00672640
jmp 0x5f60d8
cmp byte [ebx + 0xb5c], 0
je 0x5f5d7a
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0xb58]
cmp eax, dword [ebx + 0xb54]
jbe 0x5f5d7a
mov byte [ebx + 0xb5c], 0
cmp byte [ebx + 0xb5c], 0
jne 0x5f60d1
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x400]
cmp eax, dword [ebx + 0xb48]
jle 0x5f60d1
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x400], eax
inc dword [ebx + 0xb50]
mov eax, dword [ebx + 0xb50]
cmp eax, dword [ebx + 0xb4c]
jle 0x5f5dd7
xor eax, eax
mov dword [ebx + 0xb50], eax
mov byte [ebx + 0xb5c], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0xb58], eax
cmp byte [ebx + 0xbf4], 0
jne 0x5f6053
cmp byte [ebx + 0x2a8], 0
jne 0x5f5e3b
cmp dword [ebx + 0x380], 0
je 0x5f5e10
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x98]
test al, al
je 0x5f5e3b
mov eax, ebx
call fcn.00672640
jmp 0x5f60d8
mov dword [ebx + 0xbec], 0xffffffff
cmp byte [ebx + 0x30e], 0
je 0x5f5e3b
mov eax, dword [ebx + 0x310]
mov dword [ebx + 0xbec], eax
mov eax, dword [ebx + 0x314]
mov dword [ebx + 0xbf0], eax
cmp dword [ebx + 0x278], 0
je 0x5f607e
mov eax, dword [ebx + 0x2e0]
cmp byte [eax + 0x104], 0
je 0x5f5f48
mov edx, dword [ebx + 0x278]
cmp eax, dword [edx + 0x2e0]
je 0x5f5f48
lea ecx, [esp + 4]
mov edx, esp
mov eax, dword [ebx + 0x278]
call fcn.0066924c
mov eax, dword [ebx + 0xbec]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x5f5ea1
mov eax, dword [ebx + 0xbf0]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
dec eax
jle 0x5f5f00
mov eax, dword [esp]
mov dword [ebx + 0xbec], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0xbf0], eax
mov eax, dword [ebx + 0x24]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x5f5f00
mov eax, dword [ebx + 0x28]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x5f5f00
push 1
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov eax, dword [ebx + 0x2e0]
call fcn.00675478
test eax, eax
je 0x5f5f00
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0xbec], eax
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0xbf0], eax
mov eax, dword [ebx + 0xbf0]
push eax
push 1
mov eax, dword [ebx + 0x278]
mov edx, dword [eax + 0x2e0]
mov ecx, dword [ebx + 0xbec]
mov eax, ebx
call fcn.00670890
mov eax, dword [ebx + 0x278]
cmp byte [eax + 0x290], 0
je 0x5f607e
push 1
xor ecx, ecx
mov edx, 0x5f60e4
call fcn.006658ec
jmp 0x5f607e
cmp dword [ebx + 0x380], 0
jne 0x5f5fe8
lea ecx, [esp + 4]
mov edx, esp
mov eax, dword [ebx + 0x278]
call fcn.0066924c
mov eax, dword [ebx + 0xbec]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x5f5f89
mov eax, dword [ebx + 0xbf0]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
dec eax
jle 0x5f5fe8
mov eax, dword [esp]
mov dword [ebx + 0xbec], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0xbf0], eax
mov eax, dword [ebx + 0x24]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x5f5fe8
mov eax, dword [ebx + 0x28]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x5f5fe8
push 1
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov eax, dword [ebx + 0x2e0]
call fcn.00675478
test eax, eax
je 0x5f5fe8
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0xbec], eax
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0xbf0], eax
mov eax, dword [ebx + 0x278]
cmp byte [eax + 0x290], 0
jne 0x5f607e
mov ecx, dword [ebx + 0x278]
mov eax, dword [ecx + 0x2e0]
cmp eax, dword [ebx + 0x2e0]
jne 0x5f602f
mov eax, dword [ebx + 0x24]
sub eax, dword [ecx + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x14
jg 0x5f602f
mov eax, dword [ebx + 0x28]
sub eax, dword [ecx + 0x28]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x14
jle 0x5f607e
mov eax, dword [ebx + 0xbf0]
push eax
push 1
mov eax, dword [ebx + 0x278]
mov edx, dword [eax + 0x2e0]
mov ecx, dword [ebx + 0xbec]
mov eax, ebx
call fcn.00670890
jmp 0x5f607e
cmp dword [ebx + 0xbfc], 0
jbe 0x5f607e
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0xbf8]
cmp eax, dword [ebx + 0xbfc]
jbe 0x5f607e
mov byte [ebx + 0xbf4], 0
xor eax, eax
mov dword [ebx + 0xbfc], eax
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x5f609a
cmp byte [eax + 0x290], 0
je 0x5f609a
mov eax, ebx
call fcn.00672640
jmp 0x5f60d8
cmp dword [ebx + 0xbec], 0xffffffff
je 0x5f60af
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x88]
jmp 0x5f60d1
cmp dword [ebx + 0x380], 0
jne 0x5f60d1
mov eax, dword [ebx + 0x2e0]
cmp byte [eax + 0x104], 0
jne 0x5f60d1
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x8c]
mov eax, ebx
call fcn.00672640
pop ecx
pop edx
pop ebx
ret