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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], eax
mov ecx, 7
lea eax, [ebp - 0x20]
mov edx, dword [0x4012b8]
call fcn.0040b3cc
xor eax, eax
push ebp
push 0x5c6328
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x5e48e0], 0
je 0x5c5a31
xor eax, eax
call fcn.005bca84
mov byte [ebp - 0x21], 0
mov eax, dword [0x5db908]
mov byte [eax], 1
xor edx, edx
push ebp
push 0x5c6269
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x5e48f0], 0
je 0x5c5a60
mov dl, 1
mov eax, dword [0x5e48f0]
call fcn.00554954
cmp byte [0x5e48de], 0
je 0x5c5acd
xor eax, eax
push ebp
push 0x5c5aa0
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x5e48e4], 0
jne 0x5c5a8c
mov eax, 0x5c6344
call fcn.00555480
jmp 0x5c5a96
mov eax, dword [0x5e48e4]
call fcn.00555664
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c5acd
mov eax, 0x5c63ac
call fcn.005556dc
lea eax, [ebp - 0x2c]
mov ecx, dword [0x5e48c8]
mov edx, 0x5c6410
call fcn.0040aacc
mov eax, dword [ebp - 0x2c]
call fcn.005556dc
lea eax, [ebp - 0x30]
mov ecx, dword [0x5e48cc]
mov edx, 0x5c6450
call fcn.0040aacc
mov eax, dword [ebp - 0x30]
call fcn.005556dc
lea eax, [ebp - 0x38]
call fcn.0050f198
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
mov edx, 0x5c647c
call fcn.0040aacc
mov eax, dword [ebp - 0x34]
call fcn.005556dc
call fcn.005bccbc
xor eax, eax
call fcn.005c52c0
mov dword [0x5e48d4], eax
mov dl, 1
mov eax, dword [0x5c4518]
call fcn.00566578
mov dword [0x5db8b4], eax
mov ecx, dword [0x5e48cc]
mov edx, dword [0x5e48d4]
mov eax, dword [0x5db8b4]
call fcn.00569894
lea ecx, [ebp - 0x3c]
mov eax, dword [0x5db8b4]
mov edx, dword [eax + 0x18]
mov ax, 0xd9
call fcn.00515f84
mov edx, dword [ebp - 0x3c]
mov eax, 0x5e48d8
call fcn.00409c20
mov eax, dword [0x5db8b4]
test byte [eax + 0x1d], 0x20
je 0x5c5bca
mov eax, dword [0x5dba44]
cmp byte [eax], 0
jne 0x5c5bca
push 1
push 1
mov eax, dword [0x5e48d8]
call fcn.0040a87c
push eax
mov eax, dword [0x5dbee0]
mov eax, dword [eax + 0x39c]
call fcn.0040a87c
mov ecx, 0x30
pop edx
call fcn.005bd5cc
call fcn.00422bd8
mov eax, dword [0x5db8b4]
test byte [eax + 0x1d], 1
je 0x5c5c0e
mov eax, dword [0x5dbcd8]
cmp byte [eax], 0
jne 0x5c5c0e
push 1
push 1
mov eax, dword [0x5e48d8]
call fcn.0040a87c
push eax
mov eax, dword [0x5dbee0]
mov eax, dword [eax + 0x23c]
call fcn.0040a87c
mov ecx, 0x30
pop edx
call fcn.005bd5cc
call fcn.00422bd8
mov eax, 0x5e48d4
call fcn.0042513c
mov al, 2
call fcn.005c52c0
mov dword [0x5e48d4], eax
lea eax, [ebp - 0x20]
push eax
push 6
mov ecx, 0x86040000
mov dx, 0x20
mov eax, dword [0x5db8b4]
call fcn.00566a2c
test al, al
jne 0x5c5c4b
mov eax, 0x5c64bc
call fcn.0054c87c
cmp dword [0x5e48f0], 0
je 0x5c5c66
lea eax, [ebp - 4]
mov edx, dword [0x5dbd60]
mov edx, dword [edx]
call fcn.00409d04
jmp 0x5c5c71
lea edx, [ebp - 4]
mov eax, dword [ebp - 0x20]
call fcn.005c5984
mov eax, dword [0x5db8b4]
test byte [eax + 0x1d], 0x80
setne al
call fcn.005bdc90
mov eax, dword [0x5db8b4]
cmp byte [eax + 0x10], 0
je 0x5c5caa
mov eax, dword [0x5dba44]
cmp byte [eax], 0
jne 0x5c5ca1
mov eax, 0x5c6554
call fcn.0054c87c
mov al, 1
call fcn.005bddb8
jmp 0x5c5cb1
xor eax, eax
call fcn.005bddb8
call fcn.005baaa0
cmp dword [ebp - 4], 0
je 0x5c5de9
call fcn.005ba590
call fcn.005baedc
mov eax, dword [0x5db930]
mov edx, dword [0x5e48c8]
call fcn.00409c20
mov eax, dword [0x5dbe10]
mov edx, dword [0x5db8b4]
mov edx, dword [edx + 0x14]
call fcn.00409c20
movzx eax, byte [0x5e48df]
or al, byte [0x5e48e0]
mov edx, dword [0x5dbb04]
mov byte [edx], al
mov eax, dword [0x5dc0c4]
mov edx, dword [ebp - 0x18]
call fcn.00409c20
mov eax, dword [0x5dbc7c]
mov edx, dword [ebp - 0x14]
call fcn.00409c20
mov eax, dword [0x5dba60]
mov edx, dword [ebp - 0x10]
call fcn.00409c20
mov eax, dword [0x5dbb34]
mov edx, dword [ebp - 0xc]
call fcn.00409c20
mov eax, dword [ebp - 8]
call fcn.00409d60
mov edx, eax
add edx, edx
mov eax, dword [ebp - 8]
call fcn.005c58cc
mov dl, 1
mov eax, dword [0x5b05c8]
call fcn.005b17e0
mov edx, dword [0x5dbb6c]
mov dword [edx], eax
mov eax, dword [0x5dbb6c]
mov eax, dword [eax]
add eax, 4
mov edx, 0x5c65e8
call fcn.00409c20
mov eax, 0x5bc50c
mov edx, dword [0x5dbb6c]
mov edx, dword [edx]
mov dword [edx + 0x10], eax
mov eax, 0x5bc514
mov edx, dword [0x5dbb6c]
mov edx, dword [edx]
mov dword [edx + 0x14], eax
mov eax, 0x5bc51c
mov edx, dword [0x5dbb6c]
mov edx, dword [edx]
mov dword [edx + 0x18], eax
mov eax, 0x5bc73c
mov edx, dword [0x5dbb6c]
mov edx, dword [edx]
mov dword [edx + 0x1c], eax
mov eax, 0x5bc754
mov edx, dword [0x5dbb6c]
mov edx, dword [edx]
mov dword [edx + 0x20], eax
mov eax, 0x5bc760
mov edx, dword [0x5dbb6c]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
mov ecx, dword [0x5dbc2c]
mov ecx, dword [ecx]
mov eax, dword [0x5dbb6c]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.005b18d8
xor edx, edx
push ebp
push 0x5c6229
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x5c6168
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x5dbb6c]
cmp dword [eax], 0
je 0x5c5e7a
xor edx, edx
push ebp
push 0x5c5e4e
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 2
push 0
push 1
xor eax, eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea ecx, [ebp - 0x44]
mov eax, dword [0x5dbb6c]
mov eax, dword [eax]
mov edx, 0x5c6600
call fcn.005b1f40
pop dword fs:[0]
add esp, 8
jmp 0x5c5e67
test al, al
jne 0x5c5e7a
mov eax, 0x5c6690
call fcn.005556dc
call fcn.00422bd8
cmp byte [0x5e48df], 0
jne 0x5c5eb6
cmp byte [0x5e48e0], 0
jne 0x5c5eb6
push 0x124
push 1
push 6
mov eax, dword [0x5db8b4]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x5e48d8]
mov ax, 0x2d
call fcn.005c49a4
cmp eax, 6
je 0x5c5eb6
call fcn.00422bd8
xor edx, edx
xor eax, eax
call fcn.005c5134
jmp 0x5c5ee6
push 0x31
push 1
push 2
mov eax, dword [0x5db8b4]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x5e48d8]
mov ax, 0xe5
call fcn.005c49a4
dec eax
je 0x5c5ee6
call fcn.00422bd8
mov eax, dword [0x5db8b4]
call fcn.00566a74
test al, al
jne 0x5c5ec1
jmp 0x5c5f09
push 0xa
call sub.kernel32.dll_Sleep
mov eax, dword [0x5dbecc]
mov eax, dword [eax]
call fcn.00500950
mov eax, dword [0x5dc164]
cmp byte [eax], 0
jne 0x5c5ef6
mov eax, dword [0x5db908]
mov byte [eax], 0
lea ecx, [ebp - 0x48]
mov eax, dword [0x5db8b4]
mov edx, dword [eax + 0x18]
mov ax, 0xc8
call fcn.00515f84
mov edx, dword [ebp - 0x48]
mov eax, dword [0x5dbecc]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
call fcn.00510bc4
call fcn.005c47d8
xor edx, edx
mov al, 1
call fcn.005c5134
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x28], eax
mov eax, dword [0x5db8b4]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x24], edx
mov ecx, 0x5c4c2c
mov dl, 1
mov eax, dword [0x5db8b4]
call fcn.005678e8
mov byte [ebp - 0x22], al
movzx eax, byte [ebp - 0x22]
mov edx, dword [0x5dbdb4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea edx, [ebp - 0x44]
xor ecx, ecx
mov eax, 0x5c66f8
call fcn.0055594c
mov eax, dword [0x5db8b4]
cmp byte [eax + 0x1c], 0
jne 0x5c5fb6
mov eax, dword [0x5db8b4]
test byte [eax + 0x1d], 8
jne 0x5c5fb6
xor eax, eax
jmp 0x5c5fb8
mov al, 1
mov byte [ebp - 0x23], al
mov eax, dword [0x5dbb6c]
cmp dword [eax], 0
je 0x5c605a
mov eax, dword [0x5dbb6c]
mov eax, dword [eax]
mov cl, 1
mov edx, 0x5c6724
call fcn.005b1b34
test al, al
je 0x5c605a
cmp byte [ebp - 0x23], 0
jne 0x5c6050
xor eax, eax
push ebp
push 0x5c6035
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 1
push 0
push 0
xor eax, eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea ecx, [ebp - 0x44]
mov eax, dword [0x5dbb6c]
mov eax, dword [eax]
mov edx, 0x5c6724
call fcn.005b1f40
test al, al
je 0x5c602b
mov byte [ebp - 0x23], 1
mov eax, 0x5c6748
call fcn.005556dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c605a
mov eax, 0x5c6828
call fcn.005556dc
movzx eax, byte [ebp - 0x23]
mov edx, dword [0x5dbdb4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea edx, [ebp - 0x44]
xor ecx, ecx
mov eax, 0x5c68e0
call fcn.0055594c
cmp byte [0x5e48e0], 0
jne 0x5c60b5
mov eax, dword [0x5dbecc]
mov eax, dword [eax]
call fcn.00500950
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x28]
cmp eax, 0x3e8
jae 0x5c60b5
push 0x4ff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x5c6086
mov eax, dword [0x5dba80]
call fcn.0042513c
mov dl, 1
mov al, 2
call fcn.005c5134
cmp byte [ebp - 0x23], 0
jne 0x5c610a
cmp byte [0x5e48df], 0
jne 0x5c6155
cmp byte [0x5e48e0], 0
jne 0x5c6155
push 0x10040
push 1
push 1
mov eax, dword [0x5db8b4]
mov edx, dword [eax + 0x18]
movzx eax, byte [ebp - 0x22]
movzx eax, word [eax*2 + 0x5db8c0]
mov ecx, dword [0x5e48d8]
call fcn.005c49a4
jmp 0x5c6155
cmp byte [0x5e48e1], 0
jne 0x5c6145
cmp byte [0x5e48e0], 0
jne 0x5c6141
push 0x10024
push 1
push 6
mov eax, dword [0x5db8b4]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x5e48d8]
mov ax, 0xe3
call fcn.005c49a4
cmp eax, 6
jne 0x5c6145
mov byte [ebp - 0x21], 1
cmp byte [ebp - 0x21], 0
jne 0x5c6155
mov eax, 0x5c6924
call fcn.005556dc
mov dl, 1
mov al, 3
call fcn.005c5134
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c617c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5c6233
xor eax, eax
push ebp
push 0x5c61ab
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5dba80]
call fcn.0042513c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c61ba
mov eax, dword [0x5dbb6c]
cmp dword [eax], 0
je 0x5c6216
xor eax, eax
push ebp
push 0x5c61fd
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
xor eax, eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea ecx, [ebp - 0x44]
mov eax, dword [0x5dbb6c]
mov eax, dword [eax]
mov edx, 0x5c6980
call fcn.005b1cd8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c6216
mov eax, dword [0x5dbecc]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
call fcn.00510c54
ret