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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffdd0
mov dword [esp + 4], ecx
mov dword [esp], edx
mov ebp, 0x58d174
lea eax, [esp + 0x18]
call fcn.00509c34
mov byte [esp + 0x30], 0x2f
mov byte [esp + 0x32], 1
xor eax, eax
mov dword [esp + 8], eax
call fcn.004b9988
mov dword [esp + 0x10], eax
jmp 0x50bef4
mov eax, dword [ebp]
call fcn.00511c88
mov esi, eax
sub esi, 2
mov eax, dword [ebp]
call fcn.00511c88
add eax, 2
sub eax, esi
jl 0x50bed6
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [ebp]
call fcn.00511cb0
mov ebx, eax
add ebx, 2
mov eax, dword [ebp]
call fcn.00511cb0
mov edi, eax
sub edi, 2
sub edi, ebx
jg 0x50bec4
dec edi
mov eax, dword [ebp]
call fcn.00511c88
cmp esi, eax
jne 0x50be6f
mov eax, dword [ebp]
call fcn.00511cb0
push eax
mov eax, ebx
pop edx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
dec eax
jle 0x50bec0
mov eax, dword [ebp]
call fcn.00511cb0
cmp ebx, eax
jne 0x50be91
mov eax, dword [ebp]
call fcn.00511c88
push eax
mov eax, esi
pop edx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
dec eax
jle 0x50bec0
mov ecx, ebx
mov edx, esi
mov eax, dword [0x58d178]
call fcn.00512420
test al, al
je 0x50bec0
call fcn.0040339c
mov eax, 3
call fcn.004033c4
test eax, eax
jne 0x50bec0
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
jmp 0x50bec4
dec ebx
inc edi
jne 0x50be4d
cmp dword [esp + 8], 0
jg 0x50bed6
inc esi
dec dword [esp + 0x14]
jne 0x50be2e
cmp dword [esp + 8], 0
jg 0x50bf08
call fcn.004b9988
sub eax, dword [esp + 0x10]
cmp eax, 0x12c
ja 0x50bf08
push 0x32
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586750]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
je 0x50be09
cmp dword [esp + 8], 0
jne case.default.0x50bf2b
call fcn.0040339c
mov eax, 5
call fcn.004033c4
cmp eax, 4
ja case.default.0x50bf2b
jmp dword [eax*4 + 0x50bf32]
mov eax, dword [ebp]
call fcn.00511c88
sub eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp]
call fcn.00511cb0
mov dword [esp + 0xc], eax
jmp case.default.0x50bf2b
mov eax, dword [ebp]
call fcn.00511c88
add eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp]
call fcn.00511cb0
mov dword [esp + 0xc], eax
jmp case.default.0x50bf2b
mov eax, dword [ebp]
call fcn.00511c88
mov dword [esp + 8], eax
mov eax, dword [ebp]
call fcn.00511cb0
add eax, 2
mov dword [esp + 0xc], eax
jmp case.default.0x50bf2b
mov eax, dword [ebp]
call fcn.00511c88
dec eax
mov dword [esp + 8], eax
mov eax, dword [ebp]
call fcn.00511cb0
inc eax
mov dword [esp + 0xc], eax
jmp case.default.0x50bf2b
mov eax, dword [ebp]
call fcn.00511c88
inc eax
mov dword [esp + 8], eax
mov eax, dword [ebp]
call fcn.00511cb0
inc eax
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 8]
and al, 0xff
mov byte [esp + 0x33], al
mov eax, dword [esp + 8]
and eax, 0xff00
shr eax, 8
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0xc]
and al, 0xff
mov byte [esp + 0x35], al
mov eax, dword [esp + 0xc]
and eax, 0xff00
shr eax, 8
mov byte [esp + 0x36], al
movzx eax, byte [esp]
and al, 0xff
mov byte [esp + 0x37], al
movzx eax, byte [esp + 4]
and al, 0xff
mov byte [esp + 0x38], al
mov eax, dword [esp + 4]
and eax, 0xff00
shr eax, 8
mov byte [esp + 0x39], al
mov dword [esp + 0x24], 0xa
or ecx, 0xffffffff
lea edx, [esp + 0x18]
mov eax, dword [0x58d178]
call fcn.00521b84
add esp, 0x230
pop ebp
pop edi
pop esi
pop ebx
ret