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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x55fb9e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6e42cc]
cmp dword [eax], 0
jne 0x55f435
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x55fbb2
mov eax, dword [0x6e4a58]
cmp byte [eax], 0
je 0x55f447
mov eax, dword [ebp - 4]
call fcn.00561688
mov eax, dword [0x6e3ae4]
cmp byte [eax], 0
je 0x55f459
mov eax, dword [ebp - 4]
call fcn.00561e08
mov eax, dword [0x6e4820]
cmp byte [eax], 0
je 0x55f46b
mov eax, dword [ebp - 4]
call fcn.00562628
mov eax, dword [0x6e43fc]
cmp dword [eax], 0
jl 0x55f9e1
mov eax, dword [ebp - 4]
call fcn.00572b44
test al, al
je 0x55f9e1
mov eax, dword [ebp - 4]
call fcn.00572b00
test al, al
je 0x55f9e1
mov eax, dword [0x6e43fc]
mov eax, dword [eax]
mov edx, dword [0x6e42cc]
mov edx, dword [edx]
cmp eax, dword [edx + 8]
jne 0x55f4c5
mov eax, dword [0x6e42b4]
mov eax, dword [eax]
mov edx, dword [0x6e42cc]
mov edx, dword [edx]
cmp eax, dword [edx + 0xc]
je 0x55f9e1
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 8], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x6e43fc]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [0x6e42b4]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0064789c
mov byte [ebp - 0x19], al
mov eax, dword [0x6e4ac8]
mov al, byte [eax]
sub al, 1
jb 0x55f51e
je 0x55f7be
jmp 0x55f9e1
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
call fcn.006378ac
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
call fcn.00572d60
test al, al
je 0x55f7ae
cmp dword [ebp - 0x18], 0
jle 0x55f7ae
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
mov al, byte [ebp - 0x19]
call fcn.00647538
mov byte [ebp - 0x1c], 1
mov byte [ebp - 0x1d], 0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [0x6ef088]
call fcn.005b0d90
test al, al
jne 0x55f777
mov eax, dword [0x6e4734]
cmp byte [eax + 0x71], 0
je 0x55f5a7
mov eax, dword [0x6e4a24]
cmp byte [eax], 0
je 0x55f5a7
mov eax, dword [0x6e419c]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jle 0x55f5a7
call fcn.0055ad88
mov eax, dword [0x6e43fc]
mov dword [eax], 0xffffffff
mov byte [ebp - 0x1c], 0
mov byte [ebp - 0x1a], 0
cmp byte [ebp - 0x1c], 0
jne 0x55f5f3
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 8], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
mov al, byte [ebp - 0x19]
call fcn.00647538
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0056b734
test al, al
je 0x55f5f3
mov byte [ebp - 0x1d], 1
cmp byte [ebp - 0x1d], 0
jne 0x55f6c5
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [0x6ef088]
call fcn.005b0e34
test al, al
jne 0x55f629
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [0x6ef0b4]
call fcn.0061db98
test al, al
jne 0x55f6c5
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 8], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
xor eax, eax
mov al, byte [ebp - 0x19]
call fcn.00648694
mov byte [ebp - 0x1a], al
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
mov al, byte [ebp - 0x1a]
call fcn.00647538
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [0x6ef0b4]
call fcn.0061db98
test al, al
jne 0x55f6c1
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 8], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
xor eax, eax
mov al, byte [ebp - 0x19]
call fcn.00648714
mov byte [ebp - 0x1a], al
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
mov al, byte [ebp - 0x1a]
call fcn.00647538
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [0x6ef0b4]
call fcn.0061db98
test al, al
je 0x55f6c5
mov byte [ebp - 0x1c], 1
jmp 0x55f6c5
mov byte [ebp - 0x1c], 1
cmp byte [ebp - 0x1c], 0
je 0x55f702
mov eax, dword [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x1a]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov dx, 0xbc3
call fcn.00635970
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x6e3f80]
mov dword [edx], eax
jmp 0x55f9e1
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x10]
call fcn.0064789c
mov byte [ebp - 0x1b], al
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov al, byte [eax + 0x10]
cmp al, byte [ebp - 0x1b]
je 0x55f767
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x1b]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov dx, 0xbc2
call fcn.00635814
mov eax, dword [0x6e43fc]
mov dword [eax], 0xffffffff
jmp 0x55f9e1
mov eax, dword [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x19]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov dx, 0xbc3
call fcn.00635970
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x6e3f80]
mov dword [edx], eax
jmp 0x55f9e1
mov eax, dword [0x6e43fc]
mov dword [eax], 0xffffffff
jmp 0x55f9e1
mov eax, dword [0x6e3c7c]
cmp byte [eax], 0
jne 0x55f7d6
mov eax, dword [0x6e3bb8]
cmp dword [eax], 1
jl 0x55f9d5
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
call fcn.0063793c
mov dword [ebp - 0x18], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
cmp byte [eax + 0x1b], 0
je 0x55f8a3
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0064744c
cmp eax, 3
jl 0x55f8a3
cmp dword [ebp - 0x18], 0
jle 0x55f8a3
mov eax, dword [ebp - 4]
call fcn.00572d60
test al, al
je 0x55f8a3
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
mov al, byte [ebp - 0x19]
call fcn.00647774
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [0x6ef088]
call fcn.005b0938
test al, al
je 0x55f896
mov eax, dword [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x19]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov dx, 0xbdb
call fcn.00635970
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x6e3f80]
mov dword [edx], eax
jmp 0x55f9e1
mov eax, dword [0x6e4ac8]
mov byte [eax], 0
jmp 0x55f4c5
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0064744c
cmp eax, 2
jl 0x55f960
cmp dword [ebp - 0x18], 0
jle 0x55f960
mov eax, dword [ebp - 4]
call fcn.00572d60
test al, al
je 0x55f950
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
mov al, byte [ebp - 0x19]
call fcn.00647650
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [0x6ef088]
call fcn.005b0938
test al, al
je 0x55f943
mov eax, dword [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x19]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov dx, 0xbc5
call fcn.00635970
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x6e3f80]
mov dword [edx], eax
jmp 0x55f9e1
mov eax, dword [0x6e4ac8]
mov byte [eax], 0
jmp 0x55f4c5
mov eax, dword [0x6e43fc]
mov dword [eax], 0xffffffff
jmp 0x55f9e1
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x10]
call fcn.0064789c
mov byte [ebp - 0x1b], al
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov al, byte [eax + 0x10]
cmp al, byte [ebp - 0x1b]
je 0x55f9c5
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x1b]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov dx, 0xbc2
call fcn.00635814
mov eax, dword [0x6e43fc]
mov dword [eax], 0xffffffff
jmp 0x55f51e
mov eax, dword [0x6e3bb8]
inc dword [eax]
jmp 0x55f51e
mov eax, dword [0x6e43fc]
mov dword [eax], 0xffffffff
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
cmp dword [eax + 0x2e8], 0
jle 0x55fb94
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2e8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x3d4], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f4]
mov edx, dword [ebp - 4]
mov dword [edx + 0x3d8], eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
cmp dword [eax + 0x2e8], 0xbc9
jne 0x55fa8d
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f0]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f4]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x2ec]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov edx, dword [eax + 0x2e8]
mov eax, dword [ebp - 4]
call fcn.0056f538
jmp 0x55facb
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f0]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f4]
push eax
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x2ec]
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
mov edx, dword [eax + 0x2e8]
mov eax, dword [ebp - 4]
call fcn.0056f1a0
mov eax, dword [0x6e42cc]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x2e8], edx
mov eax, dword [0x6e49e0]
cmp dword [eax], 0xffffffff
je 0x55fb33
mov eax, dword [0x6e49e0]
mov eax, dword [eax]
mov edx, dword [0x6e42cc]
mov edx, dword [edx]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jge 0x55fb1c
mov eax, dword [0x6e4864]
mov eax, dword [eax]
mov edx, dword [0x6e42cc]
mov edx, dword [edx]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jl 0x55fb33
mov eax, dword [0x6e4a7c]
mov eax, dword [eax]
call fcn.005f12c0
mov eax, dword [0x6e49e0]
mov dword [eax], 0xffffffff
mov eax, dword [0x6e3c98]
cmp dword [eax], 0xffffffff
je 0x55fb94
mov eax, dword [0x6e3c98]
mov eax, dword [eax]
mov edx, dword [0x6e42cc]
mov edx, dword [edx]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jge 0x55fb75
mov eax, dword [0x6e3b64]
mov eax, dword [eax]
mov edx, dword [0x6e42cc]
mov edx, dword [edx]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jl 0x55fb94
mov eax, dword [0x6e4a7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x7e8]
xor edx, edx
call fcn.004d7d0c
mov eax, dword [0x6e3c98]
mov dword [eax], 0xffffffff
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x55fbb2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret