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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff6c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1c]
mov edx, dword [0x50ad94]
call fcn.00405e14
xor eax, eax
push ebp
push 0x565593
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x1d], 0
mov edx, 0x19
mov eax, dword [ebp - 4]
call fcn.00564f20
mov dl, 1
mov eax, dword [0x41b508]
call fcn.004041b0
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x565303
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x24]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c5bc
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x5651c6
inc esi
xor edi, edi
mov edx, edi
mov eax, dword [ebp - 0x24]
call fcn.0041dea4
mov ebx, eax
cmp dword [ebx + 0x24], 0x3c
jb 0x5651be
cmp dword [ebx + 0x1c], 5
jle 0x5651be
lea ecx, [ebp - 0x1c]
mov edx, dword [ebx]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.005170b8
cmp byte [ebp - 0x1a], 1
jne 0x5651be
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e8f4
movzx edx, byte [ebp - 0xa]
cmp eax, edx
jge 0x565183
movzx edx, byte [ebp - 0xa]
mov eax, dword [ebp - 4]
call fcn.00564f20
lea eax, [ebp - 0x90]
mov ecx, dword [ebp - 0x18]
mov edx, 0x5655b0
call fcn.004054c0
mov eax, dword [ebp - 0x90]
call fcn.00405638
push eax
call sub.kernel32.dll_OutputDebugStringA
push ebp
mov eax, ebx
call fcn.00564fb8
pop ecx
push 0x190
call sub.kernel32.dll_Sleep_2
mov byte [ebp - 0x1d], 1
inc edi
dec esi
jne 0x565134
cmp byte [ebp - 0x1d], 0
je 0x5652e0
call fcn.004b9988
mov ebx, eax
jmp 0x565211
lea ecx, [ebp - 0x58]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 4
call fcn.0050c9b0
test al, al
jne 0x5652e0
push 0x190
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
sub eax, ebx
cmp eax, 0x258
ja 0x5652e0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xd], 0
je 0x5651d9
jmp 0x5652e0
xor edx, edx
mov eax, dword [ebp - 0x24]
call fcn.0041dea4
mov ebx, eax
cmp dword [ebx + 0x1c], 0
jle 0x5652ca
lea ecx, [ebp - 0x58]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 4
call fcn.0050c9b0
test al, al
jne 0x5652ca
lea ecx, [ebp - 0x1c]
mov edx, dword [ebx]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.005170b8
cmp byte [ebp - 0x1a], 1
jne 0x5652ca
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e8f4
movzx edx, byte [ebp - 0xa]
cmp eax, edx
jge 0x565284
movzx edx, byte [ebp - 0xa]
mov eax, dword [ebp - 4]
call fcn.00564f20
lea eax, [ebp - 0x94]
mov ecx, dword [ebp - 0x18]
mov edx, 0x5655c0
call fcn.004054c0
mov eax, dword [ebp - 0x94]
call fcn.00405638
push eax
call sub.kernel32.dll_OutputDebugStringA
mov edx, dword [ebx + 4]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, 4
call fcn.0050f2cc
push 0x190
call sub.kernel32.dll_Sleep_2
mov byte [ebp - 0x1d], 1
mov edx, 0x34
mov eax, ebx
call fcn.00402f6c
xor edx, edx
mov eax, dword [ebp - 0x24]
call fcn.0041dd98
mov eax, dword [ebp - 0x24]
cmp dword [eax + 8], 0
jg 0x56521f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56530a
mov eax, dword [ebp - 0x24]
call fcn.004041e0
ret