Function at 0x1400d70f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov qword [rsp + 0x48], rdx
mov rax, r8
shr rax, 1
movabs rdx, 0x7ffff8fffffffffc
and rdx, rax
movabs rax, 0x70000000000
mov eax, dword [rdx + rax]
test eax, eax
je 0x1400d757f
mov edx, eax
and edx, 0x40000000
jne 0x1400d757f
mov r13d, r9d
mov rbp, qword [0x1402ea7c8]
and eax, 0x3fffffff
mov rdx, rax
shr rdx, 0xa
mov rdi, qword [rbp + rdx*8 + 0x200030]
and eax, 0x3ff
imul rbx, rax, 0x58
cmp qword [rdi + rbx], r8
je 0x1400d7186
mov eax, dword [rdi + rbx + 0x2c]
test eax, eax
je 0x1400d757f
mov edx, eax
and edx, 0x40000000
je 0x1400d7148
jmp 0x1400d757f
mov qword [rsp + 0x40], r8
movabs rsi, 0x1000000000000000
mov qword [rsp + 0x30], rcx
call method.__tsan.SlotLock___tsan::ThreadState_
lea rbp, [rdi + rbx]
add rbp, 8
mov rax, qword [rdi + rbx + 8]
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x58], rbx
lea r11, [rdi + rbx]
add r11, 0x10
mov rdx, 0xffffffffffffffff
xor ecx, ecx
lea rdi, [rsi + 0xfffff]
movabs r15, 0x10000000000
lea r14, [rsp + 0x70]
movabs r12, 0xdfffffffffffffff
nop word [rax + rax]
test rax, rdi
jne 0x1400d7210
mov rbx, rax
or rbx, rsi
and rbx, rdx
lock cmpxchg qword [rbp], rbx
je 0x1400d72a0
add rcx, 1
jmp 0x1400d71f0
cmp rcx, 0x5dc
jbe 0x1400d7266
lea r8, [rax + r15]
and r8, rdx
lock cmpxchg qword [rbp], r8
jne 0x1400d720a
mov eax, dword [r11]
jmp 0x1400d7254
mov dword [rsp + 0x70], 0
mov r8d, 4
mov rcx, r11
mov rdx, r14
mov r9d, 0xffffffff
mov rbx, r11
call sub.api_ms_win_core_synch_l1_2_0.dll_WaitOnAddress
mov r11, rbx
mov eax, dword [rbx]
test eax, eax
je 0x1400d722d
lea ecx, [rax - 1]
lock cmpxchg dword [r11], ecx
jne 0x1400d7254
xor ecx, ecx
jmp 0x1400d7283
movabs rbx, 0x2000000000000000
test rax, rbx
jne 0x1400d7293
mov r8, rax
or r8, rbx
lock cmpxchg qword [rbp], r8
jne 0x1400d720a
mov rax, qword [rbp]
add rcx, 1
mov rdx, r12
jmp 0x1400d71f0
mov rax, qword [rbp]
add rcx, 1
jmp 0x1400d71f0
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov ecx, dword [rbx + rsi + 0x18]
mov eax, dword [rbx + rsi + 0x20]
test r13b, 1
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x50], ecx
jne 0x1400d7306
mov eax, dword [rbx + rsi + 0x28]
test al, 1
movabs rdi, 0x2000000000000000
jne 0x1400d72f4
lea r14, [rbx + rsi]
add r14, 0x28
test r13d, 0x100
je 0x1400d7594
test dword [r14], 0x100
jne 0x1400d7594
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
jmp 0x1400d7320
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
movabs rdi, 0x2000000000000000
movabs r13, 0xffffff0000000000
movabs r14, 0xefffffffffffffff
movabs rsi, 0xbfffff00000fffff
movabs r12, 0x6000000000000000
movabs r10, 0x4000000000000000
movabs r15, 0xfffff0000000000
mov rax, qword [rbp]
xor r9d, r9d
jmp 0x1400d7378
lock cmpxchg qword [rbp], rbx
je 0x1400d73e5
mov rdx, rax
and rdx, r14
test rax, r12
sete r8b
test rax, r15
setne cl
lea rbx, [rdx + r13]
or rbx, rdi
test r8b, cl
cmove rbx, rdx
jne 0x1400d7370
mov rdx, rax
shr rdx, 0x14
and edx, 0xfffff
test rax, rdi
cmovne rdx, r9
mov rcx, rbx
and rcx, rsi
or rcx, r10
test rdx, rdx
cmove rcx, rbx
lock cmpxchg qword [rbp], rcx
jne 0x1400d7378
test rdx, rdx
mov rbx, qword [rsp + 0x30]
jne 0x1400d76f5
mov r11b, 1
cmp byte [rsp + 0x38], 0
je 0x1400d747c
jmp 0x1400d7411
lock add dword [r11], 1
mov rcx, r11
mov rdi, r10
call fcn.1400f7c08
mov r10, rdi
movabs rdi, 0x2000000000000000
mov rbx, qword [rsp + 0x30]
mov r11b, 1
cmp byte [rsp + 0x38], 0
je 0x1400d747c
xor r11d, r11d
cmp qword [rsp + 0x48], 0
je 0x1400d747c
mov rax, qword [rsp + 0x40]
add rax, 0xfffffffffffff000
shr rax, 0xc
cmp rax, 0xdfffffe
ja 0x1400d747c
mov rcx, qword [rsp + 0x40]
movabs rax, 0x10000000000
lea rdx, [rax + rcx*2]
and rdx, 0xfffffffffffffff0
mov eax, dword [rbx]
and cl, 7
mov r8d, eax
bts r8d, ecx
mov ecx, dword [rdx]
cmp ecx, r8d
je 0x1400d7479
mov ecx, dword [rdx + 4]
cmp ecx, r8d
je 0x1400d7479
mov ecx, dword [rdx + 8]
cmp ecx, r8d
je 0x1400d7479
mov ecx, dword [rdx + 0xc]
cmp ecx, r8d
jne 0x1400d7798
xor r11d, r11d
mov byte [rbx + 0x290], 0
mov rcx, qword [rbx + 0x280]
mov rax, qword [rcx]
xor r9d, r9d
jmp 0x1400d74a7
lock cmpxchg qword [rcx], rbx
je 0x1400d7517
mov rbp, rax
and rbp, r14
test rax, r12
sete r8b
test rax, r15
setne dl
mov rbx, rbp
add rbx, r13
or rbx, rdi
test r8b, dl
cmove rbx, rbp
jne 0x1400d74a0
mov rbp, rax
shr rbp, 0x14
and ebp, 0xfffff
test rax, rdi
cmovne rbp, r9
mov rdx, rbx
and rdx, rsi
or rdx, r10
test rbp, rbp
cmove rdx, rbx
lock cmpxchg qword [rcx], rdx
jne 0x1400d74a7
test rbp, rbp
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
jne 0x1400d771b
mov eax, dword [rsp + 0x3c]
xor al, 1
or r11b, al
jne 0x1400d757f
jmp 0x1400d7540
lock add dword [rcx + 8], 1
add rcx, 8
mov esi, r11d
call fcn.1400f7c08
mov r11d, esi
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
mov eax, dword [rsp + 0x3c]
xor al, 1
or r11b, al
jne 0x1400d757f
mov rax, qword [0x1402ea7c8]
cmp byte [rax + 0xa00193], 0
je 0x1400d757f
cmp dword [rdi + 0x230], 0
jne 0x1400d757f
cmp byte [rax + 0xa00195], 0
je 0x1400d757f
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov rdx, qword [rsp + 0x48]
mov r8, rsi
mov r9d, dword [rsp + 0x54]
call method.__tsan.ReportDestroyLocked___tsan::ThreadState__unsigned_long_long__unsigned_long_long____tsan::FastState__unsigned_int_
nop
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [0x1402ea852], 0
je 0x1400d7638
lea rax, method.__tsan::Callback.Unwind__
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x88], rdi
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x90], rax
lea rdx, [rsp + 0x68]
xor ecx, ecx
mov r15, r11
call qword [0x1402ea7c0]
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x418]
mov qword [rsp + 0x78], rax
mov rax, qword [rdi + 0x278]
mov qword [rsp + 0x80], rax
mov rax, qword [0x1402ea7c8]
mov rcx, qword [rax + 0xa00188]
lea rdi, [rbx + rsi + 0x30]
mov rax, qword [rcx]
lea r12, [rsp + 0x70]
mov rdx, r12
mov r8, rdi
call qword [rax + 0x40]
mov rax, qword [0x1402ea7c8]
mov rcx, qword [rax + 0xa00188]
mov rax, qword [rcx]
mov rdx, r12
mov r8, rdi
call qword [rax + 0x20]
mov r11, r15
mov rax, qword [0x1402ea7c8]
cmp byte [rax + 0xa00195], 0
je 0x1400d7664
cmp dword [rbx + rsi + 0x1c], 0xffffffff
je 0x1400d7664
test dword [r14], 0x40000000
jne 0x1400d7664
or dword [r14], 0x40000000
mov r15b, 1
jmp 0x1400d7667
xor r15d, r15d
movzx r9d, byte [rax + 0xa08198]
test r9, r9
jne 0x1400d7773
lea rax, [rbx + rsi]
add rax, 0x18
movaps xmm0, xmmword [0x140281550]
movups xmmword [rax], xmm0
mov dword [r14], 0
mov rcx, qword [rbx + rsi + 0x50]
test rcx, rcx
je 0x1400d76b7
lea r14, [rbx + rsi]
add r14, 0x50
xor edx, edx
mov rdi, r11
call method.__sanitizer.InternalFree_void____sanitizer::SizeClassAllocator32LocalCache___sanitizer::SizeClassAllocator32___sanitizer::AP32____
mov r11, rdi
mov qword [r14], 0
mov rcx, qword [rbx + rsi + 0x48]
test rcx, rcx
mov dword [rsp + 0x3c], r15d
mov al, 1
je 0x1400d76ec
mov dword [rsp + 0x38], eax
add rsi, rbx
add rsi, 0x48
xor edx, edx
mov rdi, r11
call method.__sanitizer.InternalFree_void____sanitizer::SizeClassAllocator32LocalCache___sanitizer::SizeClassAllocator32___sanitizer::AP32____
mov r11, rdi
mov qword [rsi], 0
jmp 0x1400d7316
mov dword [rsp + 0x38], eax
jmp 0x1400d7316
mov rbp, r10
mov rax, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
lea rcx, [rax + rdi]
add rcx, 0x14
lock add dword [rax + rdi + 0x14], edx
cmp edx, 1
jne 0x1400d7732
call fcn.1400f7c08
jmp 0x1400d7737
mov ebx, r11d
lock add dword [rcx + 0xc], ebp
add rcx, 0xc
cmp ebp, 1
jne 0x1400d7757
call fcn.1400f7c08
jmp 0x1400d775c
call fcn.1400f7c00
movabs rdi, 0x2000000000000000
mov r10, rbp
mov r11b, 1
cmp byte [rsp + 0x38], 0
jne 0x1400d7411
jmp 0x1400d747c
call fcn.1400f7c00
mov r11d, ebx
mov eax, dword [rsp + 0x3c]
xor al, 1
or r11b, al
je 0x1400d7540
jmp 0x1400d757f
xor r9, 1
mov qword [rsp + 0x20], 0
lea rcx, str.gotsan.cpp
lea r8, str.___ctx__resetting______0_
mov edx, 0x1765
call method.__sanitizer.CheckFailed_char_const__int__char_const__unsigned_long_long__unsigned_long_long_
test eax, eax
js 0x1400d7815
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x10]
lea ebp, [rcx + 8]
test ebp, 0xff0
je 0x1400d7840
mov rbx, qword [rsp + 0x48]
mov rbp, rbx
mov rdi, qword [rsp + 0x30]
sub rbp, qword [rdi + 0x18]
add rbp, 0x4000
mov qword [rdi + 0x18], rbx
cmp rbp, 0x7fff
ja 0x1400d786b
shl ebp, 5
mov rbx, qword [rsp + 0x40]
shl rbx, 0x14
and ebp, 0xfffe0
add rbp, rbx
add rbp, 1
mov qword [rcx], rbp
add rcx, 8
mov rbp, qword [rsp + 0x30]
mov qword [rbp + 0x10], rcx
mov r9d, dword [rdx]
mov rbp, rdx
test r9, r9
jne 0x1400d7889
mov dword [rbp], r8d
xor r11d, r11d
mov rbx, qword [rsp + 0x30]
movabs rsi, 0xbfffff00000fffff
movabs rdi, 0x2000000000000000
movabs r10, 0x4000000000000000
jmp 0x1400d747c
mov qword [rsp + 0x20], 0x88
mov r9d, 1
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
call method.__tsan.TraceRestartMemoryAccess___tsan::ThreadState__unsigned_long_long__unsigned_long_long__unsigned_long_long__unsigned_long_long_
xor r11d, r11d
jmp 0x1400d781d
mov rbp, qword [rsp + 0x40]
shl rbp, 0x14
mov qword [rcx], rbp
mov rbp, qword [rsp + 0x48]
mov qword [rcx + 8], rbp
add rcx, 0x10
jmp 0x1400d77fd
shr eax, 8
test r9b, r8b
jne 0x1400d78ad
xor ecx, ecx
lea rbp, [rdx + 4]
mov r9d, dword [rbp]
test r9, r9
jne 0x1400d78cf
test cl, cl
jne 0x1400d7815
jmp 0x1400d7811
mov rcx, r9
shr rcx, 8
cmp al, cl
jne 0x1400d7911
cmp r8b, r9b
jne 0x1400d7891
mov dword [rdx], r8d
mov cl, 1
lea rbp, [rdx + 4]
mov r9d, dword [rbp]
test r9, r9
je 0x1400d78a0
test r9b, r8b
jne 0x1400d7935
lea rbp, [rdx + 8]
mov r9d, dword [rbp]
test r9, r9
je 0x1400d78a0
test r9b, r8b
jne 0x1400d794d
lea rbp, [rdx + 0xc]
mov r9d, dword [rbp]
test r9, r9
je 0x1400d78a0
test r9b, r8b
je 0x1400d797f
mov rbx, r9
shr rbx, 8
cmp al, bl
jne 0x1400d7965
cmp r8b, r9b
jne 0x1400d797f
jmp 0x1400d7811
mov ebp, r9d
shr ebp, 0x10
movzx ecx, cl
and ebp, 0x3fff
mov rbx, qword [rsp + 0x30]
cmp word [rbx + rcx*2 + 0x2c], bp
jae 0x1400d7891
jmp 0x1400d79df
mov rbx, r9
shr rbx, 8
cmp al, bl
jne 0x1400d799f
cmp r8b, r9b
jne 0x1400d78d4
mov dword [rbp], r8d
mov cl, 1
jmp 0x1400d78d4
mov rbx, r9
shr rbx, 8
cmp al, bl
jne 0x1400d79c0
cmp r8b, r9b
jne 0x1400d78e6
mov dword [rbp], r8d
mov cl, 1
jmp 0x1400d78e6
mov eax, r9d
shr eax, 0x10
movzx ebp, bl
and eax, 0x3fff
mov rbx, qword [rsp + 0x30]
cmp word [rbx + rbp*2 + 0x2c], ax
jb 0x1400d79df
test cl, cl
jne 0x1400d7815
mov rbx, qword [rsp + 0x30]
mov rax, qword [rbx + 0x10]
shr rax, 1
and eax, 0xc
mov dword [rdx + rax], r8d
jmp 0x1400d7866
mov ebp, r9d
shr ebp, 0x10
movzx ebx, bl
and ebp, 0x3fff
mov rdi, qword [rsp + 0x30]
cmp word [rdi + rbx*2 + 0x2c], bp
jae 0x1400d78d4
jmp 0x1400d79df
mov ebp, r9d
shr ebp, 0x10
movzx ebx, bl
and ebp, 0x3fff
mov rdi, qword [rsp + 0x30]
cmp word [rdi + rbx*2 + 0x2c], bp
jae 0x1400d78e6
mov qword [rsp + 0x20], 0x88
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call method.__tsan.DoReportRace___tsan::ThreadState____tsan::RawShadow____tsan::Shadow____tsan::Shadow__unsigned_long_long_
jmp 0x1400d7866