Function at 0x1400caa70
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xe0
mov rbx, r8
mov rdi, rdx
mov r11, rcx
mov r10, qword [rcx + 8]
cmp r9d, 1
je 0x1400ca37b
mov rdx, rbx
mov rcx, r10
call fcn.1400b48e0
movups xmm0, xmmword [r11 + 0x28]
movups xmmword [rbp - 0x41], xmm0
movups xmm1, xmmword [rdi]
movups xmmword [rbp - 0x31], xmm1
mov qword [rbp - 0x21], rbx
lea rdi, [r11 + 0x20]
mov rsi, qword [r11 + 0x18]
mov rbx, qword [rdi]
mov ecx, dword [0x1403a2748]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400ca2ee
nop
cmp qword [rax], rbx
je 0x1400ca35f
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400ca2e0
lea rax, [rbp - 0x41]
mov qword [rbp - 0x59], rax
lea rdx, [rbp - 0x41]
mov ecx, 0x68
call fcn.140035580
mov r8, rax
xor r9d, r9d
mov qword [rax + 0x20], r9
lea rax, [0x1400bbd90]
mov qword [r8 + 0x28], rax
mov qword [r8], r9
mov qword [r8 + 8], r9
mov qword [r8 + 0x10], r9
mov qword [r8 + 0x18], r9
mov dword [r8 + 0x30], r9d
movups xmm0, xmmword [rbp - 0x41]
movups xmmword [r8 + 0x38], xmm0
movups xmm1, xmmword [rbp - 0x31]
movups xmmword [r8 + 0x48], xmm1
mov rax, qword [rbp - 0x21]
mov qword [r8 + 0x58], rax
mov qword [rbp - 0x49], r9
mov qword [rbp - 0x51], r9
mov rdx, rdi
mov rcx, rsi
call fcn.140037790
nop
jmp 0x1400ca415
cmp qword [rax + 8], 0
je 0x1400ca2ee
nop
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x41]
call fcn.140063fb0
nop
nop
jmp 0x1400ca415
mov rax, qword [r10 + 0x38]
mov rcx, qword [rax]
mov rax, qword [r10 + 0x40]
mov rdx, qword [rax]
sub rdx, rcx
mov qword [rbp - 0x59], rcx
mov qword [rbp - 0x51], rdx
mov r8, qword [r11]
mov qword [rbp - 0x19], r8
movups xmm0, xmmword [rbp - 0x59]
movups xmmword [rbp - 0x11], xmm0
xor r9d, r9d
mov qword [rbp - 1], r9
mov qword [rbp + 0xf], r8
mov qword [rbp + 0x17], r10
movups xmm0, xmmword [r11 + 0x18]
movups xmmword [rbp + 0x27], xmm0
movups xmm1, xmmword [r11 + 0x28]
movups xmmword [rbp + 0x37], xmm1
mov dword [rbp + 7], 1
test rdx, rdx
cmove r9, rdx
add rcx, r9
sub rdx, r9
mov eax, 0x10000
cmp rdx, rax
cmovb rax, rdx
mov qword [rbp - 0x59], rcx
mov qword [rbp - 0x51], rax
lea rax, [r8 + 0x68]
lea rdx, [r8 + 8]
mov rcx, qword [r8]
add rcx, 0x28
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp - 0x59]
call fcn.1400cb0b0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
sub rsp, 0x48
mov dword [rcx + 0x20], r9d
mov r11, r8
mov r10, rcx
cmp r9d, 1
je 0x1400caac2
mov r8, qword [rcx + 0x18]
add r8, r11
mov qword [rcx + 0x18], r8
movzx ecx, byte [rdx + 4]
test cl, cl
jne 0x1400caa9c
test r11, r11
je 0x1400caab2
cmp r8, qword [r10 + 0x10]
jae 0x1400caab2
xor eax, eax
mov r9d, 0x10000
test cl, cl
cmovne r9d, eax
je 0x1400caad1
lea rcx, [r10 + 0x28]
xor r9d, r9d
add rsp, 0x48
jmp 0x1400ca270
xor eax, eax
mov r9d, 0x10000
cmp byte [rdx + 4], al
cmovne r9d, eax
mov rdx, qword [r10 + 0x10]
mov rax, qword [r10]
mov rcx, qword [r10 + 0x18]
cmp rcx, rdx
cmovae rcx, rdx
lea r8, [rax + 0x68]
sub rdx, rcx
mov qword [rsp + 0x28], r8
add rcx, qword [r10 + 8]
lea r8, [rsp + 0x30]
cmp rdx, r9
mov qword [rsp + 0x30], rcx
mov rcx, qword [rax]
cmovae rdx, r9
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x38], rdx
add rcx, 0x28
lea rdx, [rax + 8]
xor r9d, r9d
call fcn.1400cb0b0
add rsp, 0x48
ret
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
sub rsp, 0x28
add rcx, 0x10
xor r9d, r9d
mov r8, qword [rcx + 0x70]
lea rdx, [rcx + 0x60]
add rsp, 0x28
jmp 0x1400caa70