Function at 0x140163210
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x60
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x58], rax
lea rax, [0x1402ff7a0]
mov qword [rcx], rax
lea rax, [0x1402fe3e0]
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], 0
mov rax, qword [r9]
test rax, rax
je 0x140163288
mov ecx, 1
lock xadd dword [rax], ecx
test ecx, ecx
jle 0x14016357f
mov rcx, qword [rsi + 0x10]
mov qword [rsi + 0x10], rax
test rcx, rcx
je 0x140163288
lock dec dword [rcx]
jne 0x140163288
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
lea r14, [rsi + 0x18]
mov rcx, r14
mov rdx, rbx
call fcn.1400683d0
mov qword [rsi + 0x28], 0
mov rax, qword [rdi + 0x10]
inc rax
cmp rax, 1
ja 0x1401632bd
mov rax, qword [rdi + 0x20]
inc rax
cmp rax, 1
jbe 0x140163582
mov eax, dword [0x14035aa80]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401634ba
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140163577
mov rcx, qword [0x14035aa70]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14035aa78]
jne 0x140163577
mov r15, qword [rax + rcx]
lea r12, [rsi + 8]
mov rax, qword [0x1403428e0]
and rax, r15
cmp rax, qword [0x1403428c8]
je 0x140163488
mov rcx, r15
mov rdx, r12
call fcn.1400de0d0
mov rax, qword [0x1403428e0]
and rax, r15
cmp rax, qword [0x1403428c8]
jne 0x140163358
mov rcx, r15
call fcn.1401571d0
mov eax, dword [0x14035ab10]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401634fc
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140163574
mov rcx, qword [0x14035ab00]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14035ab08]
jne 0x140163574
mov rax, qword [rax + rcx]
test rax, rax
je 0x140163574
mov r15, qword [rax]
test r15, r15
je 0x1401633c8
lock inc dword [r15 + 8]
mov rax, qword [r14]
inc rax
cmp rax, 1
ja 0x140163481
movzx ebp, byte [rsi + 0x20]
xor ebp, 1
lea r14, [rsp + 0x28]
mov rcx, r14
mov rdx, rdi
call fcn.14008b7e0
mov qword [rsp + 0x20], r15
lea r15, [rsp + 0x50]
mov rcx, r15
mov rdx, rsi
mov r8, r14
mov r9d, ebp
call fcn.1400e7c20
mov rax, qword [r15]
mov rcx, qword [rsi + 0x28]
mov qword [rsi + 0x28], rax
test rcx, rcx
je 0x140163424
lock dec dword [rcx + 8]
je 0x1401634ab
mov rcx, qword [rsi + 0x28]
mov rax, qword [rcx]
mov rax, qword [rax]
call qword [case.0x140211850.0]
mov rax, qword [rbx]
inc rax
cmp rax, 2
jae 0x140163495
mov rax, qword [rdi + 0x20]
inc rax
cmp rax, 2
jae 0x14016353e
mov rax, qword [rdi + 0x10]
inc rax
cmp rax, 2
jae 0x140163559
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140171860
mov rax, rsi
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
xor ebp, ebp
jmp 0x1401633df
mov rcx, r15
call fcn.140156f20
jmp 0x140163332
call fcn.1400412c0
mov rcx, qword [rbx]
call fcn.140071ab0
mov qword [rbx], 0
jmp 0x140163440
mov edx, 1
call fcn.1400ef200
jmp 0x140163424
lea rcx, [0x14035aa80]
call fcn.14016f8b4
cmp dword [0x14035aa80], 0xffffffff
jne 0x1401632e2
xorps xmm0, xmm0
movups xmmword [0x14035aa70], xmm0
lea rcx, [0x14035aa70]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035aa80]
call fcn.14016ef8c
jmp 0x1401632e2
lea rcx, [0x14035ab10]
call fcn.14016f8b4
cmp dword [0x14035ab10], 0xffffffff
jne 0x14016337d
xorps xmm0, xmm0
movups xmmword [0x14035ab00], xmm0
lea rcx, [0x14035ab00]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035ab10]
call fcn.14016ef8c
jmp 0x14016337d
call fcn.1400412c0
mov rcx, qword [rdi + 0x20]
call fcn.140071ab0
mov qword [rdi + 0x20], 0
jmp 0x140163451
call fcn.1400412c0
mov rcx, qword [rdi + 0x10]
call fcn.140071ab0
mov qword [rdi + 0x10], 0
jmp 0x140163462
int3
xor r15d, r15d
jmp 0x140163317
int3
int3