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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], 0xbc6
mov eax, dword [0x5ab3f0]
cmp byte [eax + 0x57], 6
jne 0x5879f1
mov dword [ebp - 0x18], 0xbc7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
call fcn.00507510
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x587e0c
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x587e0c
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c], 0
jne 0x587e0c
mov eax, dword [ebp - 4]
call fcn.0058fbf4
test al, al
je 0x587dfa
mov eax, dword [ebp - 4]
call fcn.0058fbb0
test al, al
je 0x587dfa
mov eax, dword [ebp - 4]
call fcn.0058fc44
test al, al
je 0x587dfa
mov eax, dword [0x5abf5c]
cmp byte [eax], 0
je 0x587b1a
mov eax, dword [0x5abbc8]
cmp byte [eax], 0
je 0x587abc
mov eax, dword [0x5abbc8]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbf4
jmp 0x587d9f
mov eax, dword [0x5ac028]
cmp byte [eax], 0
je 0x587ada
mov eax, dword [0x5ac028]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbf5
jmp 0x587d9f
mov eax, dword [0x5abdf8]
cmp byte [eax], 0
je 0x587af8
mov eax, dword [0x5abdf8]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbf6
jmp 0x587d9f
mov eax, dword [0x5ac0b0]
cmp byte [eax], 0
je 0x587d9f
mov eax, dword [0x5ac0b0]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbf7
jmp 0x587d9f
mov eax, dword [0x5abdb8]
cmp byte [eax], 0
je 0x587b38
mov eax, dword [0x5abdb8]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbf9
jmp 0x587d7b
mov eax, dword [0x5ac3b4]
cmp byte [eax], 0
je 0x587b56
mov eax, dword [0x5ac3b4]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbf8
jmp 0x587d7b
mov eax, dword [0x5aba8c]
cmp byte [eax], 0
je 0x587b81
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 7
jl 0x587b81
mov eax, dword [0x5aba8c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbd1
jmp 0x587d7b
mov eax, dword [0x5abe4c]
cmp byte [eax], 0
je 0x587bac
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 7
jl 0x587bac
mov eax, dword [0x5abe4c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbd7
jmp 0x587d7b
mov eax, dword [0x5abd9c]
cmp byte [eax], 0
je 0x587bd7
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x587bd7
mov eax, dword [0x5abd9c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbe2
jmp 0x587d7b
mov eax, dword [0x5ab738]
cmp byte [eax], 0
je 0x587bf5
mov eax, dword [0x5ab738]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbca
jmp 0x587d7b
mov eax, dword [0x5ab65c]
cmp byte [eax], 0
je 0x587c20
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x587c20
mov eax, dword [0x5ab65c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbdd
jmp 0x587d7b
mov eax, dword [0x5ab98c]
cmp byte [eax], 0
je 0x587c4b
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x587c4b
mov eax, dword [0x5ab98c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbe1
jmp 0x587d7b
mov eax, dword [0x5abda8]
cmp byte [eax], 0
je 0x587c76
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x587c76
mov eax, dword [0x5abda8]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbe0
jmp 0x587d7b
mov eax, dword [0x5ac3c8]
cmp byte [eax], 0
je 0x587cb5
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp byte [eax + 0x19], 0
jne 0x587cb5
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0058745c
test al, al
je 0x587cb5
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 3
jl 0x587cb5
mov dword [ebp - 0x18], 0xbd0
jmp 0x587d7b
mov eax, dword [0x5ab6d8]
cmp byte [eax], 0
je 0x587cd8
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 3
jl 0x587cd8
mov dword [ebp - 0x18], 0xbd0
jmp 0x587d7b
mov eax, dword [0x5abbe4]
cmp byte [eax], 0
je 0x587cfb
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 6
jl 0x587cfb
mov dword [ebp - 0x18], 0xbdc
jmp 0x587d7b
mov eax, dword [0x5aba7c]
cmp byte [eax], 0
je 0x587d1b
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp byte [eax + 0x19], 0
jne 0x587d1b
mov dword [ebp - 0x18], 0xbfb
jmp 0x587d7b
mov eax, dword [0x5abc0c]
cmp byte [eax], 0
je 0x587d3b
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp byte [eax + 0x19], 0
jne 0x587d3b
mov dword [ebp - 0x18], 0xbfa
jmp 0x587d7b
mov eax, dword [0x5ab830]
cmp byte [eax], 0
je 0x587d5b
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp byte [eax + 0x19], 0
jne 0x587d5b
mov dword [ebp - 0x18], 0xbcb
jmp 0x587d7b
mov eax, dword [0x5ab5a0]
cmp byte [eax], 0
je 0x587d7b
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.005873b4
test al, al
je 0x587d7b
mov dword [ebp - 0x18], 0xbcb
mov eax, dword [0x5abefc]
cmp byte [eax], 0
je 0x587d8d
mov eax, dword [ebp - 4]
call fcn.00588268
mov eax, dword [0x5abc30]
cmp byte [eax], 0
je 0x587d9f
mov eax, dword [ebp - 4]
call fcn.00588330
mov eax, dword [0x5abf5c]
cmp byte [eax], 0
je 0x587dbc
cmp dword [ebp - 0x18], 0xbc6
jne 0x587dbc
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x588262
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov dx, word [ebp - 0x18]
call fcn.004f7e3c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5abe60]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5aba38]
mov dword [edx], eax
jmp 0x588262
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x588022
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x588022
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c], 0
jne 0x588022
mov eax, dword [0x5ab98c]
cmp byte [eax], 0
je 0x587f35
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x587f35
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
call fcn.00587258
test al, al
je 0x587f35
mov eax, dword [ebp - 4]
call fcn.0058fbf4
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fbb0
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fc44
test al, al
je 0x588232
mov eax, dword [0x5ab98c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbe1
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov dx, word [ebp - 0x18]
call fcn.004f7e3c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5abe60]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5aba38]
mov dword [edx], eax
jmp 0x588232
mov eax, dword [0x5abd9c]
cmp byte [eax], 0
je 0x588015
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x588015
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
call fcn.005872e4
test al, al
je 0x588015
mov eax, dword [ebp - 4]
call fcn.0058fbf4
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fbb0
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fc44
test al, al
je 0x588232
mov eax, dword [0x5abd9c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbe2
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov dx, word [ebp - 0x18]
call fcn.004f7e3c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5abe60]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5aba38]
mov dword [edx], eax
jmp 0x588232
mov eax, dword [0x5abe74]
mov byte [eax], 1
jmp 0x588232
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 4
jg 0x58822a
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 4
jg 0x58822a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x2c], 0
jne 0x58822a
mov eax, dword [0x5ab65c]
cmp byte [eax], 0
je 0x58814b
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x58814b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
call fcn.005872e4
test al, al
je 0x58814b
mov eax, dword [ebp - 4]
call fcn.0058fbf4
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fbb0
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fc44
test al, al
je 0x588232
mov eax, dword [0x5ab65c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbdd
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov dx, word [ebp - 0x18]
call fcn.004f7e3c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5abe60]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5aba38]
mov dword [edx], eax
jmp 0x588232
mov eax, dword [0x5abd9c]
cmp byte [eax], 0
je 0x588220
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp dword [eax + 0x57], 0xa
jl 0x588220
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
call fcn.005872e4
test al, al
je 0x588220
mov eax, dword [ebp - 4]
call fcn.0058fbf4
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fbb0
test al, al
je 0x588232
mov eax, dword [ebp - 4]
call fcn.0058fc44
test al, al
je 0x588232
mov eax, dword [0x5abd9c]
mov byte [eax], 0
mov dword [ebp - 0x18], 0xbe2
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov dx, word [ebp - 0x18]
call fcn.004f7e3c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5abe60]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5aba38]
mov dword [edx], eax
jmp 0x588232
mov eax, dword [0x5abe74]
mov byte [eax], 1
jmp 0x588232
mov eax, dword [0x5abe74]
mov byte [eax], 1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
call fcn.005076d0
mov eax, dword [0x5ab81c]
mov edx, dword [ebp - 0x10]
mov dword [eax], edx
mov eax, dword [0x5ab6a4]
mov edx, dword [ebp - 0x14]
mov dword [eax], edx
mov esp, ebp
pop ebp
ret