Function at 0x140030690
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, 0x48
mov r14, rdx
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rsp + 0x2c], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140030aba
mov rbp, qword [rsi + 0x10]
movzx eax, byte [r14 + 0x17]
mov qword [rsp + 0x30], rax
test rbp, rbp
je 0x1400307c2
mov rax, qword [rsp + 0x30]
mov r15, rax
mov rbx, r14
test al, al
jns 0x1400306fd
mov r15, qword [r14 + 8]
mov rbx, qword [r14]
test r15, r15
je 0x14003070b
test rbx, rbx
je 0x140030b27
lea rdi, [rsi + 0x10]
mov r13, rdi
movzx r12d, byte [rbp + 0x37]
test r12b, r12b
jns 0x140030726
mov r12, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x20]
jmp 0x14003072a
lea rcx, [rbp + 0x20]
test r12, r12
je 0x140030738
test rcx, rcx
je 0x140030b27
cmp r15, r12
mov r8, r12
cmovb r8, r15
test r8, r8
je 0x140030763
mov rdx, rbx
call fcn.140177050
test eax, eax
je 0x140030763
js 0x140030768
mov r13, rbp
mov rbp, qword [rbp]
test rbp, rbp
jne 0x140030712
jmp 0x14003076e
cmp r12, r15
jae 0x140030755
add rbp, 8
jmp 0x140030758
cmp r13, rdi
je 0x1400307c2
movzx edi, byte [r13 + 0x37]
test dil, dil
jns 0x140030787
mov rdi, qword [r13 + 0x28]
mov rdx, qword [r13 + 0x20]
jmp 0x14003078b
lea rdx, [r13 + 0x20]
test rdi, rdi
je 0x140030799
test rdx, rdx
je 0x140030b27
cmp rdi, r15
mov r8, r15
cmovb r8, rdi
test r8, r8
je 0x140030a4a
mov rcx, rbx
call fcn.140177050
test eax, eax
je 0x140030a4a
jns 0x140030a53
lea r15, [rsi + 8]
mov ecx, 0x18
call fcn.140172a4c
mov rbx, rax
cmp byte [rsp + 0x30], 0
js 0x140030a25
mov rax, qword [r14 + 0x10]
mov qword [rbx + 0x10], rax
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
mov ebp, dword [rsp + 0x2c]
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdx, [rsp + 0x38]
mov qword [rdx], rax
mov rcx, r15
mov r8, r14
call fcn.1400384b0
mov r12, qword [rax]
test r12, r12
jne 0x140030885
mov r13, rax
mov ecx, 0x40
call fcn.140172a4c
mov r12, rax
mov rcx, rax
add rcx, 0x20
cmp byte [r14 + 0x17], 0
js 0x140030a39
mov rax, qword [r14 + 0x10]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [r14]
movups xmmword [rcx], xmm0
mov qword [r12 + 0x38], 0
mov rax, qword [rsp + 0x38]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], rax
mov qword [r13], r12
mov rax, qword [r15]
mov rax, qword [rax]
mov rdx, r12
test rax, rax
jne 0x140030b53
mov rcx, qword [rsi + 0x10]
call fcn.14012c7d0
inc qword [rsi + 0x18]
mov qword [r12 + 0x38], rbx
lea r15, [rsi + 0x28]
mov rcx, qword [rsi + 0x28]
mov r14, r15
test rcx, rcx
je 0x1400308c6
mov rax, r15
lea rdx, [rcx + 8]
cmp dword [rcx + 0x20], ebp
cmovae rdx, rcx
cmovae rax, rcx
mov rcx, qword [rdx]
test rcx, rcx
jne 0x14003089d
mov r14, r15
cmp rax, r15
je 0x1400308c6
cmp ebp, dword [rax + 0x20]
cmovb rax, r15
mov r14, rax
mov eax, dword [0x1402a19f0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140030ada
cmp byte [rbx + 0x17], 0
mov rdi, rbx
js 0x140030a1d
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140030ac7
mov rcx, qword [0x1402a19e0]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [0x1402a19e8]
mov rdx, qword [0x1402a19e0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [rsi + 0x60]
mov r12, qword [rsi + 0x68]
cmp rdi, r12
je 0x140030961
cmp byte [rbx + 0x17], 0
mov rdx, rbx
jns 0x14003094b
mov rdx, qword [rbx]
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401d7990.0]
add rdi, 8
jmp 0x14003093a
cmp r14, r15
je 0x140030a60
mov rcx, qword [rsi + 0x40]
test rcx, rcx
je 0x140030aae
mov rax, qword [r14 + 0x28]
mov rdi, rcx
mov rcx, qword [rcx + 0x20]
cmp rax, rcx
jb 0x140030994
jbe 0x1400309f2
mov rcx, qword [rdi + 8]
test rcx, rcx
jne 0x14003097b
jmp 0x1400309a1
mov rcx, qword [rdi]
mov r15, rdi
test rcx, rcx
jne 0x14003097b
jmp 0x1400309a5
lea r15, [rdi + 8]
mov r12, rdi
mov ecx, 0x30
call fcn.140172a4c
mov rdi, rax
mov rax, qword [r14 + 0x28]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], 0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r12
mov qword [r15], rdi
mov rax, qword [rsi + 0x38]
mov rax, qword [rax]
mov rdx, rdi
test rax, rax
jne 0x140030aa2
mov rcx, qword [rsi + 0x40]
call fcn.14012c7d0
inc qword [rsi + 0x48]
mov qword [rdi + 0x28], rbx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1401756e0
mov rcx, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rbx]
jmp 0x1400308f8
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
mov rcx, rbx
call fcn.140013f90
jmp 0x1400307ed
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
call fcn.140013f90
jmp 0x140030847
cmp r15, rdi
jb 0x1400307c2
mov rbx, qword [r13 + 0x38]
mov ebp, dword [rsp + 0x2c]
jmp 0x14003088a
mov rcx, qword [rsi + 0x50]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x140030b5f
mov rax, qword [0x14028a5a0]
and rax, rbx
cmp rax, qword [0x14028a588]
jne 0x140030a96
mov rcx, rbx
call fcn.1400eaf60
mov qword [rsi + 0x50], rbx
mov dword [rsi + 0x58], ebp
jmp 0x1400309f6
mov qword [rsi + 0x38], rax
mov rdx, qword [r15]
jmp 0x1400309e5
lea r15, [rsi + 0x40]
mov rdi, r15
jmp 0x1400309a5
mov rcx, rsi
call fcn.1400ec2e0
jmp 0x1400306d0
test rdi, rdi
je 0x140030932
call fcn.14003bc30
jmp 0x14003090e
lea rcx, [0x1402a19f0]
call fcn.140172b08
cmp dword [0x1402a19f0], 0xffffffff
jne 0x1400308eb
mov qword [0x1402a19e0], 0xffffffffffffffff
lea rcx, [0x1402a19e0]
mov dword [0x1402a19e8], 0
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a19f0]
call fcn.140172aa8
jmp 0x1400308eb
lea rax, str.string_view::string_view__CharT___size_t_:_received_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string_view
lea r9, str.__len__0____s___nullptr
mov r8d, 0x129
call fcn.1401b2820
mov qword [r15], rax
mov rdx, qword [r13]
jmp 0x140030878
call fcn.1400ebe70
jmp 0x140030a7b