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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x5e8
mov rax, qword [0x140346038]
xor rax, rsp
mov qword [rsp + 0x5e0], rax
cmp qword [rcx + 0x28], 0
je 0x1400ab67b
mov rbx, rcx
lea r14, [rsp + 0x70]
mov r8d, 0x540
mov rcx, r14
mov dl, 0xaa
call fcn.140159120
mov qword [r14 - 8], 0
cmp qword [rbx + 0x10], 0
je 0x1400ab67b
xor r15d, r15d
lea r12, [0x140042220]
mov rcx, qword [rbx]
mov rdx, qword [rcx]
mov rax, qword [rcx + 8]
inc rax
cmp rax, rdx
mov r8, rax
cmove r8, r15
mov r13, qword [rcx + 0x18]
imul rsi, r8, 0xa8
mov rcx, qword [r13 + rsi]
test rcx, rcx
je 0x1400ab69c
mov rax, qword [rcx + 0x18]
cmp rax, r12
je 0x1400ab61a
xor edx, edx
call qword [0x14037e008]
test al, al
jne 0x1400ab68b
cmp qword [r13 + rsi + 0xa0], 0
je 0x1400ab639
mov rax, qword [r13 + rsi + 0x98]
test rax, rax
je 0x1400ab68b
mov al, byte [rax + 4]
test al, al
jne 0x1400ab68b
mov rax, qword [rsp + 0x68]
cmp rax, 2
jae 0x1400ab8a3
cmp rax, 2
setae sil
test rax, rax
jne 0x1400ab67f
mov rcx, qword [rsp + 0x5e0]
xor rcx, rsp
call fcn.140156fe0
mov eax, esi
add rsp, 0x5e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x1400ab655
lea rcx, [rsp + 0x68]
call fcn.14026b5c0
jmp 0x1400ab655
mov rax, qword [rbx]
mov r13, qword [rax + 0x18]
mov rdx, qword [rax]
mov rax, qword [rax + 8]
inc rax
cmp rax, rdx
mov edx, 0
cmovne rdx, rax
mov rcx, qword [rsp + 0x68]
mov r8d, 8
test cl, 1
je 0x1400ab6bd
mov r8, qword [rsp + 0x78]
imul rax, rdx, 0xa8
lea rdx, [rax + r13]
mov r9, rcx
shr r9, 1
cmp r9, r8
je 0x1400ab86c
mov r8, r14
test cl, 1
je 0x1400ab6e4
mov r8, qword [rsp + 0x70]
imul r9, r9, 0xa8
mov r10, r8
add r10, r9
je 0x1400abe68
mov rcx, qword [rdx]
mov qword [r10], rcx
mov qword [rdx], r15
movups xmm0, xmmword [rdx + 8]
movups xmm1, xmmword [rdx + 0x18]
movups xmmword [r10 + 0x18], xmm1
movups xmmword [r10 + 8], xmm0
lea rdi, [r10 + 0x28]
lea rsi, [rdx + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rdx + 0x7c]
mov byte [r10 + 0x7c], cl
mov ecx, dword [rdx + 0x78]
mov dword [r10 + 0x78], ecx
movzx ecx, word [r13 + rax + 0x80]
mov word [r8 + r9 + 0x80], cx
mov cl, byte [r13 + rax + 0x82]
mov byte [r8 + r9 + 0x82], cl
mov rcx, qword [r13 + rax + 0x88]
mov qword [r8 + r9 + 0x88], rcx
mov qword [r13 + rax + 0x88], r15
mov rcx, qword [r13 + rax + 0x90]
mov qword [r8 + r9 + 0x90], rcx
mov rcx, qword [r13 + rax + 0x98]
mov qword [r8 + r9 + 0x98], rcx
mov qword [r13 + rax + 0x98], r15
mov rax, qword [r13 + rax + 0xa0]
mov qword [r8 + r9 + 0xa0], rax
add qword [rsp + 0x68], 2
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
inc rcx
cmp rcx, qword [rax]
mov rdi, qword [rax + 0x18]
mov edx, 0
cmovne rdx, rcx
mov qword [rax + 8], rdx
imul r13, rdx, 0xa8
mov rcx, qword [rdi + r13 + 0x98]
test rcx, rcx
je 0x1400ab7e4
lock dec dword [rcx]
jne 0x1400ab7e4
call fcn.140153bcc
mov rsi, qword [rdi + r13 + 0x88]
test rsi, rsi
jne 0x1400ab821
add rdi, r13
mov rcx, qword [rdi]
test rcx, rcx
jne 0x1400ab85b
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
jne 0x1400ab812
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x1400ab87b
dec qword [rbx + 0x10]
jne 0x1400ab5d5
jmp 0x1400ab639
lock dec dword [rsi + 8]
jne 0x1400ab7f1
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x140240070]
cmp qword [rcx + 0x10], rdx
jne 0x1400ab84b
lea rcx, [0x14026b450]
cmp rax, rcx
je 0x1400abbcf
mov rcx, rsi
mov edx, 1
call qword [0x14037e008]
jmp 0x1400ab7f1
lock dec dword [rcx]
jne 0x1400ab7fc
mov rax, qword [rcx + 0x10]
call qword [0x14037e008]
jmp 0x1400ab7fc
lea rcx, [rsp + 0x68]
call fcn.14026b700
jmp 0x1400ab7a8
mov qword [rax + 0x20], 0
mov rsi, qword [rbx]
mov qword [rbx], rcx
test rsi, rsi
je 0x1400ab812
mov rcx, rsi
call fcn.1400644c0
mov rcx, rsi
call fcn.140153bcc
jmp 0x1400ab812
cmp qword [rbx + 0x10], 0
jne 0x1400abb16
movabs r12, 0xaaaaaaaaaaaaaaaa
movabs r15, 0x8637bd05af7
cmp dword [rbx + 0x78], 0
jne 0x1400aba4c
mov r13, qword [rbx + 0x30]
cmp qword [rbx + 8], 0
je 0x1400ab996
mov qword [rsp + 0x50], r12
mov rax, qword [0x140356358]
lea rcx, [0x140038290]
cmp rax, rcx
jne 0x1400abd11
lea rsi, [rsp + 0x5b0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x1400ab93b
mov rcx, qword [0x1403627d8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400ab94b
imul rax, rax, 0xf4240
cqo
idiv qword [0x1403627d8]
mov qword [rsp + 0x50], rax
cmp rax, qword [rbx + 0x20]
jl 0x1400ab996
mov rax, qword [rbx + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 0x18], rcx
test rax, rax
je 0x1400ab996
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x1400ab981
cmp rcx, r8
jb 0x1400abce8
lea rsi, [r13 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400ab9b0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rbx]
mov rcx, qword [r13 + 0x28]
mov qword [rbx], rcx
mov qword [r13 + 0x28], rax
mov rax, qword [rbx + 8]
mov rcx, qword [r13 + 0x30]
mov qword [rbx + 8], rcx
mov qword [r13 + 0x30], rax
mov rax, qword [rbx + 0x10]
mov rcx, qword [r13 + 0x38]
mov qword [rbx + 0x10], rcx
mov qword [r13 + 0x38], rax
mov rax, qword [rbx + 0x18]
mov rcx, qword [r13 + 0x40]
mov qword [rbx + 0x18], rcx
mov qword [r13 + 0x40], rax
mov rax, qword [rbx + 0x20]
mov rcx, qword [r13 + 0x48]
mov qword [rbx + 0x20], rcx
mov qword [r13 + 0x48], rax
cmp byte [r13 + 0x158], 0
jne 0x1400abb40
mov rax, qword [r13 + 0xb8]
cmp qword [rax + 0x10], 0
sete byte [r13 + 0x50]
cmp qword [r13 + 0xa8], 0
mov al, byte [r13 + 0x128]
jne 0x1400aba3f
test al, al
je 0x1400abab7
mov al, byte [r13 + 0x130]
xor al, 1
mov byte [r13 + 0x51], al
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rbx + 8], 0
je 0x1400abb16
mov qword [rsp + 0x50], r12
mov rax, qword [0x140356358]
lea rcx, [0x140038290]
cmp rax, rcx
jne 0x1400abcd2
lea rsi, [rsp + 0x5b0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x1400ababb
mov rcx, qword [0x1403627d8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400abacb
xor eax, eax
jmp 0x1400aba3f
imul rax, rax, 0xf4240
cqo
idiv qword [0x1403627d8]
mov qword [rsp + 0x50], rax
cmp rax, qword [rbx + 0x20]
jl 0x1400abb16
mov rax, qword [rbx + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 0x18], rcx
test rax, rax
je 0x1400abb16
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x1400abb01
cmp rcx, r8
jb 0x1400abca9
cmp qword [rbx + 0x40], 0xffffffffffffffff
je 0x1400abb29
mov rcx, qword [rbx + 0x28]
mov rdx, rbx
call fcn.1400f0920
test byte [0x140355d30], 9
jne 0x1400abd2e
mov rax, qword [rsp + 0x68]
jmp 0x1400ab648
movaps xmm0, xmmword [0x1402fccc0]
lea rdi, [rsp + 0x50]
movaps xmmword [rdi], xmm0
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.14026b550
mov rax, qword [rdi]
test rax, rax
je 0x1400abbcb
lea r14, [rsp + 0x50]
xor edi, edi
cmp byte [r13 + 0x158], 0
je 0x1400abd29
imul rdx, qword [rsp + 0x58], 0xa8
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + rdx + 0x28]
cmp rax, qword [r13 + 0x160]
jge 0x1400abc04
mov rcx, r14
call fcn.1400bca60
mov rax, qword [rsp + 0x50]
test rax, rax
jne 0x1400abb69
movabs rax, 0xfffffffc00000000
and rax, rdi
cmp rax, qword [0x140346fc8]
jne 0x1400aba0c
mov rcx, rdi
call fcn.140151ea0
jmp 0x1400aba0c
xor edi, edi
jmp 0x1400abba4
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x1400abbe2
lock dec dword [rcx]
jne 0x1400abbe2
call fcn.140153bcc
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x1400abbf0
lock dec dword [rcx]
je 0x1400abbfd
mov rcx, rsi
call fcn.140153bcc
jmp 0x1400ab7f1
call fcn.140101af0
jmp 0x1400abbf0
add rcx, rdx
mov byte [r13 + 0x158], 0
lea rdi, [rsp + 0x5b0]
mov rdx, rdi
call fcn.1401064b0
lea r14, [r13 + 0x138]
cmp byte [r13 + 0x130], 0
movups xmm0, xmmword [rdi]
movups xmmword [r13 + 0x138], xmm0
mov eax, dword [rdi + 0x10]
mov dword [r13 + 0x148], eax
jne 0x1400abc4d
mov byte [r13 + 0x130], 1
mov rcx, qword [r13 + 0xb8]
mov eax, dword [r14 + 0x10]
lea rdx, [rsp + 0x5b0]
mov dword [rdx + 0x10], eax
movups xmm0, xmmword [r14]
movaps xmmword [rdx], xmm0
call fcn.14026c860
cmp byte [r13 + 0x130], 0
je 0x1400abd27
mov rcx, qword [r13 + 0xb0]
mov eax, dword [r14 + 0x10]
lea rdx, [rsp + 0x5b0]
mov dword [rdx + 0x10], eax
movups xmm0, xmmword [r14]
movaps xmmword [rdx], xmm0
call fcn.14026c860
mov rdi, qword [rsp + 0x50]
jmp 0x1400abba4
mov rcx, rbx
call fcn.1401d2090
mov eax, 0x4c4b40
add rax, qword [rsp + 0x50]
movabs rcx, 0x7fffffffffffffff
cmovno rcx, rax
mov qword [rbx + 0x20], rcx
jmp 0x1400abb16
lea rsi, [rsp + 0x50]
mov rcx, rsi
call qword [0x14037e008]
mov rax, qword [rsi]
jmp 0x1400abad0
mov rcx, rbx
call fcn.1401d2090
mov eax, 0x4c4b40
add rax, qword [rsp + 0x50]
movabs rcx, 0x7fffffffffffffff
cmovno rcx, rax
mov qword [rbx + 0x20], rcx
jmp 0x1400ab996
lea rsi, [rsp + 0x50]
mov rcx, rsi
call qword [0x14037e008]
mov rax, qword [rsi]
jmp 0x1400ab950
ud2
call fcn.1401e1808
mov rbx, qword [rbx + 0x30]
mov rax, qword [rbx + 0x10]
mov edi, dword [rax + 4]
lea rsi, [rsp + 0x5b0]
mov rcx, rsi
call fcn.140134cd0
cmp edi, dword [rsi]
jne 0x1400abb36
lea rdi, [rbx + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400abd6b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r12, qword [rbx + 0x38]
mov rax, qword [rbx + 0xb0]
mov rcx, qword [rbx + 0xb8]
mov r15, qword [rcx + 0x10]
mov r14, qword [rax + 0x10]
mov r13, qword [rbx + 0xd0]
mov rbp, qword [rbx + 0xc8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x140355d30], 0x19
je 0x1400abb36
sub r13, rbp
shr r13, 3
imul eax, r13d, 0x3cf3cf3d
add r15d, r12d
add r14d, eax
add r14d, r15d
mov ecx, dword [rbx]
call fcn.140103a40
mov rdi, rax
lea rbx, [rsp + 0x50]
mov rcx, rbx
call fcn.1400e35f0
call sub.KERNEL32.dll_GetCurrentThreadId
movaps xmm0, xmmword [0x1402fccc0]
movaps xmmword [rsp + 0x5b0], xmm0
movaps xmmword [rsp + 0x5c0], xmm0
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x5d0], rcx
mov word [rsp + 0x5b0], 0x301
lea rcx, [0x140307372]
mov qword [rsp + 0x5b8], rcx
movsxd rcx, r14d
mov qword [rsp + 0x5c8], rcx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
lea rdx, [0x140355d30]
mov cl, 0x43
mov r8, rdi
xor r9d, r9d
call fcn.1401bfdf0
mov rcx, rsi
call fcn.1400bf794
jmp 0x1400abb36
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x25
call fcn.1401bf470
int3