Function at 0x51b048
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, 0x5501d0
xor eax, eax
push ebp
push 0x51b3a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov edx, dword [0x46dc18]
call fcn.004030bc
test al, al
je 0x51b089
mov eax, dword [ebp - 8]
mov bl, byte [eax + 0xc]
jmp 0x51b08f
mov eax, dword [ebp - 8]
mov bl, byte [eax + 0xc]
cmp byte [0x5504a0], 0
je 0x51b0cc
mov eax, dword [ebp - 8]
mov edx, dword [0x46dc18]
call fcn.004030bc
test al, al
je 0x51b0cc
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
cmp byte [esi + eax - 0x6d], 1
jne 0x51b0cc
mov byte [0x5505c1], 1
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0053692c
xor eax, eax
mov al, bl
imul edi, eax, 0xeb
mov byte [esi + edi - 0x3a], 1
cmp byte [0x5504a0], 0
jne 0x51b1c5
mov byte [0x5504a1], 0
mov byte [esi + edi - 0x6d], 0
xor eax, eax
mov dword [esi + edi - 0x6c], eax
mov byte [esi + edi - 0x39], 1
mov eax, dword [esi + edi - 0x82]
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.00472114
mov edx, dword [eax + 0xc]
mov eax, 0x51b3c0
call fcn.0040410c
test eax, eax
jle 0x51b174
mov eax, dword [esi + edi - 0x82]
xor ecx, ecx
mov dl, 1
call fcn.0048dce0
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.00539fac
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053a858
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d59c
jmp 0x51b393
mov eax, dword [esi + edi - 0x7e]
cmp byte [eax + 0x34], 0
je 0x51b1fc
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053a858
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d59c
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov eax, dword [esi + edi - 5]
call fcn.004c67bc
push ebx
mov ecx, dword [0x55055c]
mov edx, 0x51b3d8
mov eax, dword [ebp - 4]
call fcn.0051e548
jmp 0x51b1fc
cmp byte [0x5504a0], 0
je 0x51b1fc
mov eax, dword [ebp - 8]
mov edx, dword [0x46dc18]
call fcn.004030bc
test al, al
je 0x51b1fc
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
cmp byte [esi + eax - 0x6d], 1
jne 0x51b1fc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00521224
xor eax, eax
mov al, bl
imul edi, eax, 0xeb
cmp byte [esi + edi - 0x46], 0
jne 0x51b21d
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
jne 0x51b269
mov byte [esi + edi - 0x46], 0
mov eax, dword [esi + edi - 0x82]
xor ecx, ecx
mov dl, 1
call fcn.0048dce0
mov byte [esi + edi - 0x3a], 1
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d59c
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
jne 0x51b27f
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053a858
jmp 0x51b27f
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
cmp byte [esi + eax - 0x46], 0
jne 0x51b27f
mov byte [esi + edi - 0x46], 1
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x55047c]
cmp eax, dword [0x550128]
jbe 0x51b300
cmp byte [0x54d0d4], 0
je 0x51b300
mov eax, 0xa4cb80
call fcn.00402bf8
mov dword [0x550128], eax
lea edx, [ebp - 0xc]
mov eax, dword [0x55011c]
call fcn.004c5494
mov edx, dword [ebp - 0xc]
mov eax, 0x550114
call fcn.00403bfc
push 0x550118
mov ecx, 0x7fffffff
mov edx, 0xa
mov eax, dword [0x550114]
call fcn.00404028
mov eax, dword [0x550118]
call fcn.00457d7c
mov dword [0x5503f8], eax
mov eax, dword [0x550114]
call fcn.00403e24
cmp eax, 0x11
sete byte [0x54d0d4]
xor eax, eax
mov al, bl
imul edi, eax, 0xeb
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
jne 0x51b32f
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053a858
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
je 0x51b388
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
mov eax, dword [esi + eax - 0x82]
call fcn.00497aec
mov eax, dword [esi + edi - 0x82]
mov eax, dword [eax + 0x2d4]
mov edx, 3
call fcn.00455f34
cmp eax, 0x18f
jle 0x51b383
mov eax, dword [esi + edi - 0x82]
xor ecx, ecx
xor edx, edx
call fcn.0048dce0
mov byte [esi + edi - 0x46], 0
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d59c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51b3b0
lea eax, [ebp - 0xc]
call fcn.00403ba8
ret