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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 9
push 0
push 0
dec ecx
jne 0x50b22d
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov esi, edx
mov edi, eax
mov eax, dword [ebp - 4]
call fcn.0040575c
xor eax, eax
push ebp
push 0x50b6f0
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x50b68d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
push eax
mov ecx, 0x10
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004057d4
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x50b288
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0xc]
push eax
mov ecx, ebx
sub ecx, 0x10
mov edx, 0x11
mov eax, dword [ebp - 4]
call fcn.004057d4
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.005021cc
movzx eax, word [ebp - 0x14]
cmp eax, 0x7d3
jg 0x50b2f3
je 0x50b4e1
cmp eax, 0x7d0
jg 0x50b2dc
je 0x50b373
sub eax, 0x68
je 0x50b330
sub eax, 0x161
je 0x50b64b
jmp 0x50b683
sub eax, 0x7d1
je 0x50b382
dec eax
je 0x50b48a
jmp 0x50b683
cmp eax, 0xbe2
jg 0x50b315
je 0x50b53c
sub eax, 0x7d8
je 0x50b382
sub eax, 0x26
je 0x50b60c
jmp 0x50b683
sub eax, 0xbe3
je 0x50b5c5
sub eax, 0x5cae
je 0x50b3f0
jmp 0x50b683
cmp byte [esi + 0x38], 0
jne 0x50b365
cmp byte [edi + 0x2b6], 0
je 0x50b345
cmp byte [esi + 0x5b], 0
je 0x50b365
cmp dword [esi + 0x178], 0
je 0x50b354
cmp byte [esi + 0x5c], 0
je 0x50b365
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050d7c4
jmp 0x50b683
mov edx, esi
mov eax, edi
call fcn.0050c11c
jmp 0x50b683
mov edx, dword [ebp - 0x18]
mov eax, esi
call fcn.0050c07c
jmp 0x50b683
cmp dword [esi], 0
jne 0x50b3e2
cmp byte [edi + 0x2b5], 0
je 0x50b3cc
cmp word [ebp - 0x14], 0x7d1
jne 0x50b3cc
push 0
push 0
lea eax, [ebp - 0x18]
push eax
xor ecx, ecx
or edx, 0xffffffff
mov ax, 0x1f7
call fcn.005021a4
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x18]
call fcn.005023b0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x3c]
call fcn.0050de9c
jmp 0x50b683
push 0x7fffffff
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050cd80
jmp 0x50b683
mov edx, esi
mov eax, edi
call fcn.0050c11c
jmp 0x50b683
cmp dword [esi], 0
je 0x50b683
cmp byte [edi + 0x2b6], 0
je 0x50b683
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.0050227c
mov eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
lea edx, [esi + 0x54]
call fcn.00405540
mov edx, dword [ebp - 0x24]
pop eax
call fcn.00405704
jne 0x50b43d
mov byte [esi + 0x5b], 1
mov edx, esi
mov eax, edi
call fcn.0050c7d0
jmp 0x50b683
push 0
push 0
lea eax, [ebp - 0x18]
push eax
xor ecx, ecx
xor edx, edx
mov ax, 0x2ff
call fcn.005021a4
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x18]
call fcn.005023b0
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x2c]
mov eax, 0x50b708
call fcn.00502414
mov edx, dword [ebp - 0x2c]
pop eax
call fcn.004055a8
mov ecx, dword [ebp - 0x28]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x3c]
call fcn.0050de9c
jmp 0x50b683
cmp byte [edi + 0x27d], 0
je 0x50b683
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x4c]
cmp eax, 0xbb8
jbe 0x50b4c4
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x4c], eax
push 0x7fffffff
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050b8b0
jmp 0x50b683
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x30]
mov edx, 0x50b72c
call fcn.004055f4
mov eax, dword [ebp - 0x30]
call fcn.0047a6e8
jmp 0x50b683
cmp dword [esi], 0
jne 0x50b530
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x4c]
cmp eax, 0xbb8
jbe 0x50b513
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x4c], eax
push 0x7fffffff
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050bd74
jmp 0x50b683
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x34]
mov edx, 0x50b74c
call fcn.004055f4
mov eax, dword [ebp - 0x34]
call fcn.0047a6e8
jmp 0x50b683
mov eax, esi
call fcn.004052dc
jmp 0x50b683
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x4c]
cmp eax, 0xbb8
jbe 0x50b5a8
cmp byte [edi + 0x284], 0
je 0x50b572
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x4c], eax
push 0x7fffffff
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050dad0
jmp 0x50b683
push 0
push 0
lea eax, [ebp - 0x18]
push eax
xor ecx, ecx
mov edx, 0xfffffffe
mov ax, 0xbbd
call fcn.005021a4
lea edx, [ebp - 0x38]
lea eax, [ebp - 0x18]
call fcn.005023b0
mov ecx, dword [ebp - 0x38]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x3c]
call fcn.0050de9c
jmp 0x50b683
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x3c]
mov edx, 0x50b76c
call fcn.004055f4
mov eax, dword [ebp - 0x3c]
call fcn.0047a6e8
jmp 0x50b683
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x4c]
cmp eax, 0xbb8
jbe 0x50b5f2
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x4c], eax
push 0x7fffffff
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050c344
jmp 0x50b683
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x40]
mov edx, 0x50b78c
call fcn.004055f4
mov eax, dword [ebp - 0x40]
call fcn.0047a6e8
jmp 0x50b683
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x4c]
cmp eax, 0xbb8
jbe 0x50b631
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x4c], eax
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov eax, edi
call fcn.0050c950
jmp 0x50b683
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x44]
mov edx, 0x50b7b0
call fcn.004055f4
mov eax, dword [ebp - 0x44]
call fcn.0047a6e8
jmp 0x50b683
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x4c]
cmp eax, 0xbb8
jbe 0x50b66b
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x4c], eax
mov eax, esi
call fcn.0050ad80
jmp 0x50b683
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x48]
mov edx, 0x50b7d0
call fcn.004055f4
mov eax, dword [ebp - 0x48]
call fcn.0047a6e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50b6c8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50b6f7
lea eax, [ebp - 0x50]
mov edx, 0xe
call fcn.00405300
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00405300
ret