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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xf
push 0
push 0
dec ecx
jne 0x5658b8
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x14]
mov edx, dword [0x50acfc]
call fcn.00405e14
xor eax, eax
push ebp
push 0x566682
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x19], 0
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x218], 0
je 0x565a21
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x218]
mov edx, 0x56669c
call fcn.004055d0
je 0x565a21
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x218]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00515954
mov esi, eax
test esi, esi
jle 0x5659f8
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov edi, eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x28], ax
call fcn.004b9988
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x5659e9
call fcn.004b9988
sub eax, ebx
mov ecx, 0x3e8
xor edx, edx
div ecx
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x30]
cdq
cmp edx, dword [esp + 4]
jne 0x56598c
cmp eax, dword [esp]
pop edx
pop eax
jne 0x5659a3
mov edx, esi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00511884
inc dword [ebp - 0x30]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
cmp edi, eax
jne 0x5659c5
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x28]
je 0x5659d1
push 0x1f4
call sub.kernel32.dll_Sleep_2
jmp 0x565a21
call fcn.004b9988
sub eax, ebx
cmp eax, 0xbb8
ja 0x565a21
push 0xc8
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xd], 0
je 0x56596b
jmp 0x565a21
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [eax + 0x218]
lea eax, [ebp - 0x34]
mov edx, 0x5666ac
call fcn.004054c0
mov edx, dword [ebp - 0x34]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x14c]
mov edx, 0x5666c4
call fcn.004055d0
jne 0x565a4e
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 0xa
call fcn.00517a8c
cmp dword [ebp - 0x20], 0
jne 0x565e04
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x14c]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517ec4
test al, al
jne 0x565e04
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e4d4
test al, al
je 0x565aba
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x18]
call fcn.0055db70
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x28]
je 0x566644
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ebx, dword [eax + 0x164]
test ebx, ebx
jle 0x565c29
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x168], 0
jle 0x565c29
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x168]
push eax
push 2
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov ecx, ebx
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
test al, al
jne 0x565c29
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 4
mov edx, dword [ebp - 0x18]
call fcn.00520da4
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x168]
push eax
push 2
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [eax + 0x164]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
test al, al
jne 0x565c29
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 4
mov edx, dword [ebp - 0x18]
call fcn.00520da4
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x168]
push eax
push 2
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [eax + 0x164]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
test al, al
jne 0x565c29
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 4
mov edx, dword [ebp - 0x18]
call fcn.00520da4
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x168]
push eax
push 2
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [eax + 0x164]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
test al, al
jne 0x565c29
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [eax + 0x168]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x164]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f220
push 0x7d0
call sub.kernel32.dll_Sleep_2
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x14c]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517ec4
test al, al
jne 0x565e04
lea edx, [ebp - 0x24]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 8
call fcn.00517a8c
test al, al
je 0x565d7c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x24]
call fcn.005243a0
movzx edx, ax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c550
mov eax, dword [ebp - 0x24]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00522ad8
mov eax, dword [ebp - 0x24]
call fcn.004041e0
push 0x12c
call sub.kernel32.dll_Sleep_2
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x14c]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517ec4
test al, al
jne 0x565e04
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x158], 0
jne 0x565e04
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x154], 0
jne 0x565e04
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x14c]
mov eax, 0x5666d4
call fcn.00405784
test eax, eax
jne 0x565d40
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x14c]
mov eax, 0x5666e4
call fcn.00405784
test eax, eax
je 0x566644
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x28]
jne 0x565d73
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 8
call fcn.00517a8c
test al, al
je 0x566644
jmp 0x565e04
mov byte [ebp - 0x19], 1
jmp 0x565e04
push 0
push 0
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 5
call fcn.00517b54
test al, al
jne 0x565e04
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x5666f0
call fcn.00521e50
push 0x64
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511cb0
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov edx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
pop ecx
call fcn.00514740
test eax, eax
jle 0x565de0
mov byte [ebp - 0x19], 1
jmp 0x566644
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x158], 0
jne 0x565e04
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x154], 0
je 0x566644
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
mov word [ebp - 0x26], ax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x28], ax
cmp dword [ebp - 0x20], 0
je 0x566444
mov eax, dword [ebp - 0x20]
call fcn.005243f8
cmp ax, 2
je 0x565e66
mov eax, dword [ebp - 0x20]
call fcn.005246d0
push eax
push 2
push 0
push 0
push 0
mov eax, dword [ebp - 0x20]
call fcn.005246c0
mov ecx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x20]
call fcn.005243a0
movzx edx, ax
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520444
test al, al
jne 0x565f30
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x28]
je 0x565eb0
mov byte [ebp - 0x19], 1
jmp 0x565f30
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [eax + 0x168]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0x164]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f220
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x20]
call fcn.005243a0
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov word [edx + 0x268], ax
mov eax, dword [ebp - 0x20]
call fcn.005243a0
movzx edx, ax
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520444
test al, al
jne 0x565f30
mov eax, dword [ebp - 0x20]
call fcn.004041e0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x56671c
call fcn.00521e50
jmp 0x566644
mov eax, dword [ebp - 0x20]
call fcn.004041e0
cmp byte [ebp - 0x19], 0
jne 0x566444
mov dl, 1
mov eax, dword [0x41bb74]
call fcn.004041b0
mov dword [ebp - 0x2c], eax
xor edx, edx
push ebp
push 0x56643d
push dword fs:[edx]
mov dword fs:[edx], esp
movzx eax, byte [0x566734]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x148]
mov ecx, 0x566740
mov edx, 0x56674c
call fcn.0040f6f0
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x5663e0
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x5663e0
inc ebx
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x30], 0
jle 0x5661f6
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x3c]
mov eax, 0x566758
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x5661f6
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x40]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x40]
lea edx, [esi + 1]
mov ecx, 0x7fffffff
call fcn.004056a0
mov edx, dword [ebp - 4]
mov eax, 0x566764
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x5661f6
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov esi, dword [ebp - 4]
test esi, esi
je 0x56603b
sub esi, 4
mov esi, dword [esi]
lea eax, [ebp - 4]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004056a0
mov edx, dword [ebp - 4]
mov eax, 0x566770
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x566106
lea eax, [ebp - 0x44]
mov ecx, dword [ebp - 4]
mov edx, 0x56677c
call fcn.004054c0
mov edx, dword [ebp - 0x44]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
lea eax, [ebp - 0x48]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 4]
call fcn.004056a0
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511cb0
mov edx, eax
pop eax
call fcn.0040a188
push eax
push 2
push 0
push 0
push 0
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004056a0
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov edx, eax
pop eax
call fcn.0040a188
mov ecx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
push 0x1f4
call sub.kernel32.dll_Sleep_2
jmp 0x5663d6
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 4]
mov edx, 0x566790
call fcn.004054c0
mov edx, dword [ebp - 0x50]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
mov eax, dword [ebp - 4]
mov edx, 0x5666c4
call fcn.004055d0
jne 0x56617a
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 8
call fcn.00517a8c
test al, al
je 0x56617a
mov eax, dword [ebp - 0x20]
call fcn.005243a0
movzx edx, ax
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520444
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x20]
call fcn.004041e0
jmp 0x5663d6
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00517ec4
test al, al
je 0x5663d6
mov eax, dword [ebp - 0x20]
call fcn.005246d0
push eax
push 4
push 0
push 0
push 0
mov eax, dword [ebp - 0x20]
call fcn.005246c0
mov ecx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x20]
call fcn.005243a0
movzx edx, ax
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520444
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x20]
call fcn.004041e0
jmp 0x5663d6
lea ecx, [ebp - 0x54]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x54]
lea ecx, [ebp - 0x14]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517508
test al, al
je 0x56626a
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0x14]
call fcn.005102e8
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x58]
mov edx, 0x5667a4
call fcn.004054c0
mov edx, dword [ebp - 0x58]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
push 0x190
call sub.kernel32.dll_Sleep_2
jmp 0x5663ae
lea ecx, [ebp - 0x60]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x56628a
sub eax, 4
mov eax, dword [eax]
mov esi, eax
cmp esi, 4
jl 0x5663ae
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x6c]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x6c]
mov edx, esi
sar edx, 1
jns 0x5662b3
adc edx, 0
inc edx
mov ecx, 0x7fffffff
call fcn.004056a0
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x14]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517508
test al, al
je 0x5662f7
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0x14]
call fcn.005102e8
push 0x190
call sub.kernel32.dll_Sleep_2
jmp 0x5663ae
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x74]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x74]
mov ecx, esi
sar ecx, 1
jns 0x566315
adc ecx, 0
dec ecx
mov edx, 1
call fcn.004056a0
mov edx, dword [ebp - 0x70]
lea ecx, [ebp - 0x14]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517508
test al, al
je 0x566356
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0x14]
call fcn.005102e8
push 0x190
call sub.kernel32.dll_Sleep_2
jmp 0x5663ae
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x7c]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x7c]
mov ecx, 4
mov edx, 3
call fcn.004056a0
mov edx, dword [ebp - 0x78]
lea ecx, [ebp - 0x14]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517508
test al, al
je 0x5663ae
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0x14]
call fcn.005102e8
push 0x190
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
cmp eax, dword [ebp - 0x30]
jne 0x5663d6
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x154
lea edx, [ebp - 0x14]
mov ecx, dword [0x50acfc]
call fcn.00406148
inc dword [ebp - 0x30]
dec ebx
jne 0x565fbd
cmp byte [ebp - 0x19], 0
jne 0x566427
call fcn.004b9988
mov ebx, eax
jmp 0x56641e
push 0x64
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x28]
setne byte [ebp - 0x19]
cmp byte [ebp - 0x19], 0
jne 0x566427
call fcn.004b9988
sub eax, ebx
cmp eax, 0x5dc
ja 0x566427
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xd], 0
je 0x5663ef
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x566444
mov eax, dword [ebp - 0x2c]
call fcn.004041e0
ret
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xb0], 0
jg 0x566644
cmp byte [ebp - 0x19], 0
jne 0x56658c
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x158], 0
jne 0x566482
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x154], 0
je 0x566644
call fcn.004b9988
mov ebx, eax
xor esi, esi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov byte [eax + 0x5e], 0
jmp 0x56657f
call fcn.004b9988
sub eax, ebx
mov ecx, 0x7d0
xor edx, edx
div ecx
xor edx, edx
push edx
push eax
mov eax, esi
cdq
cmp edx, dword [esp + 4]
jne 0x5664c1
cmp eax, dword [esp]
pop edx
pop eax
jae 0x5664ee
jmp 0x5664c5
pop edx
pop eax
jge 0x5664ee
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx ecx, word [eax + 0x158]
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx edx, word [eax + 0x154]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.005102e8
inc esi
push 0x32
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xb0], 0
jg 0x566644
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
cmp ax, word [ebp - 0x26]
jne 0x566529
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x28]
je 0x56652f
mov byte [ebp - 0x19], 1
jmp 0x56658c
call fcn.004b9988
sub eax, ebx
cmp eax, 0x7d0
jbe 0x566571
push 0x18
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511cb0
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov edx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
pop ecx
call fcn.00514740
test eax, eax
jle 0x566571
mov byte [ebp - 0x19], 1
jmp 0x56658c
call fcn.004b9988
sub eax, ebx
cmp eax, 0x1388
ja 0x56658c
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xd], 0
je 0x56649b
cmp byte [ebp - 0x19], 0
jne 0x5665a1
mov eax, 0x5667b8
call fcn.004b8ff8
jmp 0x566644
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xb0], 0
jle 0x5665b6
mov byte [ebp - 0x19], 0
jmp 0x566644
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ebx, dword [eax + 0x16c]
test ebx, ebx
jle 0x566618
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp dword [eax + 0x170], 0
jle 0x566618
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
push eax
push 3
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov ecx, ebx
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
call fcn.00522bb0
test al, al
jne 0x566618
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x5667d8
call fcn.00521e50
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
movzx eax, ax
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x160], eax
cmp byte [ebp - 0x19], 0
je 0x566644
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xb0], 0
sete byte [ebp - 0x19]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x566689
lea eax, [ebp - 0x7c]
mov edx, 6
call fcn.004051cc
lea eax, [ebp - 0x60]
mov edx, 0xc
call fcn.004051cc
lea eax, [ebp - 0x14]
mov edx, dword [0x50acfc]
call fcn.00405ee4
lea eax, [ebp - 4]
call fcn.004051a8
ret