Function at 0x140012e80
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x848
mov rbp, rcx
mov r13, rdx
mov rsi, r8
test rdx, rdx
je 0x140012fc0
mov r12, qword [rdx]
test r12, r12
je 0x140012fc0
cmp r12, 1
je 0x140013018
lea rax, [rsp + 0x40]
mov r15, 0xffffffffffffffff
mov rcx, rax
mov qword [rsp + 0x30], rax
call fcn.1400128e0
test rbp, rbp
je 0x140012ee1
mov rax, qword [rbp]
lea r15, [rax - 1]
lea rax, [rsi + 0x10]
xor r14d, r14d
xor edi, edi
mov qword [rsp + 0x38], rax
nop
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x30]
mov r9, r14
mov r8, r13
mov rdx, rbp
call fcn.1400126b0
mov rbx, rax
test rax, rax
js 0x1400131a0
mov rdx, r14
lea r8, [rax - 1]
mov rcx, rbp
call fcn.14000dc60
mov r14, rax
test rax, rax
je 0x140013000
mov rdx, qword [rax]
mov rcx, rdi
call fcn.140009db0
lea rdx, [r14 + 0x10]
mov rdi, rax
mov rax, qword [rax]
lea rcx, [rdi + rax + 0x10]
mov rax, qword [r14]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r14]
add qword [rdi], rax
test rsi, rsi
je 0x140012ff0
mov rdx, qword [rsi]
mov rcx, rdi
call fcn.140009db0
mov r8, qword [rsi]
mov rdx, qword [rsp + 0x38]
mov rdi, rax
mov rax, qword [rax]
add r8, 1
lea rcx, [rdi + rax + 0x10]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi]
add qword [rdi], rax
add rbx, r12
mov r14, rbx
jo 0x140012fe0
test rbx, rbx
jns 0x140012ef0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000aaa0
jmp 0x140012ef0
mov rcx, rbp
add rsp, 0x848
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140009490
call fcn.14000ae00
jmp 0x140012f99
mov rcx, rdi
xor edx, edx
call fcn.140009db0
mov rdi, rax
jmp 0x140012f91
mov rcx, rdi
xor edx, edx
call fcn.140009db0
mov rdi, rax
jmp 0x140012f5b
movsx r14d, byte [rdx + 0x10]
mov r13, 0xffffffffffffffff
test rcx, rcx
je 0x140013030
mov rax, qword [rcx]
lea r13, [rax - 1]
xor r12d, r12d
xor edi, edi
lea r15, [rsi + 0x10]
nop dword [rax]
mov r9, r13
mov r8, r12
mov edx, r14d
mov rcx, rbp
call fcn.140012570
mov rbx, rax
test rax, rax
js 0x140013148
mov rdx, r12
lea r8, [rax - 1]
mov rcx, rbp
call fcn.14000dc60
mov r12, rax
test rax, rax
je 0x140013130
mov rdx, qword [rax]
mov rcx, rdi
call fcn.140009db0
lea rdx, [r12 + 0x10]
mov rdi, rax
mov rax, qword [rax]
lea rcx, [rdi + rax + 0x10]
mov rax, qword [r12]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [r12]
add qword [rdi], rax
test rsi, rsi
je 0x140013120
mov rdx, qword [rsi]
mov rcx, rdi
call fcn.140009db0
mov r8, qword [rsi]
mov rdx, r15
mov rdi, rax
mov rax, qword [rax]
add r8, 1
lea rcx, [rdi + rax + 0x10]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi]
add qword [rdi], rax
add rbx, 1
mov r12, rbx
jo 0x140013110
test rbx, rbx
jns 0x140013040
movabs r8, 0x7fffffffffffffff
xor edx, edx
movabs rcx, 0x8000000000000000
call fcn.14000aaa0
jmp 0x140013040
call fcn.14000ae00
jmp 0x1400130e0
mov rcx, rdi
xor edx, edx
call fcn.140009db0
mov rdi, rax
jmp 0x1400130d7
mov rcx, rdi
xor edx, edx
call fcn.140009db0
mov rdi, rax
jmp 0x1400130a7
mov rdx, r12
mov rcx, rbp
call fcn.14000dd70
mov rsi, rax
test rax, rax
je 0x1400131c8
mov rdx, qword [rsi]
mov rcx, rdi
call fcn.140009db0
lea rdx, [rsi + 0x10]
mov rbx, rax
mov rax, qword [rax]
lea rcx, [rbx + rax + 0x10]
mov rax, qword [rsi]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi]
add qword [rbx], rax
mov rax, rbx
add rsp, 0x848
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r14
mov rcx, rbp
call fcn.14000dd70
mov rsi, rax
test rax, rax
jne 0x14001315b
xor edx, edx
mov rcx, rdi
call fcn.140009db0
mov rbx, rax
jmp 0x140013187
xor edx, edx
mov rcx, rdi
add rsp, 0x848
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140009db0