Function at 0x140155490
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
push rdi
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
movzx ebp, r9b
mov rsi, r8
mov r14, rdx
mov rbx, rcx
call fcn.140154c00
mov rdi, rax
mov r15d, 0xffffffff
test rax, rax
je 0x140155666
test bpl, bpl
je 0x1401554f6
mov rcx, qword [rax]
test rcx, rcx
je 0x1401554f6
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1401554f6
mov rax, qword [rcx]
call qword [rax + 8]
test rsi, rsi
jne 0x14015560d
cmp qword [r14], rsi
jne 0x14015560d
mov ecx, dword [0x140292ca8]
cmp ecx, 0xffffffff
je 0x14015551e
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x140155538
call fcn.140154c90
mov ecx, dword [0x140292ca8]
cmp ecx, 0xffffffff
jne 0x140155532
xor eax, eax
jmp 0x140155538
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea r10, [rax + 0x28]
mov r8, qword [r10]
mov rax, qword [r8 + 8]
mov rcx, rax
mov r9, r8
cmp byte [rax + 0x19], 0
jne 0x140155573
nop
cmp qword [rcx + 0x20], rbx
jae 0x14015555c
mov rcx, qword [rcx + 0x10]
jmp 0x14015556d
jbe 0x140155567
cmp byte [r9 + 0x19], 0
cmovne r9, rcx
mov r8, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x140155550
cmp byte [r9 + 0x19], 0
jne 0x14015557d
mov rax, qword [r9]
cmp byte [rax + 0x19], 0
jne 0x14015559b
cmp rbx, qword [rax + 0x20]
jae 0x140155591
mov r9, rax
mov rax, qword [rax]
jmp 0x140155595
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x19], 0
je 0x140155583
mov rax, r8
cmp r8, r9
je 0x1401555fb
cmp byte [rax + 0x19], 0
jne 0x1401555f6
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], 0
jne 0x1401555d1
mov rax, rcx
mov rdx, qword [rcx]
cmp byte [rdx + 0x19], 0
jne 0x1401555f6
nop
mov rax, rdx
mov rcx, qword [rdx]
mov rdx, rcx
cmp byte [rcx + 0x19], 0
je 0x1401555c0
jmp 0x1401555f6
mov rdx, qword [rax + 8]
cmp byte [rdx + 0x19], 0
jne 0x1401555f3
nop dword [rax + rax]
cmp rax, qword [rdx + 0x10]
jne 0x1401555f3
mov rax, rdx
mov rdx, qword [rdx + 8]
cmp byte [rdx + 0x19], 0
je 0x1401555e0
mov rax, rdx
cmp rax, r9
jne 0x1401555a3
lea rdx, [rsp + 0x28]
mov rcx, r10
call fcn.140154950
jmp 0x1401556a1
mov rdx, qword [r14]
mov rax, qword [r14 + 8]
test rax, rax
je 0x140155623
mov ecx, 1
lock xadd dword [rax + 8], ecx
mov qword [rdi], rdx
mov rbx, qword [rdi + 8]
mov qword [rdi + 8], rax
test rbx, rbx
je 0x140155660
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140155660
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140155660
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov qword [rdi + 0x10], rsi
jmp 0x1401556a1
mov rax, qword [r14]
test rax, rax
jne 0x140155673
test rsi, rsi
je 0x1401556a1
mov qword [rsp + 0x30], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140155690
mov ecx, 1
lock xadd dword [rax + 8], ecx
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140154170
nop
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x1401556d6
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401556d6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x1401556d6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret