Function at 0x1400a9340
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x18], r8
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xc0
mov rsi, qword [rcx]
test rsi, rsi
je 0x1400a954a
movups xmm0, xmmword [rdx]
xor ebx, ebx
cmp byte [rsi + 8], bl
je 0x1400a9406
movaps xmmword [rbp - 0x19], xmm0
mov rax, qword [rdx + 0x10]
mov qword [rbp - 9], rax
mov rax, qword [rdx + 0x18]
mov qword [rbp - 1], rax
mov rax, qword [rdx + 0x20]
mov qword [rbp + 7], rax
mov rax, qword [rdx + 0x28]
mov qword [rbp + 0xf], rax
mov qword [rdx + 0x20], rbx
mov qword [rdx + 0x28], rbx
movups xmm0, xmmword [rdx + 0x30]
movaps xmmword [rbp + 0x17], xmm0
lea rdx, [rbp - 0x19]
lea rcx, [rbp - 0x19]
call fcn.1400a9220
nop
mov rcx, qword [rbp + 0xf]
test rcx, rcx
je 0x1400a9532
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1400a9532
mov rbx, qword [rbp + 0xf]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1400a9532
mov rcx, qword [rbp + 0xf]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x1400a9532
mov rax, qword [rsi]
mov r14, qword [rax + 0x28]
movups xmmword [rbp - 0x59], xmm0
mov rax, qword [rdx + 0x10]
mov qword [rbp - 0x49], rax
mov rax, qword [rdx + 0x18]
mov qword [rbp - 0x41], rax
mov rax, qword [rdx + 0x20]
mov qword [rbp - 0x39], rax
mov rax, qword [rdx + 0x28]
mov qword [rbp - 0x31], rax
mov qword [rdx + 0x20], rbx
mov qword [rdx + 0x28], rbx
movups xmm0, xmmword [rdx + 0x30]
movups xmmword [rbp - 0x29], xmm0
lea rax, [rbp - 0x59]
mov qword [rbp + 0x67], rax
mov ecx, dword [0x1402c6008]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400a9481
mov rax, qword [rax + 8]
test rax, rax
je 0x1400a9481
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1400a9481
mov qword [rax + 0x10], rbx
movzx eax, byte [rcx]
cmp al, 0x14
jb 0x1400a947c
mov byte [rcx + 0x50], al
jmp 0x1400a9492
call fcn.1401ec5c4
mov ecx, 0x51
call fcn.1401ec268
mov rcx, rax
mov byte [rax + 0x50], shutdown
lea rax, [0x1400a9a70]
mov qword [rcx], rax
movups xmm0, xmmword [rbp - 0x59]
movups xmmword [rcx + 8], xmm0
mov rax, qword [rbp - 0x49]
mov qword [rcx + 0x18], rax
mov rax, qword [rbp - 0x41]
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rbx
mov qword [rcx + 0x30], rbx
mov rax, qword [rbp - 0x39]
mov qword [rcx + 0x28], rax
mov rax, qword [rbp - 0x31]
mov qword [rcx + 0x30], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x39], xmm0
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rcx + 0x38], xmm0
mov qword [rbp + 0x77], rcx
mov rbx, qword [rbp - 0x31]
test rbx, rbx
je 0x1400a9516
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400a9516
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1400a9516
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
nop
lea rdx, [rbp + 0x77]
mov rcx, rsi
call r14
nop
mov rcx, qword [rbp + 0x77]
test rcx, rcx
je 0x1400a9532
mov rax, qword [rcx]
xor edx, edx
call rax
nop
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
lea rcx, [rbp + 0x27]
call fcn.140023540
nop
lea rcx, [rbp + 0x27]
call fcn.1400374e0
int3