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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov esi, 0x5511d0
xor eax, eax
push ebp
push 0x51bdd4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov edx, dword [0x46dc24]
call fcn.004030bc
test al, al
je 0x51baa1
mov eax, dword [ebp - 8]
mov bl, byte [eax + 0xc]
jmp 0x51baa7
mov eax, dword [ebp - 8]
mov bl, byte [eax + 0xc]
cmp byte [0x5514b8], 0
je 0x51bae4
mov eax, dword [ebp - 8]
mov edx, dword [0x46dc24]
call fcn.004030bc
test al, al
je 0x51bae4
xor eax, eax
mov al, bl
imul eax, eax, 0xf7
cmp byte [esi + eax - 0x79], 1
jne 0x51bae4
mov byte [0x5515d9], 1
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0053787c
xor eax, eax
mov al, bl
imul edi, eax, 0xf7
mov byte [esi + edi - 0x46], 1
cmp byte [0x5514b8], 0
jne 0x51bbea
mov byte [0x5514b9], 0
mov byte [esi + edi - 0x79], 0
xor eax, eax
mov dword [esi + edi - 0x78], eax
mov byte [esi + edi - 0x45], 1
mov eax, dword [esi + edi - 0x8e]
mov edx, dword [eax]
call dword [edx + 0x40]
xor edx, edx
mov dl, bl
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov eax, dword [eax + 0x1ec]
call fcn.00472120
mov edx, dword [eax + 0xc]
mov eax, 0x51bdec
call fcn.0040410c
test eax, eax
jle 0x51bb8f
mov eax, dword [esi + edi - 0x8e]
xor ecx, ecx
mov dl, 1
call fcn.0048de54
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.0053aefc
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54e6e4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053b7a8
mov eax, dword [esi + edi - 0x8a]
xor edx, edx
call fcn.0045d5bc
jmp 0x51bdbe
mov eax, dword [esi + edi - 0x8a]
cmp byte [eax + 0x34], 0
je 0x51bc21
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54e6e4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053b7a8
mov eax, dword [esi + edi - 0x8a]
xor edx, edx
call fcn.0045d5bc
mov edx, dword [0x54e6e4]
mov edx, dword [edx]
mov eax, dword [esi + edi - 9]
call fcn.004c6ac0
push ebx
mov ecx, dword [0x551574]
mov edx, 0x51be04
mov eax, dword [ebp - 4]
call fcn.0051ef74
jmp 0x51bc21
cmp byte [0x5514b8], 0
je 0x51bc21
mov eax, dword [ebp - 8]
mov edx, dword [0x46dc24]
call fcn.004030bc
test al, al
je 0x51bc21
xor eax, eax
mov al, bl
imul eax, eax, 0xf7
cmp byte [esi + eax - 0x79], 1
jne 0x51bc21
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00521cb4
xor eax, eax
mov al, bl
imul edi, eax, 0xf7
cmp byte [esi + edi - 0x52], 0
jne 0x51bc42
mov eax, dword [esi + edi - 0x8e]
cmp byte [eax + 0x368], 0
jne 0x51bc91
mov byte [esi + edi - 0x52], 0
mov eax, dword [esi + edi - 0x8e]
xor ecx, ecx
mov dl, 1
call fcn.0048de54
mov byte [esi + edi - 0x46], 1
mov eax, dword [esi + edi - 0x8a]
xor edx, edx
call fcn.0045d5bc
mov eax, dword [esi + edi - 0x8e]
cmp byte [eax + 0x368], 0
jne 0x51bca7
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54e6e4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053b7a8
jmp 0x51bca7
xor eax, eax
mov al, bl
imul eax, eax, 0xf7
cmp byte [esi + eax - 0x52], 0
jne 0x51bca7
mov byte [esi + edi - 0x52], 1
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x551494]
cmp eax, dword [0x551128]
jbe 0x51bd28
cmp byte [0x54e0e0], 0
je 0x51bd28
mov eax, 0xa4cb80
call fcn.00402bf8
mov dword [0x551128], eax
lea edx, [ebp - 0xc]
mov eax, dword [0x55111c]
call fcn.004c5798
mov edx, dword [ebp - 0xc]
mov eax, 0x551114
call fcn.00403bfc
push 0x551118
mov ecx, 0x7fffffff
mov edx, 0xa
mov eax, dword [0x551114]
call fcn.00404028
mov eax, dword [0x551118]
call fcn.00457d9c
mov dword [0x551410], eax
mov eax, dword [0x551114]
call fcn.00403e24
cmp eax, 0x11
sete byte [0x54e0e0]
xor eax, eax
mov al, bl
imul edi, eax, 0xf7
mov eax, dword [esi + edi - 0x8e]
cmp byte [eax + 0x368], 0
jne 0x51bd57
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54e6e4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053b7a8
mov eax, dword [esi + edi - 0x8e]
cmp byte [eax + 0x368], 0
je 0x51bdb0
xor eax, eax
mov al, bl
imul eax, eax, 0xf7
mov eax, dword [esi + eax - 0x8e]
call fcn.00497d38
mov eax, dword [esi + edi - 0x8e]
mov eax, dword [eax + 0x2d4]
mov edx, 3
call fcn.00455f44
cmp eax, 0x18f
jle 0x51bdab
mov eax, dword [esi + edi - 0x8e]
xor ecx, ecx
xor edx, edx
call fcn.0048de54
mov byte [esi + edi - 0x52], 0
mov eax, dword [esi + edi - 0x8a]
xor edx, edx
call fcn.0045d5bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51bddb
lea eax, [ebp - 0xc]
call fcn.00403ba8
ret