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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [0x68eab8]
cmp dword [eax], 0
je 0x526be8
mov eax, dword [0x68edbc]
mov byte [eax], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x1c], 0
mov byte [ebp - 5], 0
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x24]
cmp eax, 0x5f
jb 0x5267bb
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x24], eax
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 1
jle 0x5267bb
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x28], edx
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x2c]
cmp eax, 0x21
jb 0x5267f0
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x30]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x30], 0x186a0
jle 0x5267f0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x30], edx
xor eax, eax
push ebp
push 0x5269ab
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
cmp edi, dword [eax + 8]
jge 0x5269a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
mov edx, edi
call fcn.0041a308
mov ebx, eax
cmp byte [ebp - 5], 0
jne 0x526833
cmp byte [ebx + 0x18c], 0
je 0x52683a
mov byte [ebx + 0x248], 0
cmp byte [ebx + 0x248], 0
jne 0x52689b
mov eax, ebx
call fcn.005a444c
cmp byte [ebp - 5], 0
jne 0x526859
cmp byte [ebx + 0x18c], 0
je 0x526880
lea ecx, [ebp - 6]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x28]
mov eax, ebx
call fcn.005a7a28
test al, al
je 0x526880
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1c]
or al, byte [ebp - 6]
mov edx, dword [ebp - 4]
mov byte [edx + 0x1c], al
inc edi
jmp 0x526800
mov eax, ebx
mov si, 0xfff6
call fcn.00404528
mov eax, dword [0x68eab8]
cmp ebx, dword [eax]
je 0x52689b
mov eax, ebx
call fcn.005a47a0
mov eax, dword [0x68eab8]
cmp ebx, dword [eax]
jne 0x5268ab
mov eax, ebx
call fcn.005a47a0
cmp dword [ebx + 0x19c], 0
je 0x526906
mov eax, ebx
call fcn.005a48cc
test al, al
je 0x526906
mov eax, dword [ebx + 0x19c]
call fcn.005b870c
movzx eax, word [ebx + 0x10]
push eax
movzx eax, byte [ebx + 0x14]
push eax
mov eax, dword [ebx + 0x1a0]
push eax
mov eax, dword [ebx + 0x1a4]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
movzx ecx, word [ebx + 0xc]
mov edx, dword [ebx + 0x19c]
mov eax, dword [ebp - 4]
call fcn.0052d5bc
xor eax, eax
mov dword [ebx + 0x19c], eax
mov byte [ebx + 0x39], 1
cmp byte [ebx + 0x39], 0
je 0x52699b
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0052d004
mov eax, dword [0x68ef38]
mov eax, dword [eax]
mov edx, ebx
call fcn.0041a1b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
mov edx, edi
call fcn.0041a1fc
mov eax, dword [0x68e570]
cmp ebx, dword [eax]
jne 0x52694a
mov eax, dword [0x68e570]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x68ebac]
cmp ebx, dword [eax]
jne 0x52695c
mov eax, dword [0x68ebac]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x68f1f0]
cmp ebx, dword [eax]
jne 0x52696e
mov eax, dword [0x68f1f0]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x68f064]
cmp ebx, dword [eax]
jne 0x526980
mov eax, dword [0x68f064]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x68ecd4]
cmp ebx, dword [eax]
jne 0x526800
mov eax, dword [0x68ecd4]
xor edx, edx
mov dword [eax], edx
jmp 0x526800
inc edi
jmp 0x526800
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5269bf
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1c], 0
jne 0x5269d9
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x20]
ja 0x5269d9
xor eax, eax
jmp 0x5269db
mov al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0x1c], al
xor eax, eax
push ebp
push 0x526aab
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
cmp edi, dword [eax + 8]
jge 0x526a42
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
mov edx, edi
call fcn.0041a308
mov ebx, eax
cmp byte [ebx + 4], 0
je 0x526a3f
mov eax, ebx
mov si, 0xffff
call fcn.00404528
test al, al
jne 0x526a3f
mov eax, ebx
call fcn.0040432c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
mov edx, edi
call fcn.0041a1fc
jmp 0x5269f1
inc edi
jmp 0x5269f1
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
cmp edi, dword [eax + 8]
jge 0x526a95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
mov edx, edi
call fcn.0041a308
mov ebx, eax
cmp byte [ebx + 4], 0
je 0x526a92
mov eax, ebx
mov si, 0xffff
call fcn.00404528
test al, al
jne 0x526a92
mov eax, ebx
call fcn.0040432c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
mov edx, edi
call fcn.0041a1fc
jmp 0x526a44
inc edi
jmp 0x526a44
mov eax, dword [0x68eaec]
mov eax, dword [eax]
call fcn.0053bb2c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526abf
xor edx, edx
push ebp
push 0x526bd4
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x68f0c8]
mov eax, dword [eax]
add eax, 0xa6f81
mov edx, dword [0x68eab8]
mov edx, dword [edx]
mov edx, dword [edx + 0x150]
sub edx, 0xd
mov dword [eax], edx
mov edx, dword [0x68eab8]
mov edx, dword [edx]
mov edx, dword [edx + 0x154]
sub edx, 0xf
mov dword [eax + 4], edx
mov edx, dword [0x68eab8]
mov edx, dword [edx]
mov edx, dword [edx + 0x150]
add edx, 0xd
mov dword [eax + 8], edx
mov edx, dword [0x68eab8]
mov edx, dword [edx]
mov edx, dword [edx + 0x154]
add edx, 0xd
mov dword [eax + 0xc], edx
mov eax, dword [0x68e9d8]
cmp dword [eax], 0x400
jle 0x526b65
mov eax, dword [0x68e9d8]
mov eax, dword [eax]
sub eax, 0x400
mov ecx, 0x30
cdq
idiv ecx
mov edi, eax
mov eax, dword [0x68f0c8]
mov eax, dword [eax]
sub dword [eax + 0xa6f81], edi
mov eax, dword [0x68f0c8]
mov eax, dword [eax]
add dword [eax + 0xa6f89], edi
mov eax, dword [0x68e9b0]
cmp dword [eax], 0x300
jle 0x526ba4
mov edi, dword [0x68e9b0]
mov edi, dword [edi]
sub edi, 0x300
test edi, edi
jns 0x526b87
add edi, 0x1f
sar edi, 5
mov eax, dword [0x68f0c8]
mov eax, dword [eax]
sub dword [eax + 0xa6f85], edi
mov eax, dword [0x68f0c8]
mov eax, dword [eax]
add dword [eax + 0xa6f8d], edi
mov eax, dword [0x68eab8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x154]
mov eax, dword [0x68eab8]
mov eax, dword [eax]
mov edx, dword [eax + 0x150]
mov eax, dword [0x68f0c8]
mov eax, dword [eax]
call fcn.00523930
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526be8
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret