Function at 0x519d50
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, 0x54f1d0
xor eax, eax
push ebp
push 0x51a0b1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov edx, dword [0x46da28]
call fcn.004030bc
test al, al
je 0x519d91
mov eax, dword [ebp - 8]
mov bl, byte [eax + 0xc]
jmp 0x519d97
mov eax, dword [ebp - 8]
mov bl, byte [eax + 0xc]
cmp byte [0x54f4a0], 0
je 0x519dd4
mov eax, dword [ebp - 8]
mov edx, dword [0x46da28]
call fcn.004030bc
test al, al
je 0x519dd4
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
cmp byte [esi + eax - 0x6d], 1
jne 0x519dd4
mov byte [0x54f5bd], 1
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.005356fc
xor eax, eax
mov al, bl
imul edi, eax, 0xeb
mov byte [esi + edi - 0x3a], 1
cmp byte [0x54f4a0], 0
jne 0x519ecd
mov byte [0x54f4a1], 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.00471f24
mov edx, dword [eax + 0xc]
mov eax, 0x51a0c8
call fcn.0040410c
test eax, eax
jle 0x519e7c
mov eax, dword [esi + edi - 0x82]
xor ecx, ecx
mov dl, 1
call fcn.0048da08
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.00538bbc
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54c6b8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.00539468
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d3dc
jmp 0x51a09b
mov eax, dword [esi + edi - 0x7e]
cmp byte [eax + 0x34], 0
je 0x519f04
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54c6b8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.00539468
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d3dc
mov edx, dword [0x54c6b8]
mov edx, dword [edx]
mov eax, dword [esi + edi - 5]
call fcn.004c64ac
push ebx
mov ecx, dword [0x54f558]
mov edx, 0x51a0e0
mov eax, dword [ebp - 4]
call fcn.0051d250
jmp 0x519f04
cmp byte [0x54f4a0], 0
je 0x519f04
mov eax, dword [ebp - 8]
mov edx, dword [0x46da28]
call fcn.004030bc
test al, al
je 0x519f04
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
cmp byte [esi + eax - 0x6d], 1
jne 0x519f04
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0051ff7c
xor eax, eax
mov al, bl
imul edi, eax, 0xeb
cmp byte [esi + edi - 0x46], 0
jne 0x519f25
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
jne 0x519f71
mov byte [esi + edi - 0x46], 0
mov eax, dword [esi + edi - 0x82]
xor ecx, ecx
mov dl, 1
call fcn.0048da08
mov byte [esi + edi - 0x3a], 1
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d3dc
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
jne 0x519f87
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54c6b8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.00539468
jmp 0x519f87
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
cmp byte [esi + eax - 0x46], 0
jne 0x519f87
mov byte [esi + edi - 0x46], 1
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x54f47c]
cmp eax, dword [0x54f120]
jbe 0x51a008
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
mov al, bl
imul edi, eax, 0xeb
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
jne 0x51a037
push 0
mov ecx, ebx
dec ecx
mov edx, dword [0x54c6b8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.00539468
mov eax, dword [esi + edi - 0x82]
cmp byte [eax + 0x1360], 0
je 0x51a090
xor eax, eax
mov al, bl
imul eax, eax, 0xeb
mov eax, dword [esi + eax - 0x82]
call fcn.004979d4
mov eax, dword [esi + edi - 0x82]
mov eax, dword [eax + 0x2d4]
mov edx, 3
call fcn.00456084
cmp eax, 0x18f
jle 0x51a08b
mov eax, dword [esi + edi - 0x82]
xor ecx, ecx
xor edx, edx
call fcn.0048da08
mov byte [esi + edi - 0x46], 0
mov eax, dword [esi + edi - 0x7e]
xor edx, edx
call fcn.0045d3dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51a0b8
lea eax, [ebp - 0xc]
call fcn.00403ba8
ret