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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xc
push 0
push 0
dec ecx
jne 0x5c5434
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5c5bdc
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x5d0130], 1
jne 0x5c54bc
lea edx, [ebp - 0x1c]
mov eax, dword [0x5d5bf4]
call fcn.004097c4
lea eax, [ebp - 0x1c]
mov edx, 0x5c5bf4
call fcn.00404c40
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.00462c14
push 0x5c5c00
lea edx, [ebp - 0x24]
mov eax, dword [0x5d5bf4]
call fcn.004097c4
push dword [ebp - 0x24]
push 0x5c5bf4
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404cf8
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
call fcn.00462c14
cmp dword [0x5d5bf4], 0x64
jne 0x5c5552
lea edx, [ebp - 0x28]
mov eax, dword [0x5d5bf4]
call fcn.004097c4
lea eax, [ebp - 0x28]
mov edx, 0x5c5bf4
call fcn.00404c40
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.00462c14
push 0x5c5c00
lea edx, [ebp - 0x30]
mov eax, dword [0x5d5bf4]
call fcn.004097c4
push dword [ebp - 0x30]
push 0x5c5bf4
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404cf8
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
call fcn.00462c14
xor eax, eax
mov dword [0x5d5bf4], eax
mov byte [0x5d0134], 1
mov edx, 0x5b8ebc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov ecx, 3
call fcn.0044f398
cmp dword [0x5d5cdc], 0
jle 0x5c556a
inc dword [0x5d5d10]
xor eax, eax
mov dword [0x5d5d14], eax
jmp 0x5c5585
inc dword [0x5d5d14]
xor eax, eax
mov dword [0x5d5d10], eax
call fcn.005ac2e8
xor edx, edx
xor eax, eax
call fcn.005ab8c0
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00532750
xor eax, eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x15], 0
cmp dword [ebp - 8], 0
je 0x5c5621
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.005325cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x5f0]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x5c5621
inc ebx
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 0x14]
call fcn.00531500
mov eax, dword [ebp - 0x34]
mov edx, 0x5c5c18
call fcn.00404d84
jne 0x5c561b
lea ecx, [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 0x14]
call fcn.005314b8
mov byte [ebp - 0x15], 1
jmp 0x5c5621
inc dword [ebp - 0x14]
dec ebx
jne 0x5c55d2
xor eax, eax
push ebp
push 0x5c5646
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5d5cf0]
call fcn.005b8b08
mov dword [ebp - 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c5650
cmp dword [ebp - 8], 0
jne 0x5c5780
xor eax, eax
push ebp
push 0x5c5779
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x5d5cdc], 0
jne 0x5c567b
call fcn.004043a4
jmp 0x5c5bb9
xor eax, eax
mov dword [0x5d5cdc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
mov edx, 0x5c5c24
call fcn.00462c14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov eax, dword [eax + 0x22c]
mov edx, dword [ebp - 0x10]
call fcn.0044bf44
mov eax, dword [eax + 0x24]
call fcn.00409900
mov ebx, eax
cmp dword [ebp - 0x10], 0
jl 0x5c5751
lea eax, [ebx + ebx*8]
lea eax, [eax + eax*8]
mov edx, dword [0x5d5b9c]
cmp dword [edx + eax*4 + 0x13c], 2
jne 0x5c5751
mov ecx, 5
mov edx, 0x5c5c34
mov eax, 0x5c5c44
call fcn.005ab7c8
lea esi, [ebx + ebx*8]
lea esi, [esi + esi*8]
mov eax, dword [0x5d5b9c]
push esi
lea edi, [eax + esi*4 + 0xd6]
mov esi, 0x5c5c50
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [0x5d5b9c]
xor edx, edx
mov dword [eax + esi*4 + 0x13c], edx
mov eax, ebx
call fcn.005ae104
mov edx, 2
mov eax, dword [0x5d5cf0]
call fcn.005ae228
mov eax, 0x5d5cf0
call fcn.0040495c
mov eax, dword [0x5d0150]
call fcn.00404e38
push eax
mov eax, dword [0x5d5ba8]
call fcn.00404e38
push eax
call fcn.005524f8
call fcn.004043a4
jmp 0x5c5bb9
cmp byte [ebp - 0x15], 0
jne 0x5c57a2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4ac]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor eax, eax
mov dword [0x5d5cdc], eax
jmp 0x5c5bb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 0x14]
call fcn.00531490
xor edx, edx
push edx
push eax
mov eax, dword [0x5d5cdc]
cdq
cmp edx, dword [esp + 4]
jne 0x5c57cc
cmp eax, dword [esp]
pop edx
pop eax
je 0x5c58b5
lea ecx, [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 0x14]
call fcn.005314b8
mov edx, dword [ebp - 0x38]
mov eax, 0x5d5cec
call fcn.004049b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x5f0]
mov edx, dword [ebp - 0x14]
call fcn.00531490
mov dword [0x5d5cdc], eax
mov edx, dword [0x5d5cec]
mov eax, 0x5c5c64
call fcn.00404f7c
test eax, eax
jne 0x5c5850
lea eax, [ebp - 0x3c]
mov ecx, dword [0x5d5cec]
mov edx, 0x5c5c78
call fcn.00404c84
mov eax, dword [ebp - 0x3c]
mov ecx, 5
mov edx, 0x5c5c34
call fcn.005ab7c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
call fcn.0055e284
mov eax, dword [0x5d0294]
cmp byte [eax], 2
jb 0x5c5881
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov ecx, dword [0x5d5cdc]
mov edx, 1
call fcn.0055fb6c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb44
mov dword [0x5d5cf8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb58
mov dword [0x5d5cfc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d5d00], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4ac]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor eax, eax
push ebp
push 0x5c58f7
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
xor ecx, ecx
mov edx, dword [0x5d5cdc]
call fcn.00532fc0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c5901
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x308]
movzx eax, word [ebx + 0x554]
cmp eax, dword [0x5d5cf4]
je 0x5c59a0
lea edx, [ebp - 0x44]
mov eax, dword [ebx + 0x55c]
call fcn.005ae434
mov eax, dword [ebp - 0x44]
mov ecx, 0x14
mov edx, 0x5c5c94
call fcn.005ab7c8
mov eax, 0x5d5cec
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x308]
mov edx, dword [edx + 0x560]
call fcn.004049b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
movzx eax, word [eax + 0x554]
mov dword [0x5d5cf4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
cmp word [eax + 0x554], 0x2000
jae 0x5c59a0
xor eax, eax
mov dword [0x5d5d14], eax
xor eax, eax
mov dword [0x5d5d10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
mov edx, 0x5c5ca4
call fcn.00462c14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
cmp word [eax + 0x554], 0x2000
jne 0x5c5bb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
call fcn.0055f2ac
xor eax, eax
push ebp
push 0x5c5b51
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb44
mov ebx, eax
sub ebx, dword [0x5d5cf8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb58
mov esi, eax
sub esi, dword [0x5d5cfc]
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d5d00]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x5c5a1f
mov dword [ebp - 0xc], 0x3e8
mov eax, ebx
xor edx, edx
div dword [ebp - 0xc]
mov ebx, eax
mov eax, esi
xor edx, edx
div dword [ebp - 0xc]
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb44
mov dword [0x5d5cf8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb58
mov dword [0x5d5cfc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d5d00], eax
push 0x5c5cb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb44
shr eax, 0xa
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x4c]
call fcn.004098b0
push dword [ebp - 0x4c]
push 0x5c5cc8
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x50]
call fcn.004098b0
push dword [ebp - 0x50]
push 0x5c5cd8
lea eax, [ebp - 0x48]
mov edx, 5
call fcn.00404cf8
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
call fcn.00462c14
push 0x5c5ce8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.0055fb58
shr eax, 0xa
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x58]
call fcn.004098b0
push dword [ebp - 0x58]
push 0x5c5cc8
mov eax, esi
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c]
call fcn.004098b0
push dword [ebp - 0x5c]
push 0x5c5cd8
lea eax, [ebp - 0x54]
mov edx, 5
call fcn.00404cf8
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
call fcn.00462c14
test ebx, ebx
jne 0x5c5b2d
test esi, esi
je 0x5c5b3b
mov edx, 0x7d
mov al, 1
call fcn.005ab8c0
jmp 0x5c5b47
mov edx, 0x7d
xor eax, eax
call fcn.005ab8c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c5bb9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5c5be3
lea eax, [ebp - 0x64]
mov edx, 0x13
call fcn.00404980
lea eax, [ebp - 8]
call fcn.0040495c
ret