Function at 0x180102ab0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov rdi, qword [rcx + 0x10]
xor ebp, ebp
mov rsi, r9
mov r15, r8
mov r13, rcx
mov qword [rsp + 0xd8], rdi
mov r14, rbp
mov qword [rsp + 0x138], rbp
mov dword [rsp + 0x130], ebp
test rdx, rdx
jne 0x180102b04
mov r12, rbp
mov qword [rsp + 0x60], rbp
jmp 0x180102b1e
mov r12, qword [rdx + 0x90]
mov qword [rsp + 0x60], r12
test r12, r12
jne 0x180102b1e
lea r12, [rdx + 0x68]
mov qword [rsp + 0x60], r12
mov rax, qword [rdx + 0x48]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx + 0x28]
mov qword [rsp + 0xa0], rbp
mov dword [rsp + 0xa8], ebp
mov dword [rsp + 0xac], ebp
mov byte [rsp + 0xb0], bpl
mov dword [rsp + 0x70], 3
mov qword [rsp + 0xe8], rax
mov dword [rsp + 0x74], ebp
mov dword [rsp + 0x80], ebp
mov dword [rsp + 0x84], ebp
mov dword [rsp + 0x88], ebp
mov dword [rsp + 0x8c], ebp
mov dword [rsp + 0x90], 0xffffffff
mov dword [rsp + 0x94], ebp
mov qword [rsp + 0x78], rbp
mov byte [rsp + 0x98], bpl
mov qword [rsp + 0xb8], rbp
test rdi, rdi
je 0x180102bc6
test byte [rdi + 0xcefa], 2
jne 0x180102bbe
test byte [rdi + 0xcef9], 0x80
je 0x180102bc6
mov dword [rsp + 0x74], 2
lea rdx, [0x180027110]
mov edi, 0x80
mov eax, ebp
mov rcx, rdx
cmp dword [rcx], edi
jae 0x180102be8
inc eax
add rcx, 4
cmp eax, 0x1c
jb 0x180102bd7
jmp 0x180102beb
mov edi, dword [rdx + rax*4]
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180102bfa
mov rax, rbp
jmp 0x180102c00
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8d, edi
xor edx, edx
shl r8, 3
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x180102c1e
mov ebx, 0x8007000e
jmp 0x180102c42
lea rcx, [rsp + 0xa0]
mov r9, rax
mov r8d, edi
mov edx, edi
mov qword [rsp + 0xb8], rax
mov byte [rsp + 0x20], bpl
call fcn.180120230
mov ebx, eax
test ebx, ebx
js 0x180103099
mov ebp, dword [rsp + 0x150]
lea eax, [rbp + rbp*2]
cmp eax, 0x1ffffffe
jbe 0x180102c63
mov ebx, 0x80070216
jmp 0x180102ca8
shl eax, 3
mov ecx, 8
test eax, eax
cmove eax, ecx
mov rcx, qword [rsp + 0xd8]
add rcx, 0xd280
mov edx, eax
mov dword [rsp + 0x130], eax
call fcn.1800c58b0
mov ebx, 0x8007000e
test rax, rax
mov r14, rax
mov qword [rsp + 0x138], rax
mov eax, 0
cmovne ebx, eax
test ebx, ebx
js 0x180102ebe
lea rax, [r14 + rbp*8]
lea ecx, [rbp + rbp]
lea r9, [rsp + 0xc8]
mov qword [rsp + 0xd0], rax
lea rax, [r14 + rcx*8]
mov r8, r15
mov rdx, r12
mov rcx, r13
mov qword [rsp + 0xc0], rax
call fcn.1801029d0
mov ebx, eax
test eax, eax
js 0x180102ebe
mov r14, qword [rsp + 0xc8]
xor r8d, r8d
mov edi, r8d
test ebp, ebp
je 0x180102dbf
mov rdx, qword [rsp + 0x138]
mov r15, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xc0]
mov r12, rdx
sub r15, rsi
sub r12, rsi
sub rax, rsi
mov qword [rsp + 0xe0], rax
nop
mov rcx, qword [r13 + 0x10]
mov eax, edi
mov dword [rsp + 0x28], 0x11
mov dword [rsp + 0x20], r8d
mov r8, qword [rcx + 0xd110]
lea rdx, [rdx + rax*8]
xor r9d, r9d
call fcn.18019f030
mov ebx, eax
test eax, eax
js 0x180102ebe
mov rcx, qword [r12 + rsi]
mov rax, qword [r14 + 0x108]
mov rdx, qword [rsp + 0x138]
mov qword [rcx + 0x108], rax
mov eax, dword [r14 + 0x110]
inc edi
mov dword [rcx + 0x110], eax
mov rax, qword [rsi]
mov rcx, qword [rsp + 0x140]
mov qword [r15 + rsi], rax
mov rax, qword [rsp + 0xe0]
add rsi, 8
mov qword [rax + rsi - 8], rcx
mov r8d, 0
cmp edi, ebp
jb 0x180102d30
mov r12, qword [rsp + 0x60]
mov r15, rcx
mov rsi, qword [rsp + 0x138]
mov rdi, qword [rsp + 0xe8]
mov r9d, ebp
mov r8, rsi
mov rdx, rdi
mov rcx, r13
call fcn.180106ba0
mov ebx, eax
test eax, eax
js 0x180103092
mov rax, qword [r13 + 0x10]
xor edx, edx
lea rcx, [rsp + 0x70]
mov rax, qword [rax + 0xd110]
mov qword [rsp + 0x50], rdx
mov dword [rsp + 0x48], edx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rdx
mov r9, rsi
mov r8, rdi
mov rdx, r12
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.180133120
mov ebx, eax
test eax, eax
js 0x180103092
xor edi, edi
mov r12d, edi
test ebp, ebp
je 0x180102e81
mov rdi, qword [rsi]
cmp qword [rdi + 0x128], 0
je 0x180102e9f
mov rcx, qword [r13 + 0x10]
mov r8b, 1
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + 8]
mov ebx, eax
test eax, eax
js 0x180102ebe
mov rax, qword [rdi + 0xa8]
inc r12d
add rsi, 8
mov qword [rax + 0xa0], r14
cmp r12d, ebp
jb 0x180102e42
xor edi, edi
cmp dword [r15 + 0xdc], 0xffffffff
jne 0x180102ecd
mov r12, qword [rsp + 0x138]
mov ebx, 0x80004005
xor ebp, ebp
jmp 0x18010309c
mov rdx, qword [rsp + 0x60]
lea r9, [0x180040528]
mov r8d, 0xdaf
mov rcx, r13
call fcn.180109730
mov ebx, 0x80004005
mov r12, qword [rsp + 0x138]
xor ebp, ebp
jmp 0x18010309c
mov ecx, dword [r13 + 0x158]
mov rax, qword [r13 + 0x30]
mov rsi, qword [rsp + 0x60]
cmp qword [rax + rcx*8], 0xffffffffffffffff
lea rdx, [rax + rcx*8]
je 0x180102f56
mov eax, dword [r15 + 0xa4]
mov rcx, qword [r13 + 0x10]
lea r9, [rsp + 0x140]
mov dword [rsp + 0x40], eax
mov rax, qword [rcx + 0xd0f8]
mov r8d, 0x23b00001
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdx
mov rcx, r13
mov rdx, rsi
mov qword [rsp + 0x20], rax
call fcn.18012e1f0
mov ebx, eax
test eax, eax
js 0x180102ebe
mov r15, qword [rsp + 0x140]
test ebp, ebp
je 0x180102f56
mov rdi, qword [rsp + 0xc0]
mov rax, r15
mov rcx, rbp
rep stosq qword [rdi], rax
mov eax, dword [r15 + 0xa4]
mov rcx, qword [r13 + 0x10]
mov r12, qword [rsp + 0x138]
mov dword [rsp + 0x40], eax
mov rax, qword [rcx + 0xd0f8]
and ebp, 0xfffff
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xc0]
or ebp, 0x70000000
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xd0]
lea r9, [rsp + 0x140]
mov qword [rsp + 0x28], rax
mov r8d, ebp
mov rdx, rsi
mov rcx, r13
mov qword [rsp + 0x20], r12
call fcn.18012e1f0
xor ebp, ebp
mov ebx, eax
test eax, eax
js 0x18010309c
mov rax, qword [rsp + 0x140]
lea r9, [rsp + 0x140]
mov r8d, 0x70100001
mov ecx, dword [rax + 0xa4]
mov rax, qword [r13 + 0x10]
mov rdx, rsi
mov rax, qword [rax + 0xd0f8]
mov dword [rsp + 0x40], ecx
mov rcx, r13
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0x20], rax
call fcn.18012e1f0
mov ebx, eax
test eax, eax
js 0x18010309c
mov edi, dword [r13 + 0x158]
mov rcx, qword [r13 + 0x30]
mov rax, qword [rsp + 0x140]
mov qword [rcx + rdi*8], rax
mov rdx, qword [r13 + 0x470]
mov r8, rdi
lea r13d, [rbp + 1]
test rdx, rdx
je 0x18010308e
mov rax, qword [rdx + 8]
mov ecx, edi
mov r9, r13
and ecx, 0x3f
shr r8, 6
shl r9, cl
test qword [rax + r8*8], r9
jne 0x18010308e
inc dword [rdx + 0x14]
or qword [rax + r8*8], r9
mov eax, dword [rdx + 0x18]
cmp eax, 0xffffffff
je 0x18010307c
cmp edi, eax
jae 0x18010307f
mov dword [rdx + 0x18], edi
mov eax, dword [rdx + 0x1c]
cmp eax, 0xffffffff
je 0x18010308b
cmp edi, eax
jbe 0x18010308e
mov dword [rdx + 0x1c], edi
mov ebx, ebp
jmp 0x1801030a2
mov r12, rsi
xor ebp, ebp
jmp 0x18010309c
mov r12, rbp
mov r13d, 1
mov edx, dword [rsp + 0xa8]
mov esi, ebp
test edx, edx
je 0x1801030ec
nop
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax + rbp]
test rcx, rcx
je 0x1801030e0
mov rdi, qword [rcx + 0x40]
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
dec dword [rsp + 0xac]
mov rcx, rdi
test rdi, rdi
jne 0x1801030c1
mov edx, dword [rsp + 0xa8]
inc esi
add rbp, 8
cmp esi, edx
jb 0x1801030b0
xor ebp, ebp
cmp byte [rsp + 0xb0], 0
je 0x180103113
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rsp + 0xa0], rbp
mov byte [rsp + 0xb0], 0
mov rdi, qword [rsp + 0x78]
mov dword [rsp + 0xa8], ebp
test rdi, rdi
je 0x180103147
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180103133
mov rax, rbp
jmp 0x180103139
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsp + 0xb8]
mov qword [rsp + 0x78], rbp
test rdi, rdi
je 0x18010317c
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180103168
mov rax, rbp
jmp 0x18010316e
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [rsp + 0xa8], 0
mov qword [rsp + 0xb8], rbp
mov esi, ebp
jbe 0x1801031ca
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax + rbp]
test rcx, rcx
je 0x1801031b9
mov rdi, qword [rcx + 0x40]
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
dec dword [rsp + 0xac]
mov rcx, rdi
test rdi, rdi
jne 0x1801031a1
inc esi
add rbp, 8
cmp esi, dword [rsp + 0xa8]
jb 0x180103190
xor ebp, ebp
cmp byte [rsp + 0xb0], 0
je 0x1801031f1
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rsp + 0xa0], rbp
mov byte [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xd8]
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0xa8], ebp
add rcx, 0xd280
test r12, r12
je 0x180103234
mov rdx, qword [rcx]
test rax, rax
cmove rax, r13
cmp rax, qword [rdx + 8]
jae 0x180103229
sub qword [rdx + 8], rax
jmp 0x180103234
mov rax, qword [rdx]
mov qword [rcx], rax
call fcn.1800c56f0
mov eax, ebx
mov rbx, qword [rsp + 0x148]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret