Function at 0x1400d73f0
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov ebp, r9d
mov r14d, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x1401ff028]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rbx, qword [0x1402075b0]
cmp rbx, 1
jbe 0x1400d786a
mov ecx, dword [0x140200ec8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d7bbf
movsxd rcx, dword [rbx]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbx + 4]
jne 0x1400d7bbf
mov rax, qword [rax + rcx]
mov qword [rsi], rax
mov rbx, qword [0x1402075f0]
cmp rbx, 1
jbe 0x1400d7982
mov ecx, dword [0x140200ec8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d7bc6
movsxd rcx, dword [rbx]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbx + 4]
jne 0x1400d7bc6
mov rax, qword [rax + rcx]
mov qword [rsi + 8], rax
cmp r14d, 1
je 0x1400d7bcd
test rax, rax
jne 0x1400d77c9
xor eax, eax
mov byte [rsi + 0x10], al
lea rbx, [rsi + 0x18]
mov rdi, qword [rdi + 0x18]
mov qword [rsp + 0x38], 0x11be9915
mov rcx, qword [0x140207518]
test rcx, rcx
jne 0x1400d7bd4
mov qword [rbx], 0
mov qword [rsi + 0x28], 0
mov dword [rsi + 0x30], 0x11be9915
mov byte [rsi + 0x38], 0
mov rdi, qword [0x1402075f0]
cmp rdi, 1
jbe 0x1400d79cf
mov ecx, dword [0x140200ec8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d7a1c
movsxd rcx, dword [rdi]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rdi + 4]
movsxd rdx, dword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [0x140208e88]
cmp rdi, 1
jbe 0x1400d7935
mov ecx, dword [0x140200ec8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d7573
movsxd rcx, dword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 4]
jne 0x1400d7573
mov rax, qword [rax + rcx]
test rax, rax
jne 0x1400d76b2
test ebp, ebp
jne 0x1400d777f
cmp byte [rsi + 0x10], 0
jne 0x1400d777f
cmp qword [rsi + 8], 0
jne 0x1400d767d
cmp byte [rsi + 0x38], 0
jne 0x1400d7cb0
lea rdi, [rsi + 0x40]
mov rax, qword [fcn.1400f9c10]
lea rcx, [0x140103600]
cmp rax, rcx
jne 0x1400d7b4d
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x38]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x1400d7cc2
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402070a0]
mov r15, rax
mov qword [rdi], rax
mov eax, dword [0x1402075c8]
mov ecx, dword [0x1402029e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400d7800
lea rcx, [0x1402075c0]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400d77ef
mov eax, dword [0x1402075e8]
mov ecx, dword [0x1402029e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400d7835
cmp qword [0x1402075e0], 0
jne 0x1400d7705
mov qword [rsi + 0x48], 0
lea rcx, [0x1402075c0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov byte [rsi + 0x38], 1
mov rcx, qword [rsi]
test rcx, rcx
jne 0x1400d76ee
mov rax, qword [rbx]
test rax, rax
jne 0x1400d7c08
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140106510
mov rax, rsi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rax], 0
jne 0x1400d7573
mov eax, dword [0x140208e68]
mov ecx, dword [0x1402029e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400d78ec
cmp byte [0x140208e64], 0
jne 0x1400d767d
jmp 0x1400d7573
mov rax, qword [rsi + 8]
test rax, rax
jne 0x1400d77d1
mov edx, r14d
call fcn.1401007e0
jmp 0x1400d7685
mov eax, dword [0x1402075d8]
mov ecx, dword [0x1402029e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400d78b7
mov rdi, qword [0x1402075d0]
movabs r12, 0x7fffffffffffffff
mov rbp, r15
test rdi, rdi
je 0x1400d7a2f
mov rax, qword [rdi + 0x1f0]
mov ebp, 0x3938700
xor ecx, ecx
mov edx, 0x3938700
add rdx, rax
setns cl
add rcx, r12
add rbp, rax
cmovo rbp, rcx
cmp rbp, r15
jle 0x1400d7a2f
mov qword [rsi + 0x48], rdi
lock inc dword [rdi]
jmp 0x1400d766c
mov rax, qword [rsi + 8]
test rax, rax
je 0x1400d767d
cmp byte [rax + 0x38], 0
je 0x1400d767d
mov rdi, qword [rax + 0x48]
mov qword [rax + 0x48], 0
test rdi, rdi
je 0x1400d767d
lock dec dword [rdi]
jne 0x1400d767d
mov rcx, rdi
call fcn.14000e240
mov rcx, rdi
call fcn.1401039b0
jmp 0x1400d767d
mov al, byte [rax + 0x10]
jmp 0x1400d74b5
cmp r14d, 1
jne 0x1400d7685
cmp byte [rax + 0x10], 0
jne 0x1400d7685
call fcn.140055270
jmp 0x1400d7685
lea rcx, [0x1402075c0]
call fcn.1400bbcd0
jmp 0x1400d7631
lea rcx, [0x1402075c8]
call fcn.1401044f8
cmp dword [0x1402075c8], 0xffffffff
jne 0x1400d761c
mov qword [0x1402075c0], 0
lea rcx, [0x1402075c8]
call fcn.140103fa4
jmp 0x1400d761c
lea rcx, [0x1402075e8]
call fcn.1401044f8
cmp dword [0x1402075e8], 0xffffffff
jne 0x1400d7656
mov qword [0x1402075e0], 0
lea rcx, [0x1402075e8]
call fcn.140103fa4
jmp 0x1400d7656
lea rcx, [0x1402075b0]
call fcn.14000d860
test al, al
je 0x1400d7cef
mov qword [0x1402075b8], 0
lea r15, [0x1402075b0]
lea rbx, [0x1402075b8]
mov rcx, rbx
xor edx, edx
call fcn.140001360
mov rcx, r15
mov rdx, rbx
xor r8d, r8d
mov r9, r15
call fcn.14000d840
jmp 0x1400d742c
lea rcx, [0x1402075d8]
call fcn.1401044f8
cmp dword [0x1402075d8], 0xffffffff
jne 0x1400d772a
mov qword [0x1402075d0], 0
lea rcx, [0x1402075d8]
call fcn.140103fa4
jmp 0x1400d772a
lea rcx, [0x140208e68]
call fcn.1401044f8
cmp dword [0x140208e68], 0xffffffff
jne 0x1400d76e0
mov rcx, qword [0x140205600]
test rcx, rcx
je 0x1400d791d
lea rdx, str.enable_background_thread_pool
call fcn.1400caab0
mov byte [0x140208e64], 1
lea rcx, [0x140208e68]
call fcn.140103fa4
jmp 0x1400d76e0
lea rcx, [0x140208e88]
call fcn.14000d860
test al, al
je 0x1400d7cfb
mov qword [0x140208e90], 0
lea r15, [0x140208e88]
lea rdi, [0x140208e90]
mov rcx, rdi
xor edx, edx
call fcn.140001360
mov rcx, r15
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call fcn.14000d840
jmp 0x1400d7544
lea rcx, [0x1402075f0]
call fcn.14000d860
test al, al
je 0x1400d7d07
mov qword [0x1402075f8], 0
lea r15, [0x1402075f0]
lea rbx, [0x1402075f8]
mov rcx, rbx
xor edx, edx
call fcn.140001360
mov rcx, r15
mov rdx, rbx
xor r8d, r8d
mov r9, r15
call fcn.14000d840
jmp 0x1400d746e
lea rcx, [0x1402075f0]
call fcn.14000d860
test al, al
je 0x1400d7d13
mov qword [0x1402075f8], 0
lea r15, [0x1402075f0]
lea rdi, [0x1402075f8]
mov rcx, rdi
xor edx, edx
call fcn.140001360
mov rcx, r15
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call fcn.14000d840
jmp 0x1400d7504
test rsi, rsi
je 0x1400d7533
call fcn.1400014c0
jmp 0x1400d751a
mov rax, r15
sub rax, rbp
cmp rax, 0x989680
jge 0x1400d7d30
mov ecx, 0x208
call fcn.1401039c0
mov r13, rax
mov dword [rax], 0
lea rcx, [rax + 8]
mov r8d, 0x1e8
xor edx, edx
call fcn.140108da0
mov qword [r13 + 0x1f0], rbp
mov qword [r13 + 0x1f8], 0
mov byte [r13 + 0x200], 0
mov qword [rsp + 0x28], r13
lock inc dword [r13]
test rdi, rdi
jne 0x1400d7b5a
mov rax, qword [rsp + 0x28]
lock inc dword [rax]
mov qword [0x1402075d0], rax
lea rcx, [0x1402075c0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0x28]
sub r15, qword [rax + 0x1f0]
lea rax, [r15 + r12]
add rax, 2
cmp rax, 2
jb 0x1400d7d1f
mov r13d, 0x3938700
xor eax, eax
cmp r13, r15
setns al
add rax, r12
sub r13, r15
cmovo r13, rax
mov ecx, 0x28
call fcn.1401039c0
mov rbp, rax
lea rdx, [0x140139ba0]
lea r8, [0x140154770]
mov rcx, rax
call fcn.1400d81b0
lea r12, [rsp + 0x58]
mov qword [r12], rbp
lea rdx, str.MonitorNextJankWindowIfNecessary
lea r8, str..._.._base_threading_scoped_blocking_call_internal.cc
lea rbp, [rsp + 0x38]
mov rcx, rbp
mov r9d, 0x9c
call fcn.1400cea50
mov rcx, rbp
mov rdx, r12
mov r8, r13
call fcn.14000e1c0
mov rax, qword [rsp + 0x28]
mov qword [rsi + 0x48], rax
jmp 0x1400d7679
mov rcx, rdi
call rax
mov r15, qword [rdi]
jmp 0x1400d75f7
cmp byte [rdi + 0x200], 0
jne 0x1400d7b82
mov rax, qword [rsp + 0x28]
lock inc dword [rax]
mov r13, qword [rdi + 0x1f8]
mov qword [rdi + 0x1f8], rax
test r13, r13
jne 0x1400d7d3f
mov rdi, qword [0x1402075d0]
mov rax, qword [rsp + 0x28]
lock inc dword [rax]
mov qword [0x1402075d0], rax
test rdi, rdi
je 0x1400d7aa1
lock dec dword [rdi]
jne 0x1400d7aa1
mov rcx, rdi
call fcn.14000e240
mov rcx, rdi
call fcn.1401039b0
jmp 0x1400d7aa1
xor eax, eax
jmp 0x1400d745a
xor eax, eax
jmp 0x1400d749c
mov al, 1
jmp 0x1400d74b5
call fcn.1401552e0
mov qword [rbx], rax
test rax, rax
je 0x1400d74e0
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov rdx, rdi
xor r8d, r8d
mov r9b, 0xf0
call fcn.140155320
mov dword [rsi + 0x20], eax
jmp 0x1400d74e0
mov eax, dword [rax + 0x18]
cmp eax, dword [rsi + 0x20]
jbe 0x1400d7691
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x30]
mov qword [rdi], rax
mov rcx, rdi
call fcn.1400f9b60
mov rcx, rbx
call fcn.14015d8f0
mov rbx, rax
mov rax, qword [rdi]
lea rdi, [rsp + 0x58]
mov qword [rdi], rax
lea rax, str.timestamp_us
lea rbp, [rsp + 0x38]
mov qword [rbp], rax
mov qword [rbp + 8], 0xc
mov r15d, 8
mov qword [rsp + 0x20], r15
mov rcx, rbx
mov rdx, rbp
mov r8b, 8
mov r9, rdi
call fcn.14015ccc0
movsxd rax, r14d
mov qword [rdi], rax
lea rax, str.blocking_type
mov qword [rbp], rax
mov qword [rbp + 8], 0xd
mov qword [rsp + 0x20], r15
lea rdx, [rsp + 0x38]
lea r9, [rsp + 0x58]
mov rcx, rbx
mov r8b, 8
call fcn.14015ccc0
jmp 0x1400d7691
lea rcx, [rsi + 0x40]
call fcn.1401608d0
mov byte [rsi + 0x38], 0
jmp 0x1400d759a
mov rcx, qword [0x1402070a0]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov r15, rax
add r15, rbp
mov qword [rdi], r15
jmp 0x1400d75f7
mov rbx, qword [0x1402075b0]
jmp 0x1400d742c
mov rdi, qword [0x140208e88]
jmp 0x1400d7544
mov rbx, qword [0x1402075f0]
jmp 0x1400d746e
mov rdi, qword [0x1402075f0]
jmp 0x1400d7504
lea r13, [r12 + 1]
test r15, r15
cmovs r13, r12
jmp 0x1400d7ae4
mov byte [rdi + 0x200], 1
mov rbp, r15
jmp 0x1400d7a41
lock dec dword [r13]
jne 0x1400d7b82
mov rcx, r13
call fcn.14000e240
mov rcx, r13
call fcn.1401039b0
jmp 0x1400d7b82