Function at 0x1400d3590
Capabilities:
Get thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x98
mov rsi, rdx
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0x90], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], rax
movaps xmm0, xmmword [0x1401efb80]
movaps xmmword [rsp + 0x30], xmm0
call fcn.1400d3890
mov r14, rax
movsxd rax, dword [rsi + 0x68]
mov qword [rsp + 0x50], rax
mov rbx, qword [rsi + 0x20]
mov rcx, qword [0x140227618]
test rcx, rcx
jne 0x1400d3835
xor edi, edi
movabs rax, 0xfffffffe00000000
and rax, rdi
cmp rax, qword [0x14021af08]
je 0x1400d3842
mov qword [rsp + 0x30], rdi
test rdi, rdi
jne 0x1400d384f
mov qword [rsp + 0x40], 0
movabs rax, 0xc001c0ded017d00d
mov qword [rsp + 0x50], rax
movabs rax, 0xd00d1d1d178119
mov qword [rsp + 0x88], rax
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x58], rax
movups xmm0, xmmword [rsi + 0x38]
movups xmm1, xmmword [rsi + 0x48]
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm1
mov eax, dword [rsi + 0x58]
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x50]
call fcn.1400d3880
mov eax, dword [0x1402257d8]
mov ecx, dword [0x140222a94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400d37c5
mov ecx, dword [0x14021aed0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d382e
movsxd rcx, dword [0x1402257d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402257d4]
jne 0x1400d382e
mov rbx, qword [rax + rcx]
mov ecx, dword [0x14021aed0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d3808
movsxd rcx, dword [0x1402257d0]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x1402257d4]
movsxd rdx, dword [0x1402257d0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [rsi]
mov qword [rsi], 0
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [0x14023a010]
test rdi, rdi
jne 0x1400d37aa
mov ecx, dword [0x14021aed0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400d381b
movsxd rcx, dword [0x1402257d0]
shl rcx, 4
mov qword [rax + rcx], rbx
mov ecx, dword [0x1402257d4]
movsxd rdx, dword [0x1402257d0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x88], 0
lea rcx, [rsp + 0x50]
call fcn.1400d3880
lea rcx, [rsp + 0x30]
call fcn.1400d38a0
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14011fe20
nop
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r14
ret
lock dec dword [rdi]
jne 0x1400d3729
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [0x14023a010]
jmp 0x1400d3729
lea rcx, [0x1402257d8]
call fcn.14011d638
cmp dword [0x1402257d8], 0xffffffff
jne 0x1400d369a
mov qword [0x1402257d0], 0
lea rcx, [0x1402257d0]
xor edx, edx
call fcn.140012fc0
lea rcx, [0x1402257d8]
call fcn.14011d5d8
jmp 0x1400d369a
test rsi, rsi
je 0x1400d3709
call fcn.140013120
jmp 0x1400d36e5
test rbx, rbx
je 0x1400d3763
call fcn.140013120
jmp 0x1400d373f
xor ebx, ebx
jmp 0x1400d36cf
call fcn.140178d80
mov rdi, rax
jmp 0x1400d35f3
mov rcx, rdi
call fcn.1400f2260
jmp 0x1400d360d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, r14
mov r8, rbx
mov r9b, 0x10
call fcn.140177ad0
mov dword [rsp + 0x38], eax
jmp 0x1400d361b