Function at 0x56b1e4
Capabilities:
Check for time delay via gettickcount
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x58], ebx
mov ebx, eax
lea eax, [ebp - 0x18]
mov edx, dword [0x50ad94]
call fcn.00405e14
mov esi, dword [0x586a98]
mov edi, dword [0x5865d0]
xor eax, eax
push ebp
push 0x56b602
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x19], 0
mov byte [ebx + 0x168], 0
mov byte [ebx + 0x169], 0
mov eax, dword [edi]
xor edx, edx
call fcn.005106bc
mov eax, dword [esi]
cmp byte [eax + 0x141], 0
je 0x56b24c
mov eax, dword [esi]
call fcn.00522a2c
mov eax, dword [esi]
cmp byte [eax + 0x184], 0
je 0x56b269
mov eax, dword [edi]
call fcn.0050e610
test al, al
je 0x56b269
mov eax, dword [esi]
call fcn.00520894
mov eax, dword [esi]
cmp byte [eax + 0x150], 0
jne 0x56b2aa
lea edx, [ebp - 0x50]
mov eax, dword [edi]
call fcn.0050ca68
test al, al
jne 0x56b2aa
jmp 0x56b29a
mov eax, dword [esi]
mov edx, 0x56b61c
call fcn.00521e50
push 0x3e8
call sub.kernel32.dll_Sleep_2
cmp byte [ebx + 0xd], 0
je 0x56b284
cmp byte [ebx + 0xd], 0
jne 0x56b5d9
call fcn.004b9988
jmp 0x56b2c6
mov eax, dword [edi]
call fcn.0050bdb8
test al, al
je 0x56b2cc
push 0x1f4
call sub.kernel32.dll_Sleep_2
cmp byte [ebx + 0xd], 0
je 0x56b2b1
mov byte [ebx + 0x15c], 1
mov byte [ebx + 0x15d], 1
mov eax, dword [esi]
cmp dword [eax + 0x240], 0
jle 0x56b311
mov eax, dword [esi]
cmp dword [eax + 0x25c], 0
jle 0x56b311
lea ecx, [ebp - 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x24c]
mov eax, dword [esi]
call fcn.00517108
test al, al
je 0x56b311
movzx eax, word [ebp - 0x18]
mov word [ebx + 0x18e], ax
mov eax, dword [esi]
cmp dword [eax + 0x238], 0
jle 0x56b348
mov eax, dword [esi]
cmp dword [eax + 0x260], 0
jle 0x56b348
lea ecx, [ebp - 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x244]
mov eax, dword [esi]
call fcn.00517108
test al, al
je 0x56b348
movzx eax, word [ebp - 0x18]
mov word [ebx + 0x190], ax
mov eax, dword [esi]
cmp dword [eax + 0x23c], 0
jle 0x56b37f
mov eax, dword [esi]
cmp dword [eax + 0x264], 0
jle 0x56b37f
lea ecx, [ebp - 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x248]
mov eax, dword [esi]
call fcn.00517108
test al, al
je 0x56b37f
movzx eax, word [ebp - 0x18]
mov word [ebx + 0x192], ax
mov eax, dword [esi]
cmp dword [eax + 0x35c], 0
jle 0x56b3b6
mov eax, dword [esi]
cmp dword [eax + 0x358], 0
jle 0x56b3b6
lea ecx, [ebp - 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x364]
mov eax, dword [esi]
call fcn.00517108
test al, al
je 0x56b3b6
movzx eax, word [ebp - 0x18]
mov word [ebx + 0x194], ax
cmp byte [ebx + 0x15d], 0
je 0x56b3fc
mov eax, 0x56b63c
call fcn.004b8ff8
xor edx, edx
mov eax, ebx
call fcn.0056ecc8
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5e8], 0
jne 0x56b3fc
push 0x56b650
push 2
push 1
mov eax, dword [esi]
mov ecx, 0x56b688
mov edx, 1
call fcn.00521fa0
cmp byte [ebx + 0xd], 0
jne 0x56b5d9
cmp byte [ebx + 0x15c], 0
je 0x56b431
mov eax, dword [ebx + 0x68]
cmp eax, dword [ebx + 0x64]
jne 0x56b431
push 0x56b690
call sub.kernel32.dll_OutputDebugStringA
xor edx, edx
mov eax, ebx
call fcn.005693ec
mov byte [ebx + 0x15c], 0
cmp byte [ebx + 0xd], 0
jne 0x56b5d9
call fcn.004b9988
mov eax, dword [esi]
cmp byte [eax + 0xa8], 0
je 0x56b456
mov eax, ebx
call fcn.0055d5f0
test al, al
je 0x56b48a
mov eax, 0x56b6a4
call fcn.004b8ff8
mov byte [ebx + 0x16c], 0
xor edx, edx
mov eax, ebx
call fcn.005642b8
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56b48a
push 0x258
call sub.kernel32.dll_Sleep_2
inc dword [ebx + 0x174]
cmp byte [ebx + 0xd], 0
jne 0x56b5d9
cmp byte [ebx + 0x15c], 0
je 0x56b4fe
push 0x56b6ac
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56b4c7
push 0x258
call sub.kernel32.dll_Sleep_2
xor edx, edx
mov eax, ebx
call fcn.005693ec
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5f8], 0x63
jne 0x56b4fe
cmp byte [ebx + 0x15d], 0
je 0x56b4fe
cmp byte [ebx + 0x168], 0
jne 0x56b4fe
mov edx, 0x63
mov eax, ebx
call fcn.0056ecc8
mov eax, dword [esi]
cmp byte [eax + 0xa9], 0
je 0x56b5ab
mov eax, dword [edi]
call fcn.0050b294
mov edx, dword [esi]
cmp eax, dword [edx + 0xac]
jg 0x56b5ab
call fcn.004b9988
mov edi, eax
jmp 0x56b582
push 0x3e8
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
sub eax, edi
mov ecx, 0x3e8
xor edx, edx
div ecx
push eax
mov eax, 0x1e
pop edx
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x58]
call fcn.0040a0cc
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x54]
mov edx, 0x56b6bc
call fcn.004054c0
mov edx, dword [ebp - 0x54]
mov eax, dword [esi]
call fcn.00521e50
call fcn.004b9988
sub eax, edi
cmp eax, 0x7530
ja 0x56b588
cmp byte [ebx + 0xd], 0
je 0x56b52b
mov eax, dword [0x586404]
mov eax, dword [eax]
mov dword [eax + 0x5a8], 9
jmp 0x56b5a5
push 0x3e8
call sub.kernel32.dll_Sleep_2
cmp byte [ebx + 0xd], 0
je 0x56b59b
cmp byte [ebx + 0x18b], 0
jne 0x56b5cb
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5b0], 0x78
jle 0x56b5cb
mov byte [ebx + 0x18b], 1
push 0x56b6d8
call sub.kernel32.dll_OutputDebugStringA
mov byte [ebp - 0x19], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56b609
lea eax, [ebp - 0x58]
mov edx, 2
call fcn.004051cc
lea eax, [ebp - 0x18]
mov edx, dword [0x50ad94]
call fcn.00405ee4
ret