Function at 0x4258c0
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 0x425d4f
mov edx, eax
and edx, 0x40000000
jne 0x425d4f
mov r13d, r9d
mov rbp, qword [0x0060ed28]
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 0x425956
mov eax, dword [rdi + rbx + 0x2c]
test eax, eax
je 0x425d4f
mov edx, eax
and edx, 0x40000000
je 0x425918
jmp 0x425d4f
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 0x4259e0
mov rbx, rax
or rbx, rsi
and rbx, rdx
lock cmpxchg qword [rbp], rbx
je 0x425a70
add rcx, 1
jmp 0x4259c0
cmp rcx, 0x5dc
jbe 0x425a36
lea r8, [rax + r15]
and r8, rdx
lock cmpxchg qword [rbp], r8
jne 0x4259da
mov eax, dword [r11]
jmp 0x425a24
mov dword [rsp + 0x70], 0
mov r8d, 4
mov rcx, r11
mov rdx, r14
mov r9d, 0xffffffff
mov rbx, r11
call sub.kernel32.dll_WaitOnAddress
mov r11, rbx
mov eax, dword [rbx]
test eax, eax
je 0x4259fd
lea ecx, [rax - 1]
lock cmpxchg dword [r11], ecx
jne 0x425a24
xor ecx, ecx
jmp 0x425a53
movabs rbx, 0x2000000000000000
test rax, rbx
jne 0x425a63
mov r8, rax
or r8, rbx
lock cmpxchg qword [rbp], r8
jne 0x4259da
mov rax, qword [rbp]
add rcx, 1
mov rdx, r12
jmp 0x4259c0
mov rax, qword [rbp]
add rcx, 1
jmp 0x4259c0
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 0x425ad6
mov eax, dword [rbx + rsi + 0x28]
test al, 1
movabs rdi, 0x2000000000000000
jne 0x425ac4
lea r14, [rbx + rsi]
add r14, 0x28
test r13d, 0x100
je 0x425d64
test dword [r14], 0x100
jne 0x425d64
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
jmp 0x425af0
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 0x425b48
lock cmpxchg qword [rbp], rbx
je 0x425bb5
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 0x425b40
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 0x425b48
test rdx, rdx
mov rbx, qword [rsp + 0x30]
jne 0x425ec5
mov r11b, 1
cmp byte [rsp + 0x38], 0
je 0x425c4c
jmp 0x425be1
lock add dword [r11], 1
mov rcx, r11
mov rdi, r10
call sub.kernel32.dll_WakeByAddressSingle
mov r10, rdi
movabs rdi, 0x2000000000000000
mov rbx, qword [rsp + 0x30]
mov r11b, 1
cmp byte [rsp + 0x38], 0
je 0x425c4c
xor r11d, r11d
cmp qword [rsp + 0x48], 0
je 0x425c4c
mov rax, qword [rsp + 0x40]
add rax, 0xfffffffffffff000
shr rax, 0xc
cmp rax, 0xdfffffe
ja 0x425c4c
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 0x425c49
mov ecx, dword [rdx + 4]
cmp ecx, r8d
je 0x425c49
mov ecx, dword [rdx + 8]
cmp ecx, r8d
je 0x425c49
mov ecx, dword [rdx + 0xc]
cmp ecx, r8d
jne 0x425f68
xor r11d, r11d
mov byte [rbx + 0x290], 0
mov rcx, qword [rbx + 0x280]
mov rax, qword [rcx]
xor r9d, r9d
jmp 0x425c77
lock cmpxchg qword [rcx], rbx
je 0x425ce7
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 0x425c70
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 0x425c77
test rbp, rbp
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
jne 0x425eeb
mov eax, dword [rsp + 0x3c]
xor al, 1
or r11b, al
jne 0x425d4f
jmp 0x425d10
lock add dword [rcx + 8], 1
add rcx, 8
mov esi, r11d
call sub.kernel32.dll_WakeByAddressSingle
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 0x425d4f
mov rax, qword [0x0060ed28]
cmp byte [rax + 0xa00193], 0
je 0x425d4f
cmp dword [rdi + 0x230], 0
jne 0x425d4f
cmp byte [rax + 0xa00195], 0
je 0x425d4f
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 [0x0060edb2], 0
je 0x425e08
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 [0x0060ed20]
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 [0x0060ed28]
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 [0x0060ed28]
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 [0x0060ed28]
cmp byte [rax + 0xa00195], 0
je 0x425e34
cmp dword [rbx + rsi + 0x1c], 0xffffffff
je 0x425e34
test dword [r14], 0x40000000
jne 0x425e34
or dword [r14], 0x40000000
mov r15b, 1
jmp 0x425e37
xor r15d, r15d
movzx r9d, byte [rax + 0xa08198]
test r9, r9
jne 0x425f43
lea rax, [rbx + rsi]
add rax, 0x18
movaps xmm0, xmmword [0x00500940]
movups xmmword [rax], xmm0
mov dword [r14], 0
mov rcx, qword [rbx + rsi + 0x50]
test rcx, rcx
je 0x425e87
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 0x425ebc
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 0x425ae6
mov dword [rsp + 0x38], eax
jmp 0x425ae6
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 0x425f02
call sub.kernel32.dll_WakeByAddressSingle
jmp 0x425f07
mov ebx, r11d
lock add dword [rcx + 0xc], ebp
add rcx, 0xc
cmp ebp, 1
jne 0x425f27
call sub.kernel32.dll_WakeByAddressSingle
jmp 0x425f2c
call sub.kernel32.dll_WakeByAddressAll
movabs rdi, 0x2000000000000000
mov r10, rbp
mov r11b, 1
cmp byte [rsp + 0x38], 0
jne 0x425be1
jmp 0x425c4c
call sub.kernel32.dll_WakeByAddressAll
mov r11d, ebx
mov eax, dword [rsp + 0x3c]
xor al, 1
or r11b, al
je 0x425d10
jmp 0x425d4f
xor r9, 1
mov qword [rsp + 0x20], 0
lea rcx, str.gotsan.cpp
lea r8, str.___ctx__resetting______0_
mov edx, 0x177e
call method.__sanitizer.CheckFailed_char_const__int__char_const__unsigned_long_long__unsigned_long_long_
test eax, eax
js 0x425fe5
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x10]
lea ebp, [rcx + 8]
test ebp, 0xff0
je 0x426010
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 0x42603b
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 0x426059
mov dword [rbp], r8d
xor r11d, r11d
mov rbx, qword [rsp + 0x30]
movabs rsi, 0xbfffff00000fffff
movabs rdi, 0x2000000000000000
movabs r10, 0x4000000000000000
jmp 0x425c4c
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 0x425fed
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 0x425fcd
shr eax, 8
test r9b, r8b
jne 0x42607d
xor ecx, ecx
lea rbp, [rdx + 4]
mov r9d, dword [rbp]
test r9, r9
jne 0x42609f
test cl, cl
jne 0x425fe5
jmp 0x425fe1
mov rcx, r9
shr rcx, 8
cmp al, cl
jne 0x4260e1
cmp r8b, r9b
jne 0x426061
mov dword [rdx], r8d
mov cl, 1
lea rbp, [rdx + 4]
mov r9d, dword [rbp]
test r9, r9
je 0x426070
test r9b, r8b
jne 0x426105
lea rbp, [rdx + 8]
mov r9d, dword [rbp]
test r9, r9
je 0x426070
test r9b, r8b
jne 0x42611d
lea rbp, [rdx + 0xc]
mov r9d, dword [rbp]
test r9, r9
je 0x426070
test r9b, r8b
je 0x42614f
mov rbx, r9
shr rbx, 8
cmp al, bl
jne 0x426135
cmp r8b, r9b
jne 0x42614f
jmp 0x425fe1
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 0x426061
jmp 0x4261af
mov rbx, r9
shr rbx, 8
cmp al, bl
jne 0x42616f
cmp r8b, r9b
jne 0x4260a4
mov dword [rbp], r8d
mov cl, 1
jmp 0x4260a4
mov rbx, r9
shr rbx, 8
cmp al, bl
jne 0x426190
cmp r8b, r9b
jne 0x4260b6
mov dword [rbp], r8d
mov cl, 1
jmp 0x4260b6
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 0x4261af
test cl, cl
jne 0x425fe5
mov rbx, qword [rsp + 0x30]
mov rax, qword [rbx + 0x10]
shr rax, 1
and eax, 0xc
mov dword [rdx + rax], r8d
jmp 0x426036
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 0x4260a4
jmp 0x4261af
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 0x4260b6
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 0x426036