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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x50c217
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x50c1fc
mov eax, dword [0x53ea38]
mov byte [eax], 0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x50]
cmp eax, 0x32
jb 0x50bd30
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x54]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x54], 0x186a0
jle 0x50bd30
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x54], edx
xor edx, edx
push ebp
push 0x50bf6d
push dword fs:[edx]
mov dword fs:[edx], esp
xor edi, edi
call sub.kernel32.dll_GetTickCount_1
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34d8]
cmp edi, dword [eax + 8]
jge 0x50bf63
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34d8]
mov edx, edi
call fcn.004195b0
mov ebx, eax
mov dword [ebp - 0x10], 1
cmp byte [ebp - 5], 0
jne 0x50bd87
mov eax, dword [0x53e6d8]
cmp ebx, dword [eax]
jne 0x50bd87
inc edi
jmp 0x50bd45
mov dword [ebp - 0x10], 2
call sub.kernel32.dll_GetTickCount_1
mov eax, ebx
call fcn.00523d90
mov byte [ebp - 6], al
mov dword [ebp - 0x10], 3
cmp byte [ebp - 6], 0
je 0x50bdb1
mov byte [ebx + 0x1d0], 0
cmp byte [ebx + 0x1d0], 0
jne 0x50be2a
mov dword [ebp - 0x10], 4
mov eax, ebx
call fcn.0051fbc4
mov dword [ebp - 0x10], 5
cmp byte [ebp - 6], 0
je 0x50bdfa
mov dword [ebp - 0x10], 6
mov edx, dword [ebx + 0x248]
mov eax, ebx
call fcn.00523e54
test al, al
je 0x50bdfa
inc edi
mov dword [ebp - 0x10], 7
jmp 0x50bd45
mov dword [ebp - 0x10], 8
mov eax, ebx
mov si, 0xfffa
call fcn.00404114
mov dword [ebp - 0x10], 9
mov eax, dword [0x53e6d8]
cmp ebx, dword [eax]
je 0x50be23
mov eax, ebx
call fcn.0051ff04
mov dword [ebp - 0x10], 0xa
mov dword [ebp - 0x10], 0xb
mov eax, dword [0x53e6d8]
cmp ebx, dword [eax]
jne 0x50be41
mov eax, ebx
call fcn.0051ff04
mov dword [ebp - 0x10], 0xc
cmp dword [ebx + 0x154], 0
je 0x50beba
mov dword [ebp - 0x10], 0xd
mov eax, ebx
call fcn.00520030
test al, al
je 0x50beba
mov dword [ebp - 0x10], 0xe
mov eax, dword [ebx + 0x154]
call fcn.0053923c
mov dword [ebp - 0x10], 0xf
mov ax, word [ebx + 0xc]
push eax
xor eax, eax
mov al, byte [ebx + 0x10]
push eax
mov eax, dword [ebx + 0x158]
push eax
mov eax, dword [ebx + 0x15c]
push eax
mov cx, word [ebx + 8]
mov edx, dword [ebx + 0x154]
mov eax, dword [ebp - 4]
call fcn.00510f60
mov dword [ebp - 0x10], 0x10
xor eax, eax
mov dword [ebx + 0x154], eax
mov byte [ebx + 0x32], 1
mov dword [ebp - 0x10], 0x11
cmp byte [ebx + 0x32], 0
je 0x50bf5d
mov dword [ebp - 0x10], 0x12
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34d8]
mov edx, edi
call fcn.00419434
mov dword [ebp - 0x10], 0x13
mov eax, ebx
call fcn.0050099c
mov dword [ebp - 0x10], 0x14
mov eax, dword [0x53f0e0]
cmp ebx, dword [eax]
jne 0x50bf09
mov eax, dword [0x53f0e0]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53e830]
cmp ebx, dword [eax]
jne 0x50bf1b
mov eax, dword [0x53e830]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53edb8]
cmp ebx, dword [eax]
jne 0x50bf2d
mov eax, dword [0x53edb8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53ec04]
cmp ebx, dword [eax]
jne 0x50bf3f
mov eax, dword [0x53ec04]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53e764]
cmp ebx, dword [eax]
jne 0x50bf51
mov eax, dword [0x53e764]
xor edx, edx
mov dword [eax], edx
mov dword [ebp - 0x10], 0x15
jmp 0x50bd45
inc edi
jmp 0x50bd45
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50bf9a
xor eax, eax
push ebp
push 0x50c0b7
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e0]
cmp edi, dword [eax + 8]
jge 0x50bffb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e0]
mov edx, edi
call fcn.004195b0
mov ebx, eax
cmp byte [ebx + 4], 0
je 0x50bff8
mov eax, ebx
mov si, 0xffff
call fcn.00404114
test al, al
jne 0x50bff8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e0]
mov edx, edi
call fcn.00419434
mov eax, ebx
call fcn.00403f0c
jmp 0x50bfaa
inc edi
jmp 0x50bfaa
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e4]
cmp edi, dword [eax + 8]
jge 0x50c04e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e4]
mov edx, edi
call fcn.004195b0
mov ebx, eax
cmp byte [ebx + 4], 0
je 0x50c04b
mov eax, ebx
mov si, 0xffff
call fcn.00404114
test al, al
jne 0x50c04b
mov eax, ebx
call fcn.00403f0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e4]
mov edx, edi
call fcn.00419434
jmp 0x50bffd
inc edi
jmp 0x50bffd
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e8]
cmp edi, dword [eax + 8]
jge 0x50c0a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e8]
mov edx, edi
call fcn.004195b0
mov ebx, eax
cmp byte [ebx + 4], 0
je 0x50c09e
mov eax, ebx
mov si, 0xffff
call fcn.00404114
test al, al
jne 0x50c09e
mov eax, ebx
call fcn.00403f0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34e8]
mov edx, edi
call fcn.00419434
jmp 0x50c050
inc edi
jmp 0x50c050
mov eax, dword [0x53ec5c]
mov eax, dword [eax]
call fcn.0051bc74
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50c0cb
xor edx, edx
push ebp
push 0x50c1db
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
call fcn.0050b9ec
mov eax, dword [0x53ec5c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x50c157
inc esi
xor edi, edi
mov eax, dword [0x53ec5c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, edi
call fcn.004195b0
mov ebx, eax
mov eax, dword [ebx + 4]
mov edx, dword [0x53e6d8]
mov edx, dword [edx]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x1e
jle 0x50c153
mov eax, dword [ebx + 8]
mov edx, dword [0x53e6d8]
mov edx, dword [edx]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x1e
jle 0x50c153
mov eax, ebx
call fcn.00403f0c
mov eax, dword [0x53ec5c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, edi
call fcn.00419434
jmp 0x50c157
inc edi
dec esi
jne 0x50c0f6
mov eax, dword [0x53ec5c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x50c1d1
inc esi
xor edi, edi
mov eax, dword [0x53ec5c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, edi
call fcn.004195b0
mov ebx, eax
mov eax, dword [ebx + 4]
mov edx, dword [0x53e6d8]
mov edx, dword [edx]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xf
jg 0x50c1cd
mov eax, dword [ebx + 8]
mov edx, dword [0x53e6d8]
mov edx, dword [edx]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xf
jg 0x50c1cd
mov eax, dword [ebx + 0x18]
add eax, 0xfffffff9
sub eax, 7
jae 0x50c1cd
mov eax, dword [ebx + 0x40]
test eax, eax
jle 0x50c1cd
call fcn.0051aa7c
mov dword [ebx + 0x40], 0xfffffffe
inc edi
dec esi
jne 0x50c16c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50c1ef
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53eb58]
mov dword [edx], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c21e
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404d60
ret