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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffec8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ecx
mov esi, edx
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 4]
call fcn.0040575c
xor eax, eax
push ebp
push 0x50c049
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x50c002
push dword fs:[edx]
mov dword fs:[edx], esp
cmp ebx, 0x7fffffff
jne 0x50bf3d
xor ebx, ebx
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0050227c
push 0
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 0x2c], 9
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00479c78
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 8]
call fcn.00405374
push 0
lea eax, [ebp - 0x14]
push eax
mov byte [ebp - 0x2c], 9
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.00479c78
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x50be32
sub eax, 4
mov eax, dword [eax]
cmp eax, 3
jl 0x50bf38
mov eax, dword [ebp - 0x14]
call fcn.0050b838
test al, al
je 0x50bf31
xor ecx, ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
call fcn.0050e0a8
mov edi, eax
test edi, edi
je 0x50be8d
cmp dword [edi + 0xc], 5
jle 0x50be8d
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [edi + 0x10]
cmp eax, 0x2bf20
jae 0x50be8d
call sub.kernel32.dll_GetTickCount_1
mov dword [edi + 0x10], eax
mov ebx, 0xfffffffe
jmp 0x50bfc4
lea eax, [ebp - 0x12c]
mov edx, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00405578
lea edx, [ebp - 0x12c]
lea eax, [esi + 0x79]
mov cl, 0x10
call fcn.00403a88
lea eax, [ebp - 0x12c]
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.00405578
lea edx, [ebp - 0x12c]
lea eax, [esi + 0x8a]
mov cl, 0xa
call fcn.00403a88
mov edx, dword [0x507da4]
mov eax, 0x14
call fcn.004061b4
mov edi, eax
mov word [edi], 0x66
mov dword [edi + 4], ebx
lea eax, [edi + 8]
mov edx, dword [ebp - 0x14]
call fcn.00405330
mov dword [edi + 0xc], esi
push 0
lea eax, [edi + 0x10]
mov ecx, 1
mov edx, dword [0x507d84]
call fcn.004065d8
add esp, 4
mov eax, dword [0x523364]
mov eax, dword [eax]
mov edx, edi
call fcn.0050308c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50c016
mov ebx, 0xfffffffc
jmp 0x50bf3d
mov ebx, 0xfffffffd
test ebx, ebx
je 0x50bf80
lea eax, [ebp - 0x130]
lea edx, [esi + 0x79]
call fcn.00405540
mov edx, dword [ebp - 0x130]
mov cl, 1
mov eax, dword [ebp - 0x18]
call fcn.0050e0a8
mov edi, eax
cmp ebx, 1
jne 0x50bf75
xor eax, eax
mov dword [edi + 0xc], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [edi + 0x10], eax
jmp 0x50bf80
inc dword [edi + 0xc]
call sub.kernel32.dll_GetTickCount_1
mov dword [edi + 0x10], eax
cmp ebx, 1
jne 0x50bfc4
push 0
push 0
lea eax, [ebp - 0x24]
push eax
xor ecx, ecx
xor edx, edx
mov ax, 0x1fa
call fcn.005021a4
lea eax, [esi + 0x113]
push eax
lea edx, [ebp - 0x134]
mov eax, 0x50bd6c
call fcn.0040719c
mov edx, dword [ebp - 0x134]
lea ecx, [esi + 0x79]
mov eax, dword [ebp - 0x18]
call fcn.0050e9ac
jmp 0x50bfd9
push 0
push 0
lea eax, [ebp - 0x24]
push eax
xor ecx, ecx
mov edx, ebx
mov ax, 0x1fb
call fcn.005021a4
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x24]
call fcn.005023b0
mov ecx, dword [ebp - 0x138]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x3c]
call fcn.0050de9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50c016
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c050
lea eax, [ebp - 0x138]
mov edx, 3
call fcn.00405300
lea eax, [ebp - 0x28]
call fcn.004052dc
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00405300
ret