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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x56bb51
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov esi, eax
xor eax, eax
push ebp
push 0x56c0a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x74], edx
cmp dword [ebp - 0xc], 0
jne 0x56bc01
mov edx, 0x19
mov eax, esi
call fcn.00564f20
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e8f4
cmp eax, 0x19
jge 0x56bbb7
push 0x56c0bc
call sub.kernel32.dll_OutputDebugStringA
jmp 0x56c086
lea ecx, [ebp - 0x48]
mov edx, 0x56c0dc
mov eax, 0x56c0ec
call fcn.004b8700
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 4]
mov ecx, 0x56c100
call fcn.004054c0
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 8]
call fcn.005243d8
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edx, 2
call fcn.0050fc98
jmp 0x56bd5c
cmp dword [ebp - 0xc], 1
jne 0x56bca6
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dl, 1
call fcn.0050fff8
mov ebx, eax
xor ebx, 0xf
lea ecx, [ebp - 0x44]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 2
call fcn.0050c9b0
test al, al
je 0x56bc42
cmp dword [ebp - 0x44], 0x786
jne 0x56bc42
and ebx, 7
test ebx, ebx
je 0x56c086
lea ecx, [ebp - 0x50]
mov edx, 0x56c0dc
mov eax, 0x56c0ec
call fcn.004b8700
push dword [ebp - 0x50]
push 0x56c10c
lea edx, [ebp - 0x54]
mov eax, ebx
call fcn.00409fe0
push dword [ebp - 0x54]
lea eax, [ebp - 4]
mov edx, 3
call fcn.0040553c
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 8]
call fcn.005243d8
mov eax, dword [ebp - 0x58]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edx, 2
call fcn.0050fc98
jmp 0x56bd5c
cmp dword [ebp - 0xc], 2
jne 0x56bd5c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e874
cmp eax, 0x69
jge 0x56c086
lea ecx, [ebp - 0x44]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 4
call fcn.0050c9b0
test al, al
je 0x56c086
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fe98
test al, al
jne 0x56c086
lea ecx, [ebp - 0x44]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0x56c118
call fcn.0050d68c
test al, al
je 0x56bd17
cmp dword [ebp - 0x3c], 5
jg 0x56c086
lea ecx, [ebp - 0x5c]
mov edx, 0x56c0dc
mov eax, 0x56c0ec
call fcn.004b8700
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 4]
mov ecx, 0x56c12c
call fcn.004054c0
lea edx, [ebp - 0x60]
mov eax, dword [ebp - 8]
call fcn.005243d8
mov eax, dword [ebp - 0x60]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edx, 2
call fcn.0050fc98
call fcn.004b9988
mov ebx, eax
jmp 0x56bdd7
push 0xc8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edi, dword [eax + 0x74]
test edi, edi
jle 0x56bdc9
mov eax, dword [0x586a98]
cmp edi, 3
jne 0x56bddd
push 0xbb8
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
mov ebx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x74], edx
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 8]
call fcn.005243d8
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edx, 2
call fcn.0050fc98
jmp 0x56bdd7
call fcn.004b9988
sub eax, ebx
cmp eax, 0x5dc
ja 0x56bddd
cmp byte [esi + 0xd], 0
je 0x56bd65
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ebx, dword [eax + 0x74]
cmp ebx, 1
je 0x56be1e
lea edx, [ebp - 0x6c]
mov eax, dword [0x586a98]
mov eax, ebx
call fcn.00409fe0
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp - 0x68]
mov edx, 0x56c138
call fcn.004054c0
mov eax, dword [ebp - 0x68]
call fcn.00405638
push eax
call sub.kernel32.dll_OutputDebugStringA
jmp 0x56c086
mov eax, dword [ebp - 8]
call fcn.005246d0
push eax
push 3
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.005246c0
mov ecx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, esi
call fcn.00522bb0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x62], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x68], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x69], 0
push 1
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 8]
call fcn.005243d8
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
pop ecx
call fcn.0050f7a8
push 0xc8
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
mov ebx, eax
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, 1
call fcn.0050f754
mov edi, 1
jmp 0x56bf38
push 0x64
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x62], 0
je 0x56bee4
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x68], 0
jne 0x56bf3e
call fcn.004b9988
sub eax, ebx
mov ecx, 0x1f4
xor edx, edx
div ecx
xor edx, edx
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x56bf0a
cmp eax, dword [esp]
pop edx
pop eax
jae 0x56bf2a
jmp 0x56bf0e
pop edx
pop eax
jge 0x56bf2a
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, 1
call fcn.0050f754
inc edi
call fcn.004b9988
sub eax, ebx
cmp eax, 0x7d0
ja 0x56bf3e
cmp byte [esi + 0xd], 0
je 0x56bec3
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x62], 0
je 0x56bf58
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x68], 0
jne 0x56bf87
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0050f754
mov eax, dword [ebp - 8]
call fcn.004041e0
push 0xc8
call sub.kernel32.dll_Sleep_2
jmp 0x56c086
push 0xc8
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
mov ebx, eax
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, 7
call fcn.0050f754
mov edi, 1
jmp 0x56c03f
push 0x64
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x69], 0
jne 0x56c049
call fcn.004b9988
sub eax, ebx
mov ecx, 0x1f4
xor edx, edx
div ecx
xor edx, edx
push edx
push eax
mov eax, edi
cdq
cmp edx, dword [esp + 4]
jne 0x56bff7
cmp eax, dword [esp]
pop edx
pop eax
jae 0x56c017
jmp 0x56bffb
pop edx
pop eax
jge 0x56c017
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, 7
call fcn.0050f754
inc edi
call fcn.004b9988
sub eax, ebx
cmp eax, 0x1388
jbe 0x56c03f
mov eax, dword [ebp - 8]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0050f754
jmp 0x56c049
cmp byte [esi + 0xd], 0
je 0x56bfbd
push 0x1f4
call sub.kernel32.dll_Sleep_2
cmp dword [ebp - 0xc], 0
jne 0x56c065
mov eax, esi
call fcn.005650ac
mov byte [ebp - 0xd], al
jmp 0x56c07c
cmp dword [ebp - 0xc], 1
jne 0x56c07c
mov eax, dword [0x586a98]
mov eax, dword [eax]
or ecx, 0xffffffff
xor edx, edx
call fcn.00523090
push 0x12c
call sub.kernel32.dll_Sleep_2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56c0b0
lea eax, [ebp - 0x70]
mov edx, 0xb
call fcn.004051cc
lea eax, [ebp - 4]
call fcn.004051a8
ret