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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
mov eax, dword [0x1006d004]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push esi
push edi
lea eax, [esp + 0x60]
mov dword [esp + 0x34], 0
xorps xmm0, xmm0
mov ebx, ecx
push eax
movq qword [esp + 0x64], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
lea eax, [esp + 0x34]
mov esi, dword [ebx]
push eax
push 0
push 0
divsd xmm0, qword [0x1006f440]
mov esi, dword [esi + 0x48]
mov ecx, esi
push 0
push ebx
movsd qword [esp + 0x24], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x2c], xmm0
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x3c], xmm0
call dword [0x100572e4]
call esi
test eax, eax
js 0x10002305
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x38]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x100572e4]
call esi
test eax, eax
js 0x10001fa5
mov esi, dword [esp + 0x38]
cmp esi, 0x15
je 0x10001e8f
cmp esi, 0x16
je 0x10001e80
cmp esi, 0x20
je 0x10001e80
cmp esi, 0x21
je 0x10001e80
mov esi, 0x15
jmp 0x10001e8f
cmp esi, 0x15
je 0x10001e8f
mov eax, 2
cmp esi, 0x16
jne 0x10001e94
mov eax, 1
mov edx, dword [esp + 0x50]
push eax
push dword [esp + 0x58]
call fcn.1000cfc0
cmp dword [0x1006f078], 0
mov ecx, dword [esp + 0x48]
je 0x10001ebf
test eax, eax
jne 0x10001ebf
cmp ecx, dword [0x1006f088]
je 0x10001fa5
push ecx
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push str.DirectX9::GrabBackBuffer__:_DisplayMode__ux_u__Format_d__Multisampling_d
push 0xc8
call fcn.10009530
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x50]
add esp, 0x18
mov dword [esp + 0x38], esi
mov ecx, ebx
mov dword [0x1006f088], eax
call fcn.10001c50
test eax, eax
je 0x10001f4c
call fcn.100059a0
test eax, eax
je 0x10001f5e
cmp dword [0x1006ec50], 0
jle 0x100022f1
mov eax, dword [0x1006ec58]
cmp dword [eax + 0x2b276], 5
je 0x10001f3b
mov eax, dword [0x1006ec58]
push 5
mov eax, dword [eax + 0x2b276]
push eax
push str.SetDirectXHookStatus__u_____u
push 0x64
call fcn.10009530
add esp, 0x10
mov eax, dword [0x1006ec58]
mov dword [eax + 0x2b276], 5
jmp 0x10001fa5
push str.DirectX9::GrabBackBuffer__:_CreateGrabSurface_failed
push 0xc8
call fcn.10009530
add esp, 8
cmp dword [0x1006ec50], 0
jle 0x100022f1
mov eax, dword [0x1006ec58]
cmp dword [eax + 0x2b276], 3
je 0x10001f96
mov eax, dword [0x1006ec58]
push 3
mov eax, dword [eax + 0x2b276]
push eax
push str.SetDirectXHookStatus__u_____u
push 0x64
call fcn.10009530
add esp, 0x10
mov eax, dword [0x1006ec58]
mov dword [eax + 0x2b276], 3
cmp dword [0x1006ec50], 0
jle 0x100022f1
mov eax, dword [0x1006ec58]
mov eax, dword [eax + 0x2b276]
cmp eax, 5
jne 0x100022f1
cmp dword [esp + 0x48], 0
mov edi, dword [esp + 0x34]
je 0x1000203a
mov eax, dword [0x1006f08c]
add eax, 2
and eax, 0x80000001
jns 0x10001fe5
dec eax
or eax, 0xfffffffe
inc eax
mov esi, dword [ebx]
push 0
push 0
push dword [eax*4 + 0x1006f080]
mov esi, dword [esi + 0x88]
mov ecx, esi
push 0
push edi
push ebx
call dword [0x100572e4]
call esi
test eax, eax
js 0x10002027
mov eax, dword [0x1006f08c]
add eax, 2
and eax, 0x80000001
jns 0x1000201e
dec eax
or eax, 0xfffffffe
inc eax
mov edi, dword [eax*4 + 0x1006f080]
jmp 0x1000203a
push eax
push str.DirectX9::GrabBackBuffer__:_StretchRect_failed__hr_X
push 0xc8
call fcn.10009530
add esp, 0xc
lea eax, [esp + 0x60]
xorps xmm0, xmm0
push eax
movq qword [esp + 0x64], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
mov eax, dword [0x1006f08c]
add eax, 2
divsd xmm0, qword [0x1006f440]
movsd qword [esp + 0x18], xmm0
and eax, 0x80000001
jns 0x10002085
dec eax
or eax, 0xfffffffe
inc eax
mov esi, dword [ebx]
push dword [eax*4 + 0x1006f078]
push edi
mov esi, dword [esi + 0x80]
mov ecx, esi
push ebx
call dword [0x100572e4]
call esi
mov esi, eax
xorps xmm0, xmm0
lea eax, [esp + 0x60]
movq qword [esp + 0x60], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
divsd xmm0, qword [0x1006f440]
subsd xmm0, qword [esp + 0x18]
addsd xmm0, qword [0x1006a3b8]
movsd qword [esp + 0x18], xmm0
test esi, esi
js 0x100022c5
mov eax, dword [0x1006f08c]
xorps xmm1, xmm1
inc eax
movlpd qword [esp + 0x60], xmm1
and eax, 0x80000001
jns 0x1000210a
dec eax
or eax, 0xfffffffe
inc eax
mov edi, dword [eax*4 + 0x1006f078]
xorps xmm0, xmm0
lea eax, [esp + 0x58]
movq qword [esp + 0x58], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
lea eax, [esp + 0x60]
mov esi, dword [edi]
push 0x8810
push 0
push eax
divsd xmm0, qword [0x1006f440]
mov esi, dword [esi + 0x34]
mov ecx, esi
push edi
movsd qword [esp + 0x30], xmm0
call dword [0x100572e4]
call esi
mov esi, eax
xorps xmm0, xmm0
lea eax, [esp + 0x58]
movq qword [esp + 0x58], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
divsd xmm0, qword [0x1006f440]
subsd xmm0, qword [esp + 0x20]
addsd xmm0, qword [0x1006a3b8]
movsd qword [esp + 0x20], xmm0
test esi, esi
js 0x100022bd
lea eax, [esp + 0x58]
xorps xmm1, xmm1
push eax
movq qword [esp + 0x5c], xmm1
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
divsd xmm0, qword [0x1006f440]
lea eax, [edx*4]
movsd qword [esp + 0x28], xmm0
cmp ecx, eax
jne 0x1000226f
imul edx, dword [esp + 0x54]
shl edx, 2
push edx
push dword [esp + 0x68]
push dword [0x1006f4c0]
call fcn.10017430
add esp, 0xc
lea eax, [esp + 0x58]
xorps xmm0, xmm0
push eax
movq qword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
mov eax, dword [edi]
push edi
divsd xmm0, qword [0x1006f440]
mov esi, dword [eax + 0x38]
mov ecx, esi
subsd xmm0, qword [esp + 0x2c]
addsd xmm0, qword [0x1006a3b8]
movsd qword [esp + 0x2c], xmm0
call dword [0x100572e4]
call esi
jmp 0x100022d8
xor esi, esi
cmp dword [esp + 0x54], esi
jbe 0x10002218
nop word [eax + eax]
lea eax, [edx*4]
push eax
mov eax, esi
imul eax, ecx
mov ecx, esi
imul ecx, edx
add eax, dword [esp + 0x68]
push eax
mov eax, dword [0x1006f4c0]
lea eax, [eax + ecx*4]
push eax
call fcn.10017430
inc esi
add esp, 0xc
cmp esi, dword [esp + 0x54]
jae 0x10002218
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
jmp 0x10002280
push esi
push str.DirectX9::GrabBackBuffer__:_LockRect_failed__hr_X
jmp 0x100022cb
push esi
push str.DirectX9::GrabBackBuffer__:_GetRenderTargetData_failed__hr_X
push 0xc8
call fcn.10009530
add esp, 0xc
mov eax, dword [0x1006f08c]
add eax, 3
and eax, 0x80000001
jns 0x100022ec
dec eax
or eax, 0xfffffffe
inc eax
mov dword [0x1006f08c], eax
mov eax, dword [esp + 0x34]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100572e4]
call esi
cmp dword [0x1006ec50], 0
jle 0x100026d9
mov eax, dword [0x1006ec58]
test eax, eax
je 0x100026d9
cmp dword [eax + 0x1000e], 0x64
jg 0x100026d9
lea eax, [esp + 0x58]
xorps xmm0, xmm0
push eax
movq qword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
add dword [0x1006f450], 1
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
adc dword [0x1006f454], 0
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
lea eax, [esp + 0x58]
push eax
divsd xmm0, qword [0x1006f440]
subsd xmm0, qword [esp + 0x14]
addsd xmm0, qword [0x1006f458]
movsd qword [0x1006f458], xmm0
xorps xmm0, xmm0
movq qword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
divsd xmm0, qword [0x1006f440]
movsd qword [esp + 0x58], xmm0
subsd xmm0, qword [0x1006f448]
comisd xmm0, xmmword [0x1006a3c8]
movsd qword [esp + 0x10], xmm0
jbe 0x1000243c
mov edx, dword [0x1006f454]
mov ecx, dword [0x1006f450]
call fcn.100561b0
movaps xmm1, xmm0
sub esp, 0x10
mulsd xmm1, qword [0x1006a3c0]
divsd xmm1, qword [esp + 0x20]
movsd qword [esp + 8], xmm1
movsd xmm1, qword [0x1006f458]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push str.DirectX9::GrabBackBuffer__:_total_time_1.0f___1.1ffps
push 0x64
call fcn.10009530
movsd xmm0, qword [esp + 0x70]
add esp, 0x18
movsd qword [0x1006f448], xmm0
xorps xmm0, xmm0
movlpd qword [0x1006f450], xmm0
movsd qword [0x1006f458], xmm0
movsd xmm0, qword [esp + 0x18]
lea eax, [esp + 0x58]
addsd xmm0, qword [0x1006f470]
add dword [0x1006f468], 1
push eax
adc dword [0x1006f46c], 0
movsd qword [0x1006f470], xmm0
xorps xmm0, xmm0
movq qword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
divsd xmm0, qword [0x1006f440]
movsd qword [esp + 0x18], xmm0
subsd xmm0, qword [0x1006f460]
comisd xmm0, xmmword [0x1006a3c8]
movsd qword [esp + 0x10], xmm0
jbe 0x1000251b
mov edx, dword [0x1006f46c]
mov ecx, dword [0x1006f468]
call fcn.100561b0
movaps xmm1, xmm0
sub esp, 0x10
mulsd xmm1, qword [0x1006a3c0]
divsd xmm1, qword [esp + 0x20]
movsd qword [esp + 8], xmm1
movsd xmm1, qword [0x1006f470]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push str.DirectX9::GrabBackBuffer__:_copy_surface_time_1.0f
push 0x64
call fcn.10009530
movsd xmm0, qword [esp + 0x30]
add esp, 0x18
movsd qword [0x1006f460], xmm0
xorps xmm0, xmm0
movlpd qword [0x1006f468], xmm0
movsd qword [0x1006f470], xmm0
movsd xmm0, qword [esp + 0x20]
lea eax, [esp + 0x58]
addsd xmm0, qword [0x1006f488]
add dword [0x1006f480], 1
push eax
adc dword [0x1006f484], 0
movsd qword [0x1006f488], xmm0
xorps xmm0, xmm0
movq qword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
divsd xmm0, qword [0x1006f440]
movsd qword [esp + 0x20], xmm0
subsd xmm0, qword [0x1006f478]
comisd xmm0, xmmword [0x1006a3c8]
movsd qword [esp + 0x10], xmm0
jbe 0x100025fa
mov edx, dword [0x1006f484]
mov ecx, dword [0x1006f480]
call fcn.100561b0
movaps xmm1, xmm0
sub esp, 0x10
mulsd xmm1, qword [0x1006a3c0]
divsd xmm1, qword [esp + 0x20]
movsd qword [esp + 8], xmm1
movsd xmm1, qword [0x1006f488]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push str.DirectX9::GrabBackBuffer__:_lock_time_1.0f
push 0x64
call fcn.10009530
movsd xmm0, qword [esp + 0x38]
add esp, 0x18
movsd qword [0x1006f478], xmm0
xorps xmm0, xmm0
movlpd qword [0x1006f480], xmm0
movsd qword [0x1006f488], xmm0
movsd xmm0, qword [esp + 0x28]
lea eax, [esp + 0x58]
addsd xmm0, qword [0x1006f4a0]
add dword [0x1006f498], 1
push eax
adc dword [0x1006f49c], 0
movsd qword [0x1006f4a0], xmm0
xorps xmm0, xmm0
movq qword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
call fcn.10056210
mulsd xmm0, qword [0x1006a3c0]
divsd xmm0, qword [0x1006f440]
movsd qword [esp + 0x28], xmm0
subsd xmm0, qword [0x1006f490]
comisd xmm0, xmmword [0x1006a3c8]
movsd qword [esp + 0x10], xmm0
jbe 0x100026d9
mov edx, dword [0x1006f49c]
mov ecx, dword [0x1006f498]
call fcn.100561b0
movaps xmm1, xmm0
sub esp, 0x10
mulsd xmm1, qword [0x1006a3c0]
divsd xmm1, qword [esp + 0x20]
movsd qword [esp + 8], xmm1
movsd xmm1, qword [0x1006f4a0]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push str.DirectX9::GrabBackBuffer__:_memcpy_time_1.0f
push 0x64
call fcn.10009530
movsd xmm0, qword [esp + 0x40]
add esp, 0x18
movsd qword [0x1006f490], xmm0
xorps xmm0, xmm0
movlpd qword [0x1006f498], xmm0
movsd qword [0x1006f4a0], xmm0
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000dfef
mov esp, ebp
pop ebp
ret