Function at 0x14003a330
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movapd xmmword [rsp + 0x40], xmm6
mov rsi, rcx
mov rax, qword [0x1400f9028]
xor rax, rsp
mov qword [rsp + 0x38], rax
call fcn.140062c8c
mov r15d, dword [rax]
call fcn.140062c8c
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [0x140100bd0]
cmp rbx, 1
jbe 0x14003a465
mov rbp, qword [rsi + 8]
mov ecx, dword [0x1400fc468]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003a4b2
movsxd rcx, dword [rbx]
shl rcx, 4
mov qword [rax + rcx], rbp
mov ecx, dword [rbx + 4]
movsxd rdx, dword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsi]
test rcx, rcx
je 0x14003a3cf
cmp qword [rsi + 8], 0
jne 0x14003a3cf
call fcn.1400611e0
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.140062c8c
mov dword [rax], r15d
cmp byte [rsi + 0x38], 0
je 0x14003a3f2
mov rdi, qword [rsi + 0x48]
test rdi, rdi
jne 0x14003a41d
mov byte [rsi + 0x38], 0
add rsi, 0x18
mov rcx, rsi
call fcn.140034b20
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140065120
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea rbx, [rsp + 0x28]
mov rcx, rbx
call qword [fcn.14003b480]
mov r14, qword [rsi + 0x40]
mov rdx, qword [rbx]
mov rbp, rdx
sub rbp, r14
cmp rbp, 0xf4240
jge 0x14003a4c5
mov rdi, qword [rsi + 0x48]
test rdi, rdi
je 0x14003a3ee
lock dec dword [rdi]
jne 0x14003a3ee
mov rcx, rdi
call fcn.140091590
mov rcx, rdi
call fcn.140062b78
jmp 0x14003a3ee
lea rcx, [0x140100bd0]
call fcn.14003b3c0
test al, al
je 0x14003a614
mov qword [0x140100bd8], 0
lea r14, [0x140100bd0]
lea rbx, [0x140100bd8]
mov rcx, rbx
xor edx, edx
call fcn.140035760
mov rcx, r14
mov rdx, rbx
xor r8d, r8d
mov r9, r14
call fcn.14003b330
jmp 0x14003a388
test rbp, rbp
je 0x14003a3bb
call fcn.1400065a0
jmp 0x14003a3a2
mov r8, qword [rdi + 0x1f0]
mov ecx, 0x3938700
xor ebx, ebx
mov eax, 0x3938700
add rax, r8
setns bl
movabs rax, 0x7fffffffffffffff
add rax, rbx
add rcx, r8
cmovo rcx, rax
cmp rcx, rdx
jg 0x14003a521
lea rbx, [rsp + 0x30]
mov rcx, rbx
call fcn.140008fb0
mov rbx, qword [rbx]
test rbx, rbx
je 0x14003a521
lock dec dword [rbx]
jne 0x14003a521
mov rcx, rbx
call fcn.140091590
mov rcx, rbx
call fcn.140062b78
movabs rbx, 0x8000000000000001
sub r14, qword [rdi + 0x1f0]
lea rax, [r14 + rbx]
cmp rax, 2
jb 0x14003a543
cvtsi2sd xmm0, r14
jmp 0x14003a554
shr r14, 0x3f
lea rax, [0x1400e7950]
movsd xmm0, qword [rax + r14*8]
divsd xmm0, qword [0x1400e7940]
call fcn.14008d3d0
movsd xmm6, qword [0x1400e7ae0]
ucomisd xmm6, xmm0
jae 0x14003a585
xor eax, eax
ucomisd xmm0, qword [0x1400e7ae8]
mov r14d, 0x7fffffff
cmovb r14d, eax
jmp 0x14003a592
maxsd xmm0, qword [0x1400e7ae8]
cvttsd2si r14d, xmm0
add rbx, rbp
cmp rbx, 2
jb 0x14003a5ad
xorps xmm0, xmm0
cvtsi2sd xmm0, rbp
divsd xmm0, qword [0x1400e7940]
jmp 0x14003a5b5
movsd xmm0, qword [0x1400e7af0]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jae 0x14003a5ce
addsd xmm0, qword [0x1400e7af8]
call fcn.14008c920
jmp 0x14003a5db
addsd xmm0, qword [0x1400d77f0]
call fcn.14008d3d0
ucomisd xmm6, xmm0
jae 0x14003a5f7
xor eax, eax
ucomisd xmm0, qword [0x1400e7ae8]
mov r8d, 0x7fffffff
cmovb r8d, eax
jmp 0x14003a604
maxsd xmm0, qword [0x1400e7ae8]
cvttsd2si r8d, xmm0
mov rcx, rdi
mov edx, r14d
call fcn.1400c23b0
jmp 0x14003a445
mov rbx, qword [0x140100bd0]
jmp 0x14003a388