Function at 0x1802107b0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
sub rsp, 0x20
xor eax, eax
mov rdi, rdx
mov rsi, rcx
mov qword [rdx], rax
mov qword [rdx + 8], rax
call fcn.1801b3770
xor ebx, ebx
mov r12d, eax
test eax, eax
js 0x180210a02
mov ebp, dword [rsi + 0x14]
movabs rax, 0xaaaaaaaaaaaaaaa
cmp rbp, rax
jbe 0x1802107fa
mov rax, rbx
jmp 0x180210823
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180210809
mov rax, rbx
jmp 0x18021080f
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
lea r8, [rbp + rbp*2]
xor edx, edx
shl r8, 3
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rdi], rax
test rax, rax
je 0x1802109fc
mov rdx, qword [rsi + 0x18]
test rdx, rdx
je 0x180210861
lea rcx, [rax + 0x10]
nop dword [rax]
lea rax, [rcx - 0x10]
add rcx, 0x18
mov qword [rdx + 0x58], rax
mov qword [rcx - 0x20], rbx
mov dword [rcx - 0x18], ebx
mov dword [rcx - 0x14], ebx
mov qword [rax], rbx
mov rdx, qword [rdx]
test rdx, rdx
jne 0x180210840
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.180210a80
mov ebp, dword [rsp + 0x50]
movabs rax, 0x1fffffffffffffff
cmp rbp, rax
jbe 0x180210886
mov rdx, rbx
jmp 0x1802108b1
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180210895
mov rax, rbx
jmp 0x18021089b
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
lea r8, [rbp*8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdx, rax
mov qword [rdi + 8], rdx
test rdx, rdx
je 0x1802109fc
mov r8, qword [rsi + 0x18]
test r8, r8
je 0x1802108ff
nop word [rax + rax]
mov rcx, qword [r8 + 0x58]
mov eax, dword [rcx + 0x10]
test eax, eax
je 0x1802108e2
mov qword [rcx], rdx
lea rdx, [rdx + rax*8]
mov eax, dword [rcx + 0x14]
test eax, eax
je 0x1802108f1
mov qword [rcx + 8], rdx
lea rdx, [rdx + rax*8]
mov dword [rcx + 0x10], ebx
mov dword [rcx + 0x14], ebx
mov r8, qword [r8]
test r8, r8
jne 0x1802108d0
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.180210a80
mov rdi, qword [rsi + 0x18]
test rdi, rdi
je 0x180210a60
nop dword [rax]
mov rbx, qword [rdi + 0x58]
mov r8d, dword [rbx + 0x10]
test r8d, r8d
je 0x18021098d
mov rdx, qword [rbx]
lea rcx, [0x180210790]
xor r9d, r9d
call fcn.1801a7da0
mov edx, 1
mov r11d, edx
cmp dword [rbx + 0x10], edx
jbe 0x180210989
mov ecx, 8
mov r9, rcx
nop word [rax + rax]
mov r8, qword [rbx]
mov rax, qword [rcx + r8 - 8]
cmp qword [rcx + r8], rax
je 0x18021097e
mov rax, qword [rcx + r8]
inc r11d
add r9, 8
mov qword [r9 + r8 - 8], rax
inc edx
add rcx, 8
cmp edx, dword [rbx + 0x10]
jb 0x180210960
mov dword [rbx + 0x10], r11d
mov r8d, dword [rbx + 0x14]
test r8d, r8d
je 0x1802109ee
mov rdx, qword [rbx + 8]
lea rcx, [0x180210790]
xor r9d, r9d
call fcn.1801a7da0
mov edx, 1
mov r11d, edx
cmp dword [rbx + 0x14], edx
jbe 0x1802109ea
mov ecx, 8
mov r9, rcx
nop
mov r8, qword [rbx + 8]
mov rax, qword [rcx + r8 - 8]
cmp qword [rcx + r8], rax
je 0x1802109df
mov rax, qword [rcx + r8]
inc r11d
add r9, 8
mov qword [r9 + r8 - 8], rax
inc edx
add rcx, 8
cmp edx, dword [rbx + 0x14]
jb 0x1802109c0
mov dword [rbx + 0x14], r11d
mov rdi, qword [rdi]
test rdi, rdi
jne 0x180210920
jmp 0x180210a60
mov r12d, 0x8007000e
mov rsi, qword [rdi]
test rsi, rsi
je 0x180210a2d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180210a19
mov rax, rbx
jmp 0x180210a1f
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, qword [rdi + 8]
test rsi, rsi
je 0x180210a57
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x180210a49
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
mov rcx, qword [rbx]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov eax, r12d
add rsp, 0x20
pop r12
pop rdi
pop rsi
ret