Function at 0x14008b650
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r13d, r9d
mov r12, r8
mov rbp, rdx
mov r15, rcx
test rdx, rdx
mov qword [rsp + 0x40], rdx
je 0x14008b6e5
lea rax, [r12 - 0x1000]
shr rax, 0xc
cmp rax, 0xdfffffe
ja 0x14008b6e5
movabs rax, 0x10000000000
lea rdx, [rax + r12*2]
and rdx, 0xfffffffffffffff0
mov ecx, dword [r15]
mov ebx, r12d
and bl, 7
mov eax, ecx
bts eax, ebx
mov r8d, eax
or r8d, 0xc0000000
mov ebx, 0x40000000
mov edi, dword [rdx]
or edi, ebx
cmp edi, r8d
je 0x14008b6e5
or ebx, dword [rdx + 4]
cmp ebx, r8d
je 0x14008b6e5
mov ebx, 0x40000000
mov edi, dword [rdx + 8]
or edi, ebx
cmp edi, r8d
je 0x14008b6e5
or ebx, dword [rdx + 0xc]
cmp ebx, r8d
jne 0x14008bffb
mov rcx, r15
call method.__tsan.SlotLock___tsan::ThreadState_
mov rcx, qword [0x140221c08]
add rcx, 8
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], 1
mov rdx, r15
mov r8, rbp
mov r9, r12
call method.__tsan::MetaMap.GetSync___tsan::ThreadState__unsigned_long_long__unsigned_long_long__bool__bool_
mov r14, rax
mov esi, dword [rax + 0x18]
mov rax, qword [r15 + 0x10]
lea ecx, [rax + 8]
test ecx, 0xff0
je 0x14008bfa3
shl r12, 0x14
mov rcx, rsi
shr rcx, 0xf
or rcx, r12
mov rdx, rbp
shl rdx, 5
movabs rbp, 0x1ffffffffffe0
and rbp, rdx
shl rsi, 0x31
lea rdx, [rsi + rbp]
add rdx, 0xc
mov qword [rax], rdx
mov qword [rax + 8], rcx
add rax, 0x10
mov qword [r15 + 0x10], rax
mov rax, qword [r14 + 8]
lea rbp, [r14 + 0x14]
mov rdx, 0xffffffffffffffff
xor ecx, ecx
lea rsi, [rsp + 0x50]
movabs r12, 0xbfffffffffffffff
movabs rbx, 0x4000000000000000
bt rax, 0x3c
jb 0x14008b7b0
lea rdi, [rax + 1]
and rdi, rdx
lock cmpxchg qword [r14 + 8], rdi
je 0x14008b831
add rcx, 1
jmp 0x14008b790
cmp rcx, 0x5dc
jbe 0x14008b801
lea r8, [rax + 0x100000]
and r8, rdx
lock cmpxchg qword [r14 + 8], r8
je 0x14008b7ec
jmp 0x14008b7aa
mov dword [rsp + 0x50], 0
mov r8d, 4
mov rcx, rbp
mov rdx, rsi
mov r9d, 0xffffffff
call sub.api_ms_win_core_synch_l1_2_0.dll_WaitOnAddress
mov eax, dword [rbp]
test eax, eax
je 0x14008b7cd
lea ecx, [rax - 1]
lock cmpxchg dword [rbp], ecx
jne 0x14008b7ef
xor ecx, ecx
jmp 0x14008b814
test rax, rbx
jne 0x14008b824
mov r8, rax
or r8, rbx
lock cmpxchg qword [r14 + 8], r8
jne 0x14008b7aa
mov rax, qword [r14 + 8]
add rcx, 1
mov rdx, r12
jmp 0x14008b790
mov rax, qword [r14 + 8]
add rcx, 1
jmp 0x14008b790
mov eax, r13d
and eax, 0x107
je 0x14008b84d
mov ecx, dword [r14 + 0x28]
test ecx, 0x107
jne 0x14008b84d
or ecx, eax
mov dword [r14 + 0x28], ecx
cmp dword [r14 + 0x1c], 0xffffffff
je 0x14008b876
mov rax, qword [0x140221c08]
cmp byte [rax + 0xa00196], 0
je 0x14008b876
test dword [r14 + 0x28], 0x40000000
jne 0x14008b876
or dword [r14 + 0x28], 0x40000000
cmp dword [r15 + 4], 0
je 0x14008b948
mov eax, dword [r15]
mov dword [r14 + 0x20], eax
cmp byte [0x140221c92], 0
je 0x14008b9bf
mov esi, r13d
and esi, 0x10
lea rax, method.__tsan::Callback.Unwind__
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x68], r15
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0x48]
xor ecx, ecx
call qword [0x140221c00]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x418]
mov qword [rsp + 0x58], rax
mov rax, qword [r15 + 0x278]
mov qword [rsp + 0x60], rax
test r13d, 0x20000000
je 0x14008b90d
test esi, esi
jne 0x14008b90d
mov rax, qword [0x140221c08]
mov rcx, qword [rax + 0xa00188]
lea r8, [r14 + 0x30]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
xor r9d, r9d
call qword [rax + 0x28]
shr esi, 4
test r13d, 0x20000000
sete bl
mov rax, qword [0x140221c08]
mov rcx, qword [rax + 0xa00188]
lea r8, [r14 + 0x30]
mov rax, qword [rcx]
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x50]
xor r9d, r9d
call qword [rax + 0x30]
or bl, sil
mov byte [rsp + 0x3f], bl
jmp 0x14008b9c4
mov rax, qword [r14 + 0x50]
test rax, rax
je 0x14008b881
lea rcx, [r15 + 0x2c]
lea rdx, [rax + 0x200]
cmp rcx, rdx
jae 0x14008bb9b
lea rcx, [r15 + 0x22c]
cmp rax, rcx
jae 0x14008bb9b
xor ecx, ecx
nop dword [rax + rax]
movzx edx, word [r15 + rcx*2 + 0x2c]
movzx ebp, word [rax + rcx*2]
cmp dx, bp
cmova ebp, edx
mov word [r15 + rcx*2 + 0x2c], bp
movzx edx, word [r15 + rcx*2 + 0x2e]
movzx ebp, word [rax + rcx*2 + 2]
cmp dx, bp
cmova ebp, edx
mov word [r15 + rcx*2 + 0x2e], bp
add rcx, 2
cmp rcx, 0x100
jne 0x14008b980
jmp 0x14008b881
mov byte [rsp + 0x3f], 1
movabs r13, 0xfffffeffffffffff
movabs rbp, 0x60000000000fffff
movabs rsi, 0x2000000000000000
movabs r12, 0xfffff0000000000
mov rax, qword [r14 + 8]
lea rdx, [rax - 1]
test rdx, rbp
sete r8b
test rdx, r12
setne cl
and cl, r8b
lea rdi, [rax + r13]
or rdi, rsi
test cl, cl
cmove rdi, rdx
lock cmpxchg qword [r14 + 8], rdi
je 0x14008ba47
nop dword [rax]
lea rdx, [rax - 1]
test rdx, rbp
sete bl
test rdx, r12
setne cl
and cl, bl
lea rbx, [rax + r13]
or rbx, rsi
test cl, cl
cmove rbx, rdx
lock cmpxchg qword [r14 + 8], rbx
jne 0x14008ba20
test cl, cl
jne 0x14008bfc3
mov byte [r15 + 0x290], 0
mov rcx, qword [r15 + 0x280]
mov rax, qword [rcx]
movabs r10, 0xefffffffffffffff
add rbp, 0xfffffffffff00001
xor r8d, r8d
movabs r9, 0xbfffff00000fffff
movabs r14, 0x4000000000000000
jmp 0x14008babb
mov rbx, rax
shr rbx, 0x14
and ebx, 0xfffff
test rax, rsi
cmovne rbx, r8
mov rdx, rdi
and rdx, r9
or rdx, r14
test rbx, rbx
cmove rdx, rdi
lock cmpxchg qword [rcx], rdx
je 0x14008bb03
mov rbx, rax
and rbx, r10
test rax, rbp
sete r11b
test rax, r12
setne dl
lea rdi, [rbx + r13]
add rdi, 1
or rdi, rsi
test r11b, dl
cmove rdi, rbx
je 0x14008ba90
lock cmpxchg qword [rcx], rdi
jne 0x14008babb
lock add dword [rcx + 8], 1
add rcx, 8
call fcn.1400c8458
mov rsi, qword [rsp + 0x40]
mov dil, byte [rsp + 0x3f]
jmp 0x14008bb16
test rbx, rbx
mov rsi, qword [rsp + 0x40]
mov dil, byte [rsp + 0x3f]
jne 0x14008bfda
cmp byte [0x140221c92], 0
sete al
or dil, al
jne 0x14008bb89
lea rax, method.__tsan::Callback.Unwind__
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], rsi
lea rdx, [rsp + 0x48]
xor ecx, ecx
call qword [0x140221c00]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x418]
mov qword [rsp + 0x58], rax
mov rax, qword [r15 + 0x278]
mov qword [rsp + 0x60], rax
mov rax, qword [0x140221c08]
mov rcx, qword [rax + 0xa00188]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x48]
mov rcx, r15
mov r8, rax
call method.__tsan.ReportDeadlock___tsan::ThreadState__unsigned_long_long____sanitizer::DDReport_
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [r15 + 0x2c]
movdqu xmm3, xmmword [r15 + 0x3c]
movdqu xmm4, xmmword [r15 + 0x4c]
movdqu xmm5, xmmword [r15 + 0x5c]
psubusw xmm0, xmm2
paddw xmm0, xmm2
psubusw xmm1, xmm3
paddw xmm1, xmm3
movdqu xmmword [r15 + 0x2c], xmm0
movdqu xmmword [r15 + 0x3c], xmm1
movdqu xmm0, xmmword [rax + 0x20]
movdqu xmm1, xmmword [rax + 0x30]
psubusw xmm0, xmm4
paddw xmm0, xmm4
psubusw xmm1, xmm5
paddw xmm1, xmm5
movdqu xmmword [r15 + 0x4c], xmm0
movdqu xmmword [r15 + 0x5c], xmm1
movdqu xmm0, xmmword [r15 + 0x6c]
movdqu xmm1, xmmword [r15 + 0x7c]
movdqu xmm2, xmmword [rax + 0x40]
movdqu xmm3, xmmword [rax + 0x50]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x6c], xmm2
movdqu xmmword [r15 + 0x7c], xmm3
movdqu xmm0, xmmword [r15 + 0x8c]
movdqu xmm1, xmmword [r15 + 0x9c]
movdqu xmm2, xmmword [rax + 0x60]
movdqu xmm3, xmmword [rax + 0x70]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x8c], xmm2
movdqu xmmword [r15 + 0x9c], xmm3
movdqu xmm0, xmmword [r15 + 0xac]
movdqu xmm1, xmmword [r15 + 0xbc]
movdqu xmm2, xmmword [rax + 0x80]
movdqu xmm3, xmmword [rax + 0x90]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0xac], xmm2
movdqu xmmword [r15 + 0xbc], xmm3
movdqu xmm0, xmmword [r15 + 0xcc]
movdqu xmm1, xmmword [r15 + 0xdc]
movdqu xmm2, xmmword [rax + 0xa0]
movdqu xmm3, xmmword [rax + 0xb0]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0xcc], xmm2
movdqu xmmword [r15 + 0xdc], xmm3
movdqu xmm0, xmmword [r15 + 0xec]
movdqu xmm1, xmmword [r15 + 0xfc]
movdqu xmm2, xmmword [rax + 0xc0]
movdqu xmm3, xmmword [rax + 0xd0]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0xec], xmm2
movdqu xmmword [r15 + 0xfc], xmm3
movdqu xmm0, xmmword [r15 + 0x10c]
movdqu xmm1, xmmword [r15 + 0x11c]
movdqu xmm2, xmmword [rax + 0xe0]
movdqu xmm3, xmmword [rax + 0xf0]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x10c], xmm2
movdqu xmmword [r15 + 0x11c], xmm3
movdqu xmm0, xmmword [r15 + 0x12c]
movdqu xmm1, xmmword [r15 + 0x13c]
movdqu xmm2, xmmword [rax + 0x100]
movdqu xmm3, xmmword [rax + 0x110]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x12c], xmm2
movdqu xmmword [r15 + 0x13c], xmm3
movdqu xmm0, xmmword [r15 + 0x14c]
movdqu xmm1, xmmword [r15 + 0x15c]
movdqu xmm2, xmmword [rax + 0x120]
movdqu xmm3, xmmword [rax + 0x130]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x14c], xmm2
movdqu xmmword [r15 + 0x15c], xmm3
movdqu xmm0, xmmword [r15 + 0x16c]
movdqu xmm1, xmmword [r15 + 0x17c]
movdqu xmm2, xmmword [rax + 0x140]
movdqu xmm3, xmmword [rax + 0x150]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x16c], xmm2
movdqu xmmword [r15 + 0x17c], xmm3
movdqu xmm0, xmmword [r15 + 0x18c]
movdqu xmm1, xmmword [r15 + 0x19c]
movdqu xmm2, xmmword [rax + 0x160]
movdqu xmm3, xmmword [rax + 0x170]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x18c], xmm2
movdqu xmmword [r15 + 0x19c], xmm3
movdqu xmm0, xmmword [r15 + 0x1ac]
movdqu xmm1, xmmword [r15 + 0x1bc]
movdqu xmm2, xmmword [rax + 0x180]
movdqu xmm3, xmmword [rax + 0x190]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x1ac], xmm2
movdqu xmmword [r15 + 0x1bc], xmm3
movdqu xmm0, xmmword [r15 + 0x1cc]
movdqu xmm1, xmmword [r15 + 0x1dc]
movdqu xmm2, xmmword [rax + 0x1a0]
movdqu xmm3, xmmword [rax + 0x1b0]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x1cc], xmm2
movdqu xmmword [r15 + 0x1dc], xmm3
movdqu xmm0, xmmword [r15 + 0x1ec]
movdqu xmm1, xmmword [r15 + 0x1fc]
movdqu xmm2, xmmword [rax + 0x1c0]
movdqu xmm3, xmmword [rax + 0x1d0]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x1ec], xmm2
movdqu xmmword [r15 + 0x1fc], xmm3
movdqu xmm0, xmmword [r15 + 0x20c]
movdqu xmm1, xmmword [r15 + 0x21c]
movdqu xmm2, xmmword [rax + 0x1e0]
movdqu xmm3, xmmword [rax + 0x1f0]
psubusw xmm2, xmm0
paddw xmm2, xmm0
psubusw xmm3, xmm1
paddw xmm3, xmm1
movdqu xmmword [r15 + 0x20c], xmm2
movdqu xmmword [r15 + 0x21c], xmm3
jmp 0x14008b881
mov rcx, r15
call method.__tsan.TraceSwitchPart___tsan::ThreadState_
mov rax, qword [r15 + 0x10]
lea ecx, [rax + 8]
test ecx, 0xff0
jne 0x14008b729
jmp 0x14008b729
mov rcx, r14
add rcx, 0x10
lock add dword [r14 + 0x10], 1
call fcn.1400c8458
jmp 0x14008ba4f
lock add dword [rcx + 0xc], ebx
add rcx, 0xc
cmp ebx, 1
jne 0x14008bff1
call fcn.1400c8458
jmp 0x14008bb16
call fcn.1400c8450
jmp 0x14008bb16
test ecx, ecx
js 0x14008b6e5
mov rbx, qword [r15 + 0x10]
lea edi, [rbx + 8]
test edi, 0xff0
je 0x14008c06c
mov rbp, qword [rsp + 0x40]
mov rdi, rbp
sub rdi, qword [r15 + 0x18]
add rdi, 0x4000
mov qword [r15 + 0x18], rbp
cmp rdi, 0x7fff
ja 0x14008c093
shl edi, 5
mov rsi, r12
shl rsi, 0x14
and edi, 0xfffe0
add rdi, rsi
add rdi, 7
mov qword [rbx], rdi
add rbx, 8
mov qword [r15 + 0x10], rbx
mov r9d, dword [rdx]
mov rdi, rdx
test r9, r9
mov rbp, qword [rsp + 0x40]
jne 0x14008c0b0
mov dword [rdi], r8d
jmp 0x14008b6e5
mov qword [rsp + 0x20], 3
mov r9d, 1
mov rcx, r15
mov rbp, qword [rsp + 0x40]
mov rdx, rbp
mov r8, r12
call method.__tsan.TraceRestartMemoryAccess___tsan::ThreadState__unsigned_long_long__unsigned_long_long__unsigned_long_long__unsigned_long_long_
jmp 0x14008b6e5
mov rbp, r12
shl rbp, 0x14
or rbp, 0x60
mov qword [rbx], rbp
mov rbp, qword [rsp + 0x40]
mov qword [rbx + 8], rbp
add rbx, 0x10
jmp 0x14008c050
shr ecx, 8
test r9b, al
jne 0x14008c0d5
xor ebx, ebx
lea rdi, [rdx + 4]
mov r9d, dword [rdi]
test r9, r9
jne 0x14008c0f7
test bl, bl
mov rbp, qword [rsp + 0x40]
jne 0x14008b6e5
jmp 0x14008c064
mov rbx, r9
shr rbx, 8
cmp cl, bl
jne 0x14008c158
xor ebx, ebx
cmp r9d, 0xc0000000
jb 0x14008c0ba
cmp al, r9b
jne 0x14008c0ba
mov dword [rdx], r8d
mov bl, 1
jmp 0x14008c0ba
test r9b, al
jne 0x14008c185
lea rdi, [rdx + 8]
mov r9d, dword [rdi]
test r9, r9
je 0x14008c0c6
test r9b, al
jne 0x14008c1b5
lea rdi, [rdx + 0xc]
mov r9d, dword [rdi]
test r9, r9
je 0x14008c0c6
test r9b, al
je 0x14008c205
mov rsi, r9
shr rsi, 8
cmp cl, sil
jne 0x14008c1e5
cmp r9d, 0xc0000000
jb 0x14008c205
cmp al, r9b
jne 0x14008c205
mov dword [rdi], r8d
jmp 0x14008c28a
cmp r9d, 0x3fffffff
ja 0x14008c0b8
mov ebp, r9d
shr ebp, 0x10
movzx ebx, bl
and ebp, 0x3fff
cmp word [r15 + rbx*2 + 0x2c], bp
jae 0x14008c0b8
jmp 0x14008c279
mov rsi, r9
shr rsi, 8
cmp cl, sil
jne 0x14008c225
cmp r9d, 0xc0000000
jb 0x14008c100
cmp al, r9b
jne 0x14008c100
mov dword [rdi], r8d
mov bl, 1
jmp 0x14008c100
mov rsi, r9
shr rsi, 8
cmp cl, sil
jne 0x14008c250
cmp r9d, 0xc0000000
jb 0x14008c115
cmp al, r9b
jne 0x14008c115
mov dword [rdi], r8d
mov bl, 1
jmp 0x14008c115
cmp r9d, 0x3fffffff
ja 0x14008c205
mov eax, r9d
shr eax, 0x10
movzx ecx, sil
and eax, 0x3fff
cmp word [r15 + rcx*2 + 0x2c], ax
jb 0x14008c279
test bl, bl
mov rbp, qword [rsp + 0x40]
jne 0x14008b6e5
mov rax, qword [r15 + 0x10]
shr rax, 1
and eax, 0xc
mov dword [rdx + rax], r8d
jmp 0x14008b6e5
cmp r9d, 0x3fffffff
ja 0x14008c100
mov ebp, r9d
shr ebp, 0x10
movzx edi, sil
and ebp, 0x3fff
cmp word [r15 + rdi*2 + 0x2c], bp
jae 0x14008c100
jmp 0x14008c279
cmp r9d, 0x3fffffff
ja 0x14008c115
mov ebp, r9d
shr ebp, 0x10
movzx edi, sil
and ebp, 0x3fff
cmp word [r15 + rdi*2 + 0x2c], bp
jae 0x14008c115
mov qword [rsp + 0x20], 3
mov rcx, r15
call method.__tsan.DoReportRace___tsan::ThreadState____tsan::RawShadow____tsan::Shadow____tsan::Shadow__unsigned_long_long_
mov rbp, qword [rsp + 0x40]
jmp 0x14008b6e5