Function at 0x14016c650
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x140491ab8]
xor rax, rsp
mov qword [rbp + 0x78], rax
mov r15d, r9d
mov r11, r8
mov rdi, rdx
mov rsi, rcx
xor r12d, r12d
mov dword [rcx + 0x30], r9d
cmp r9d, 1
je 0x14016c6f3
mov r9, qword [rcx + 8]
mov rdx, qword [r9 + 0x58]
movsxd rcx, dword [rdx]
cmp rcx, r8
cmovb r8d, ecx
sub ecx, r8d
mov dword [rdx], ecx
mov rcx, qword [r9 + 0x40]
movsxd rax, r8d
add qword [rcx], rax
mov rax, qword [r9 + 0x40]
mov rdx, qword [rax]
mov rax, qword [r9 + 0x38]
mov rcx, qword [rax]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [r9 + 0x50]
mov dword [rax], edx
mov rax, qword [rdi + 0x10]
test al, 1
je 0x14016c6ea
cmp rax, 1
jne 0x14016c8e8
cmp dword [rdi], r12d
jne 0x14016c8e8
test r11, r11
je 0x14016c8e8
mov rcx, qword [rsi + 8]
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
mov rax, qword [rcx + 0x38]
mov rcx, qword [rax]
sub rdx, rcx
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x68], rdx
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x20], r12
lea rax, [rbp - 0x70]
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x70]
mov qword [rbp - 0x30], rcx
lea rax, [rbp - 0x60]
mov qword [rbp - 0x28], rax
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x50], xmm0
cmp qword [rcx + 8], r12
jne 0x14016c75a
add rcx, 0x10
lea rax, [rbp - 0x60]
cmp rcx, rax
jne 0x14016c740
mov qword [rbp - 0x30], rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rax
mov r8, qword [rsi + 0x38]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x10]
call fcn.14016d4e0
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x20], r12
xorps xmm1, xmm1
mov qword [rbp - 0x40], r12
mov rbx, r12
lea rax, [rbp - 0x70]
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x70]
lea rax, [rbp - 0x60]
mov qword [rbp - 0x28], rax
nop word [rax + rax]
add rbx, qword [rcx + 8]
add rcx, 0x10
lea rax, [rbp - 0x60]
cmp rcx, rax
jne 0x14016c7b0
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x20], rbx
lea rdx, [rsi + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14016c7e0
mov r8, qword [rdx]
mov r9, r8
add r8, qword [rdx + 0x10]
jmp 0x14016c7ea
mov r8, qword [rdx + 0x10]
add r8, rdx
mov r9, rdx
movaps xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [rbp - 0x40]
movaps xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rbp - 0x30]
movaps xmmword [rsp + 0x70], xmm1
movsd xmm0, qword [rbp - 0x20]
movsd qword [rbp - 0x80], xmm0
movups xmm1, xmmword [rbp - 0x10]
movaps xmmword [rbp - 0x50], xmm1
movups xmm0, xmmword [rbp]
movaps xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [rbp + 0x10]
movaps xmmword [rbp - 0x30], xmm1
movsd xmm0, qword [rbp + 0x20]
movsd qword [rbp - 0x20], xmm0
mov qword [rsp + 0x20], r8
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x10]
call fcn.140172c30
mov rdx, qword [rbp + 0x20]
cmp rdx, rbx
je 0x14016c863
cmp byte [rbp + 0x28], r12b
je 0x14016c863
mov rcx, qword [rsi + 0x20]
add rcx, rdx
mov qword [rsi + 0x38], rcx
mov r14, r12
jmp 0x14016c8d6
mov r9, qword [rsi + 8]
mov rax, qword [r9 + 0x40]
mov rcx, qword [rax]
mov rax, qword [r9 + 0x38]
sub rcx, qword [rax]
cmp rcx, qword [r9 + 0x68]
jne 0x14016c888
mov qword [rsi + 0x38], 0xffffffffffffffff
mov r14, r12
jmp 0x14016c8d6
cmp rdx, rbx
cmovne rbx, rdx
mov qword [rsi + 0x38], rbx
mov r8, qword [r9 + 0x68]
mov rax, qword [r9 + 0x40]
mov rcx, qword [rax]
mov rax, qword [r9 + 0x38]
sub rcx, qword [rax]
sub r8, rcx
mov rdx, qword [r9 + 0x80]
sub rdx, qword [r9 + 0x70]
sub rdx, rcx
mov eax, 0x10000
cmp r8, rax
cmovb rax, r8
mov r14d, 0x200
cmp rdx, r14
cmova r14, rdx
cmp rax, r14
cmovb r14, rax
test r15d, r15d
jne 0x14016ca53
test r14, r14
jne 0x14016ca53
cmp qword [rsi + 0x38], 0xffffffffffffffff
jne 0x14016c948
mov dword [rbp - 0x6c], r12d
movabs rcx, 0x4d54ee85da812030
add rcx, qword [0x1404927b8]
lea rbx, [0x1404927b0]
cmp rcx, 1
jbe 0x14016c925
mov rax, qword [0x1404927b0]
mov edx, 3
mov rcx, rbx
call qword [rax + 0x30]
jmp 0x14016c927
mov al, 1
movzx eax, al
add rax, 2
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x70], 3
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
movsd xmm1, qword [rbp - 0x60]
jmp 0x14016c950
movups xmm0, xmmword [rdi]
movsd xmm1, qword [rdi + 0x10]
lea r14, [rsp + 0x30]
movsd qword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x30], xmm0
mov rax, qword [rdi + 0x10]
test al, 1
je 0x14016c973
cmp rax, 1
jne 0x14016c97d
cmp dword [rdi], r12d
jne 0x14016c97d
mov rbx, qword [rsi + 0x38]
cmp rbx, 0xffffffffffffffff
jne 0x14016c980
mov rbx, r12
lea rdx, [rsi + 0x50]
lea rcx, [rbp - 0x10]
call fcn.14016ae30
movups xmm0, xmmword [r14]
movaps xmmword [rbp + 0x50], xmm0
movsd xmm1, qword [r14 + 0x10]
movsd qword [rbp + 0x60], xmm1
mov qword [rbp + 0x68], rbx
mov rdi, qword [rsi + 0x40]
mov rbx, qword [rsi + 0x48]
mov ecx, dword [0x14049b880]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14016c9ce
nop dword [rax]
cmp qword [rax], rbx
je 0x14016ca3c
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14016c9c0
lea rax, [rbp - 0x10]
mov qword [rsp + 0x30], rax
lea rdx, [rbp - 0x10]
mov ecx, 0xc0
call fcn.140131790
mov rbx, rax
mov qword [rax + 0x20], r12
lea rax, [0x14017d860]
mov qword [rbx + 0x28], rax
mov qword [rbx], r12
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r12
mov dword [rbx + 0x30], r12d
lea rcx, [rbx + 0x38]
lea rdx, [rbp - 0x10]
call fcn.14017ddb0
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov r8, rbx
lea rdx, [rsi + 0x48]
mov rcx, rdi
call fcn.140138550
nop
lea rcx, [rbp - 8]
call fcn.14013b150
jmp 0x14016ca99
cmp qword [rax + 8], 0
je 0x14016c9ce
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.140182750
nop
jmp 0x14016ca31
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rdx, r14
mov rcx, rbx
call fcn.140144290
mov rax, qword [rbx + 0x40]
mov rcx, qword [rax]
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x68], r14
lea rax, [rdi + 0x68]
lea rdx, [rdi + 8]
mov rcx, qword [rdi]
add rcx, 0x28
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea r8, [rbp - 0x70]
call fcn.14017a0c0
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.14035b0c0
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret