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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff2c
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x1c]
mov edx, dword [0x50ad94]
call fcn.00405e14
xor eax, eax
push ebp
push 0x57014e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x64], 0
jne 0x56ed5c
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0xbc]
mov eax, 0x570168
call fcn.00405784
test eax, eax
je 0x570122
xor eax, eax
mov dword [ebp - 0x6c], eax
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56ed78
mov dword [ebp - 0x6c], 0x258
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5d0], 1
jne 0x56ed8f
mov dword [ebp - 0x6c], 0xbb8
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x20b], 0
je 0x56eda9
xor edx, edx
mov eax, dword [ebp - 0x5c]
call fcn.0055c818
push 2
lea edx, [ebp - 0x56]
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0051a07c
mov ebx, eax
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x64], 0
je 0x570122
test bl, bl
jne 0x56ee5f
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
call fcn.0055c818
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
jne 0x570122
xor eax, eax
mov dword [ebp - 0x64], eax
call fcn.004b9988
mov esi, eax
jmp 0x56ee56
push 0x64
call sub.kernel32.dll_Sleep_2
push 2
lea edx, [ebp - 0x56]
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0051a07c
mov ebx, eax
test bl, bl
jne 0x56ee5f
call fcn.004b9988
sub eax, esi
cmp eax, 0x7530
ja 0x56ee5f
call fcn.004b9988
sub eax, esi
cmp eax, 0x7d0
jbe 0x56ee56
cmp dword [ebp - 0x64], 0
jne 0x56ee56
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
call fcn.0055c818
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
jne 0x570122
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56edf9
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
jne 0x570122
test bl, bl
jne 0x56ef8f
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x144], 3
jle 0x56ef45
call fcn.004b9988
mov esi, eax
jmp 0x56ef23
push 0x3e8
call sub.kernel32.dll_Sleep_2
push 0x570174
call fcn.004b9988
sub eax, esi
mov ecx, 0x3e8
xor edx, edx
div ecx
push eax
mov eax, 0x3c
pop edx
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xb4]
call fcn.0040a0cc
push dword [ebp - 0xb4]
push 0x5701c0
lea eax, [ebp - 0xb0]
mov edx, 3
call fcn.0040553c
mov edx, dword [ebp - 0xb0]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
call fcn.004b9988
sub eax, esi
cmp eax, 0xea60
jbe 0x56ef23
mov eax, dword [0x586404]
mov eax, dword [eax]
mov byte [eax + 0x379], 1
mov eax, dword [0x586404]
mov eax, dword [eax]
mov dword [eax + 0x374], 5
jmp 0x56ef3c
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56ee90
jmp 0x56ef3c
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56ef32
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x570174
call fcn.00521e50
push 0xbb8
call sub.kernel32.dll_Sleep_2
lea edx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x570122
cmp dword [ebp - 0x44], 0x1e
jge 0x570122
mov eax, dword [ebp - 0x5c]
inc dword [eax + 0x144]
jmp 0x570122
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x168], 1
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dword [eax + 0x144], edx
mov eax, 0x5701d4
call fcn.004b8ff8
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f02d
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5b0], 1
jle 0x56f02d
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00518378
test eax, eax
jle 0x56f02d
mov eax, 0x3e8
call fcn.004033c4
mov ebx, eax
add ebx, 0x3e8
call fcn.004b9988
mov esi, eax
jmp 0x56f024
push 0xc8
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
sub eax, esi
xor edx, edx
push edx
push eax
mov eax, ebx
cdq
cmp edx, dword [esp + 4]
jne 0x56f020
cmp eax, dword [esp]
pop edx
pop eax
jae 0x56f024
jmp 0x56f02d
pop edx
pop eax
jl 0x56f02d
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56eff9
push 0x5701dc
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
sub eax, 1
jb 0x56f052
sub eax, 0xc7
jb 0x56f059
jmp 0x56f05e
mov edi, 2
jmp 0x56f05e
mov edi, 2
mov byte [ebp - 0x71], 0
dec edi
test edi, edi
jl 0x56f437
inc edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x64], 0
mov dl, 1
mov eax, dword [0x41b508]
call fcn.004041b0
mov dword [ebp - 4], eax
mov dl, 1
mov eax, dword [0x41bb74]
call fcn.004041b0
mov dword [ebp - 0x70], eax
xor eax, eax
push ebp
push 0x56f416
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 4]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c5bc
jmp 0x56f1d9
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0041dea4
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov edx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521240
test al, al
je 0x56f1c2
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, 0x30
jge 0x56f1c2
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
sub eax, 1
jb 0x56f10b
sub eax, 0xc7
jb 0x56f155
jmp 0x56f1c2
cmp dword [ebp - 0x64], 2
jne 0x56f12d
push 0
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x54]
mov edx, dword [eax + 4]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050b8bc
jmp 0x56f14c
movzx eax, word [ebp - 0x56]
push eax
mov eax, dword [ebp - 0x54]
movzx ecx, word [eax + 8]
mov eax, dword [ebp - 0x54]
movzx edx, word [eax + 4]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.005105a0
push 0x32
call sub.kernel32.dll_Sleep_2
jmp 0x56f1c2
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5e8], 0
jne 0x56f1a3
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.005170b8
movzx eax, byte [ebp - 0x1a]
dec eax
sub al, 5
jb 0x56f1c2
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
call fcn.00409fe0
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x56f1c2
lea edx, [ebp - 0xbc]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
call fcn.00409fe0
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x34
mov eax, dword [ebp - 0x54]
call fcn.00402f6c
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0041dd98
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
jg 0x56f0b6
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x56f3f8
cmp dword [ebp - 0x64], 0
jle 0x56f247
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f235
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f26b
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
imul eax, eax, 0xc8
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c648
mov ebx, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x70]
movzx edx, word [ebp - 0x56]
call fcn.005103ac
mov eax, dword [ebp - 0x6c]
add eax, 0xc8
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c648
cmp ebx, eax
jne 0x56f3f8
push 0xc8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c648
cmp ebx, eax
jne 0x56f3f8
cmp dword [ebp - 0x64], 0
jne 0x56f341
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x56f3f8
inc esi
xor ebx, ebx
lea ecx, [ebp - 0xc0]
mov edx, ebx
mov eax, dword [ebp - 0x70]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0xc0]
call fcn.0040a14c
mov edx, eax
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050d67c
test al, al
je 0x56f338
movzx eax, word [ebp - 0x56]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x48]
movzx edx, word [ebp - 0x4c]
call fcn.005105a0
push 0x32
call sub.kernel32.dll_Sleep_2
inc ebx
dec esi
jne 0x56f2e8
jmp 0x56f3f8
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
jne 0x56f353
cmp dword [ebp - 0x64], 0
jle 0x56f38e
mov eax, 0x5701f0
call fcn.004b8ff8
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 3
call fcn.00518698
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x56f3f4
inc esi
xor ebx, ebx
lea ecx, [ebp - 0xc4]
mov edx, ebx
mov eax, dword [ebp - 0x70]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0xc4]
call fcn.0040a14c
mov edx, eax
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050d67c
test al, al
je 0x56f3f0
movzx eax, word [ebp - 0x56]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x48]
movzx edx, word [ebp - 0x4c]
call fcn.005105a0
push 0x32
call sub.kernel32.dll_Sleep_2
inc ebx
dec esi
jne 0x56f3a0
mov byte [ebp - 0x71], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56f41d
mov eax, dword [ebp - 4]
call fcn.004041e0
mov eax, dword [ebp - 0x70]
call fcn.004041e0
ret
push 0x570204
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5e8], 0
jne 0x56f475
push 0x570218
push 2
push 1
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 0x57024c
mov edx, 1
call fcn.00521fa0
jmp 0x56f700
mov eax, dword [ebp - 0x5c]
call fcn.0055abb4
test al, al
je 0x56f558
lea edx, [ebp - 0xac]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x56f558
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x20c], 0
jne 0x56f558
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56f531
cmp byte [ebp - 0x71], 0
je 0x56f4e6
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 4
call fcn.00518698
jmp 0x56f505
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 3
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f51f
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x56]
mov edx, dword [ebp - 0xa8]
call fcn.0050f864
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
jmp 0x56f700
cmp dword [ebp - 0x60], 0
jne 0x56f700
mov eax, dword [ebp - 0x5c]
call fcn.0055d6e4
test al, al
je 0x56f700
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56f5f0
cmp byte [ebp - 0x71], 0
je 0x56f5a5
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 4
call fcn.00518698
jmp 0x56f5c4
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 3
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f5de
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
xor ebx, ebx
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f20c
mov edi, eax
lea edx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x56f636
cmp dword [ebp - 0x44], 5
jge 0x56f636
push ebp
call fcn.0056eb28
pop ecx
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f20c
cmp edi, eax
setg bl
jmp 0x56f6c4
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f650
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x56]
or edx, 0xffffffff
call fcn.0050f864
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
mov esi, eax
jmp 0x56f6bb
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f20c
cmp edi, eax
jle 0x56f68c
mov bl, 1
jmp 0x56f6c4
push 0x32
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
sub eax, esi
cmp eax, 0x12c
jbe 0x56f6bb
push ebp
call fcn.0056eb28
pop ecx
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f20c
cmp edi, eax
setg bl
jmp 0x56f6c4
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56f678
test bl, bl
jne 0x56f700
cmp byte [ebp - 0x71], 0
jne 0x56f6da
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
jne 0x56f700
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 3
call fcn.00518698
push ebp
call fcn.0056eb28
pop ecx
push 0x570254
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
add al, 0xfe
sub al, 3
jae 0x56f89f
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
sub al, 2
je 0x56f73a
dec al
je 0x56f742
dec al
je 0x56f74a
jmp 0x56f750
mov word [ebp - 0x66], 0x29
jmp 0x56f750
mov word [ebp - 0x66], 0x2a
jmp 0x56f750
mov word [ebp - 0x66], 0x684
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x84], 0
jg 0x56f769
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x84], 5
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx edx, word [ebp - 0x66]
call fcn.0050d5c8
test al, al
je 0x56f791
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x84]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x64], eax
jmp 0x56f79d
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x84]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jle 0x56f89f
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56f825
cmp byte [ebp - 0x71], 0
je 0x56f7da
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x56f7f9
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f813
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
mov eax, dword [ebp - 0x64]
push eax
movzx ecx, word [ebp - 0x56]
movzx edx, word [ebp - 0x66]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
test al, al
jne 0x56f896
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
sub al, 2
je 0x56f857
dec al
je 0x56f85f
dec al
je 0x56f867
jmp 0x56f86d
mov word [ebp - 0x66], 0x3a7
jmp 0x56f86d
mov word [ebp - 0x66], 0x3a8
jmp 0x56f86d
mov word [ebp - 0x66], 0x684
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx edx, word [ebp - 0x66]
call fcn.0050d5c8
test al, al
jne 0x56f896
push 1
movzx ecx, word [ebp - 0x56]
movzx edx, word [ebp - 0x66]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
mov eax, dword [ebp - 0x6c]
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f8b9
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x88], 0
jle 0x56fa4a
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x80], 0
je 0x56fa4a
lea edx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ce80
test al, al
je 0x56fa4a
mov ebx, dword [ebp - 0x44]
cmp ebx, 0xf
jle 0x56f904
cmp ebx, 0x708
jle 0x56fa4a
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3c5
call fcn.0050d5c8
test al, al
jne 0x56f9af
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56f99d
cmp byte [ebp - 0x71], 0
je 0x56f952
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x56f971
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56f98b
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
push 1
movzx ecx, word [ebp - 0x56]
mov dx, 0x3c5
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3c5
call fcn.0050d5c8
test al, al
je 0x56fa4a
mov eax, dword [0x5865d0]
mov eax, dword [eax]
or ecx, 0xffffffff
mov edx, dword [ebp - 0x4c]
call fcn.00511928
call fcn.004b9988
mov esi, eax
xor ebx, ebx
jmp 0x56fa41
push 0x64
call sub.kernel32.dll_Sleep_2
call fcn.004b9988
sub eax, esi
cmp eax, 0xfa0
ja 0x56fa4a
lea ecx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3c5
call fcn.0050d5c8
test al, al
je 0x56fa4a
call fcn.004b9988
sub eax, esi
cmp eax, 0x7d0
jbe 0x56fa41
test ebx, ebx
jne 0x56fa41
mov eax, dword [0x5865d0]
mov eax, dword [eax]
or ecx, 0xffffffff
mov edx, dword [ebp - 0x4c]
call fcn.00511928
mov eax, dword [ebp - 0x6c]
push eax
call sub.kernel32.dll_Sleep_2
inc ebx
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56f9e7
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
cmp al, 4
jne 0x56fbb4
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x13c], 0
jle 0x56fbb4
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x138]
sub eax, 1
jb 0x56fa8e
je 0x56fa96
dec eax
je 0x56fa9e
dec eax
je 0x56faa6
jmp 0x56faac
mov word [ebp - 0x66], 0x686
jmp 0x56faac
mov word [ebp - 0x66], 0x687
jmp 0x56faac
mov word [ebp - 0x66], 0x688
jmp 0x56faac
mov word [ebp - 0x66], 0x689
lea ecx, [ebp - 0xcc]
movzx eax, word [ebp - 0x66]
mov edx, 4
call fcn.0040a0f4
mov ecx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc8]
mov edx, 0x570268
call fcn.004054c0
mov eax, dword [ebp - 0xc8]
call fcn.004b8ff8
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx edx, word [ebp - 0x66]
call fcn.0050d8c8
mov ebx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x13c]
sub eax, ebx
mov ebx, eax
test ebx, ebx
jle 0x56fbb4
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56fb63
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56fb51
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
movzx eax, word [ebp - 0x56]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, ebx
movzx edx, word [ebp - 0x66]
call fcn.0050b5d4
lea edx, [ebp - 0xd4]
mov eax, ebx
call fcn.00409fe0
mov ecx, dword [ebp - 0xd4]
lea eax, [ebp - 0xd0]
mov edx, 0x57027c
call fcn.004054c0
mov eax, dword [ebp - 0xd0]
call fcn.004b8ff8
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x20c], 0
je 0x56fd26
lea edx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x56fd26
cmp dword [ebp - 0x44], 0xa
jge 0x56fd26
movzx eax, word [ebp - 0x50]
mov word [ebp - 0x66], ax
call fcn.004b9988
mov esi, eax
jmp 0x56fc6e
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
call fcn.0050bdcc
push 0x1f4
call sub.kernel32.dll_Sleep_2
lea edx, [ebp - 0xac]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x56fc77
push 1
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
call fcn.0050b8bc
push 0x1f4
call sub.kernel32.dll_Sleep_2
lea edx, [ebp - 0xac]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x56fc77
call fcn.004b9988
sub eax, esi
cmp eax, 0x1770
ja 0x56fc77
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0xd], 0
je 0x56fbfa
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56fcf5
cmp byte [ebp - 0x71], 0
je 0x56fcaa
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x56fcc9
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56fce3
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
lea edx, [ebp - 0x50]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
jne 0x56fd26
push 1
movzx ecx, word [ebp - 0x56]
movzx edx, word [ebp - 0x66]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x5c]
cmp word [eax + 0x18e], 0
jbe 0x56fe20
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x258], 1
jne 0x56fe20
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x24c]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050d964
mov edi, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x25c]
sub eax, edi
mov edi, eax
test edi, edi
jle 0x56fe20
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56fdfd
cmp byte [ebp - 0x71], 0
je 0x56fdb2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x56fdd1
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56fdeb
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
push edi
mov eax, dword [ebp - 0x5c]
movzx edx, word [eax + 0x18e]
movzx ecx, word [ebp - 0x56]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x5c]
cmp word [eax + 0x190], 0
jbe 0x56ff1a
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x250], 1
jne 0x56ff1a
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x244]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050d964
mov edi, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x260]
sub eax, edi
mov edi, eax
test edi, edi
jle 0x56ff1a
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56fef7
cmp byte [ebp - 0x71], 0
je 0x56feac
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x56fecb
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56fee5
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
push edi
mov eax, dword [ebp - 0x5c]
movzx edx, word [eax + 0x190]
movzx ecx, word [ebp - 0x56]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x5c]
cmp word [eax + 0x192], 0
jbe 0x570014
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x254], 1
jne 0x570014
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x248]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050d964
mov edi, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x264]
sub eax, edi
mov edi, eax
test edi, edi
jle 0x570014
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x56fff1
cmp byte [ebp - 0x71], 0
je 0x56ffa6
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x56ffc5
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x56ffdf
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
push edi
mov eax, dword [ebp - 0x5c]
movzx edx, word [eax + 0x192]
movzx ecx, word [ebp - 0x56]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x5c]
cmp word [eax + 0x194], 0
jbe 0x57010e
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x360], 1
jne 0x57010e
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x364]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050d964
mov edi, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x358]
sub eax, edi
mov edi, eax
test edi, edi
jle 0x57010e
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x18a], 0
je 0x5700eb
cmp byte [ebp - 0x71], 0
je 0x5700a0
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 2
call fcn.00518698
jmp 0x5700bf
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x1ea]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.00518698
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x5700d9
push 0x258
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx eax, word [eax + 0x110]
mov word [ebp - 0x56], ax
push edi
mov eax, dword [ebp - 0x5c]
movzx edx, word [eax + 0x194]
movzx ecx, word [ebp - 0x56]
mov eax, dword [ebp - 0x5c]
call fcn.005655c8
mov eax, dword [ebp - 0x6c]
add eax, 0x64
push eax
call sub.kernel32.dll_Sleep_2
xor edx, edx
mov eax, dword [ebp - 0x5c]
call fcn.0056c144
mov eax, dword [ebp - 0x5c]
call fcn.0055dd58
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x570155
lea eax, [ebp - 0xd4]
mov edx, 0xa
call fcn.004051cc
lea eax, [ebp - 0x1c]
mov edx, dword [0x50ad94]
call fcn.00405ee4
ret