Function at 0x4461b0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
mov eax, dword [0x49c00c]
xor eax, esp
mov dword [esp + 0x10], eax
push ebx
mov bl, byte [ebp + 8]
xor edx, edx
test bl, bl
push esi
setne dl
mov esi, ecx
push edi
mov dword [esp + 0xc], esi
lea ecx, [edx*2 - 1]
add ecx, dword [0x49fce8]
mov dword [0x49fce8], ecx
sete al
test bl, bl
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov byte [esi + 0x9d], al
je 0x44632e
cmp ecx, 1
jne 0x44632e
cmp byte [esi + 0xa4], 0
je 0x44632e
cmp dword [0x49fd28], 0
jne 0x446265
lea eax, [esp + 0x10]
mov dword [0x49fd28], ecx
push eax
call ebx
mov edi, eax
mov dword [0x49fd38], edi
test edi, edi
je 0x4462cb
mov edx, dword [esp + 0x10]
mov eax, edx
mov esi, dword [esp + 0x14]
mov ecx, esi
shld ecx, eax, 1
add eax, eax
add edx, eax
mov dword [0x49fd00], edx
adc esi, ecx
mov dword [0x49fd04], esi
mov esi, dword [esp + 0xc]
jmp 0x44626b
mov edi, dword [0x49fd38]
test edi, edi
je 0x4462cb
mov ecx, dword [0x49fd20]
mov eax, ecx
mov edx, dword [0x49fd24]
or eax, edx
jne 0x44629a
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [0x49fd38]
cmp dword [0x49d960], 0
jne 0x446334
mov dword [0x49fd20], ecx
mov dword [0x49fd24], edx
mov dword [0x49fd10], ecx
mov dword [0x49fd14], edx
mov dword [0x49d960], 1
jmp 0x446334
movsd xmm0, qword [0x49fd30]
ucomisd xmm0, qword [0x4867e8]
lahf
test ah, 0x44
jp 0x446309
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edi, dword [0x49fd38]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x486a90]
mulsd xmm0, qword [0x486840]
cmp dword [0x49d960], 0
jne 0x446334
movsd qword [0x49fd30], xmm0
movsd qword [0x49fd08], xmm0
mov dword [0x49d960], 1
jmp 0x446334
mov edi, dword [0x49fd38]
cmp dword [0x49fce8], 0
jne 0x44644e
cmp byte [esi + 0xa4], 0
je 0x44644e
cmp dword [0x49fd28], 0
jne 0x446396
lea eax, [esp + 0x10]
mov dword [0x49fd28], 1
push eax
call ebx
mov edi, eax
mov dword [0x49fd38], edi
test edi, edi
je 0x4463eb
mov edx, dword [esp + 0x10]
mov eax, edx
mov esi, dword [esp + 0x14]
mov ecx, esi
shld ecx, eax, 1
add eax, eax
add edx, eax
mov dword [0x49fd00], edx
adc esi, ecx
mov dword [0x49fd04], esi
test edi, edi
je 0x4463eb
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp dword [0x49d960], 0
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
je 0x4463d2
mov ecx, esi
mov eax, edx
sub ecx, dword [0x49fd20]
sbb eax, dword [0x49fd24]
add dword [0x49fd18], ecx
adc dword [0x49fd1c], eax
xorps xmm0, xmm0
mov dword [0x49fd10], esi
movlpd qword [0x49fd20], xmm0
mov dword [0x49fd14], edx
jmp 0x446444
call dword [sym.imp.WINMM.dll_timeGetTime]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
cmp dword [0x49d960], 0
addsd xmm1, qword [eax*8 + 0x486a90]
mulsd xmm1, qword [0x486840]
je 0x446431
movaps xmm0, xmm1
subsd xmm0, qword [0x49fd30]
addsd xmm0, qword [0x49fd40]
movsd qword [0x49fd40], xmm0
xorps xmm0, xmm0
movsd qword [0x49fd08], xmm1
movsd qword [0x49fd30], xmm0
mov dword [0x49d960], 0
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0046c079
mov esp, ebp
pop ebp
ret 4