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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
test dl, dl
je 0x50aeb7
add esp, 0xfffffff0
call fcn.00404244
mov byte [ebp - 1], dl
mov ebx, eax
mov edi, dword [0x53ea98]
xor eax, eax
mov dword [ebx + 0x28], eax
xor eax, eax
mov dword [ebx + 0x2c], eax
xor eax, eax
mov dword [ebx + 0x30], eax
xor eax, eax
mov dword [ebx + 0x34], eax
xor eax, eax
mov dword [ebx + 0x38], eax
xor eax, eax
mov dword [ebx + 0x3c], eax
xor eax, eax
mov dword [ebx + 0x40], eax
xor eax, eax
mov dword [ebx + 8], eax
xor eax, eax
mov dword [ebx + 0xc], eax
xor eax, eax
mov dword [ebx + 0x10], eax
mov dl, 1
mov eax, dword [0x416d0c]
call fcn.00403edc
mov dword [ebx + 0x64], eax
mov dl, 1
mov eax, dword [0x416d0c]
call fcn.00403edc
mov dword [ebx + 0x34d8], eax
mov dl, 1
mov eax, dword [0x416d0c]
call fcn.00403edc
mov dword [ebx + 0x34dc], eax
mov dl, 1
mov eax, dword [0x416d0c]
call fcn.00403edc
mov dword [ebx + 0x34e0], eax
mov dl, 1
mov eax, dword [0x416d0c]
call fcn.00403edc
mov dword [ebx + 0x34e4], eax
mov dl, 1
mov eax, dword [0x416d0c]
call fcn.00403edc
mov dword [ebx + 0x34e8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x34ec], eax
mov byte [ebx + 0x34f0], 0
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dl, 1
mov eax, dword [0x42f784]
call fcn.00431ea4
mov esi, eax
mov dword [ebx + 0x34cc], esi
mov edx, dword [edi]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
xor edx, edx
mov eax, esi
call fcn.00431210
xor edx, edx
mov eax, esi
call fcn.0043b80c
mov dl, 1
mov eax, esi
call fcn.0044226c
xor edx, edx
mov eax, esi
call fcn.0043b05c
mov edx, 0xfa
mov eax, esi
call fcn.0043b080
mov edx, 0x12c
mov eax, esi
call fcn.0043b0a8
mov edx, 0x96
mov eax, esi
call fcn.0043b0cc
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dl, 1
mov eax, dword [0x42ecb0]
call fcn.00431134
mov esi, eax
mov dword [ebx + 0x34d0], esi
mov edx, dword [edi]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov dl, 1
mov eax, esi
call fcn.00431210
xor edx, edx
mov eax, esi
call fcn.0043b80c
mov edx, 0x46
mov eax, esi
call fcn.0043125c
mov dl, 1
mov eax, esi
call fcn.0044226c
mov edx, dword [0x53e5d4]
mov edx, dword [edx]
sub edx, 0xc2
sar edx, 1
jns 0x50b037
adc edx, 0
mov eax, esi
call fcn.0043b05c
mov edx, dword [0x53e5c4]
mov edx, dword [edx]
sub edx, 0xc8
mov eax, esi
call fcn.0043b080
mov edx, 0xc
mov eax, esi
call fcn.0043b0cc
mov edx, 0xc2
mov eax, esi
call fcn.0043b0a8
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dl, 1
mov eax, dword [0x42ecb0]
call fcn.00431134
mov esi, eax
mov dword [ebx + 0x34d4], esi
mov edx, dword [edi]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov dl, 1
mov eax, esi
call fcn.00431210
xor edx, edx
mov eax, esi
call fcn.0043b80c
mov edx, 0x46
mov eax, esi
call fcn.0043125c
mov dl, 1
mov eax, esi
call fcn.0044226c
mov edx, dword [0x53e5d4]
mov edx, dword [edx]
sub edx, 0xc2
sar edx, 1
jns 0x50b0c9
adc edx, 0
mov eax, esi
call fcn.0043b05c
mov edx, dword [0x53e5c4]
mov edx, dword [edx]
sub edx, 0xb0
mov eax, esi
call fcn.0043b080
mov edx, 0xc
mov eax, esi
call fcn.0043b0cc
mov edx, 0xc2
mov eax, esi
call fcn.0043b0a8
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x48], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x50], eax
xor eax, eax
mov dword [ebx + 0x54], eax
xor eax, eax
mov dword [ebx + 0x4c], eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dl, 1
mov eax, dword [0x432f30]
call fcn.0043361c
mov esi, eax
mov dword [ebx + 0x60], esi
push ebx
push 0x50b2d4
mov eax, esi
call fcn.004337c4
mov edx, 1
mov eax, esi
call fcn.004337b4
xor edx, edx
mov eax, esi
call fcn.004337a4
mov eax, ebx
cmp byte [ebp - 1], 0
je 0x50b166
call fcn.0040429c
pop dword fs:[0]
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret