Function at 0x1400823a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x18]
sub rsp, 0x110
mov qword [rbp - 0x80], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
mov r11, r8
mov rbx, rdx
mov rdi, rcx
mov rcx, qword [rcx + 8]
cmp r9d, 1
je 0x140081f34
mov rdx, r8
call fcn.14006f800
movups xmm0, xmmword [rdi + 0x28]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rbx]
movups xmmword [rsp + 0x68], xmm1
mov qword [rsp + 0x78], r11
lea r14, [rdi + 0x20]
mov rdi, qword [rdi + 0x18]
mov rbx, qword [r14]
mov ecx, dword [0x1402d3934]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140081e22
nop dword [rax + rax]
cmp qword [rax], rbx
je 0x140081f17
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140081e10
lea rax, [rsp + 0x58]
mov qword [rbp - 0x78], rax
lea rdx, [rsp + 0x58]
mov ecx, 0x60
call fcn.14001a0a0
mov rbx, rax
xor esi, esi
mov qword [rax + 0x20], rsi
lea rax, [fcn.140077660]
mov qword [rbx + 0x28], rax
mov qword [rbx], rsi
mov qword [rbx + 8], rsi
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], rsi
mov dword [rbx + 0x30], esi
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rbx + 0x38], xmm0
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [rbx + 0x48], xmm1
mov rax, qword [rsp + 0x78]
mov qword [rbx + 0x58], rax
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.14001c990
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x70], rsi
test al, al
je 0x140081f12
mov rax, qword [r14]
mov qword [rsp + 0x40], rax
mov ecx, dword [0x1402d3934]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x40]
mov ecx, dword [0x1402d3934]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x20], rax
mov rax, qword [r14]
mov qword [rsp + 0x28], rax
call fcn.1400a9490
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rbx
mov rcx, qword [rdi + 0x28]
call fcn.140077660
nop
lea rcx, [rsp + 0x20]
call fcn.14001c760
nop
mov rdx, qword [rsp + 0x50]
mov ecx, dword [0x1402d3934]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
jmp 0x140081faa
cmp qword [rax + 8], 0
je 0x140081e22
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.140047e70
nop
jmp 0x140081faa
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
mov qword [rsp + 0x20], rdx
mov rax, qword [rcx + 0x40]
mov rcx, qword [rax]
sub rcx, rdx
mov qword [rsp + 0x28], rcx
mov rbx, qword [rdi]
xor esi, esi
mov dword [rsp + 0x30], esi
call fcn.1400a9490
mov qword [rsp + 0x38], rax
mov qword [rbp - 0x60], rbx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], rsi
mov dword [rbp - 0x40], esi
mov rax, qword [rdi]
mov qword [rbp - 0x38], rax
mov rax, qword [rdi + 8]
mov qword [rbp - 0x30], rax
movups xmm0, xmmword [rdi + 0x18]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rdi + 0x28]
movups xmmword [rbp - 0x10], xmm1
lea r9d, [rsi + 1]
xor r8d, r8d
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x60]
call fcn.1400823a0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
push rbx
push rsi
sub rsp, 0x98
mov dword [rcx + 0x20], r9d
mov r11, r8
mov r10, rdx
mov rsi, rcx
cmp r9d, 1
je 0x1400823ff
mov r8, qword [rcx + 0x18]
add r8, r11
mov qword [rcx + 0x18], r8
mov eax, dword [rdx]
test eax, eax
jne 0x1400823d3
test r11, r11
je 0x1400823e7
cmp r8, qword [rcx + 0x10]
jae 0x1400823e7
xor ebx, ebx
mov edx, 0x10000
test eax, eax
cmovne edx, ebx
je 0x14008240c
add rcx, 0x28
xor r9d, r9d
mov rdx, r10
add rsp, 0x98
pop rsi
pop rbx
jmp 0x140081d90
xor ebx, ebx
mov edx, 0x10000
cmp dword [r10], ebx
cmovne edx, ebx
mov rcx, qword [rcx + 0x18]
mov rax, qword [rsi]
mov qword [rsp + 0xb8], rbp
mov rbp, qword [rsi + 0x10]
cmp rcx, rbp
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0x90], r13
mov r13, qword [rax]
cmovae rcx, rbp
sub rbp, rcx
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], r15
lea r14, [rax + 8]
mov r15, qword [rsi + 8]
add r15, rcx
mov ecx, 0xb8
cmp rbp, rdx
mov qword [rsp + 0x50], r15
cmovae rbp, rdx
lea rdx, [rsi + 0x50]
mov qword [rsp + 0x58], rbp
call fcn.14001a0a0
mov rcx, qword [r14 + 0x18]
mov rdi, rax
test rcx, rcx
je 0x14008248a
lock inc dword [rcx + 0xc]
mov rcx, qword [r14 + 0x18]
mov rax, qword [r14 + 0x10]
lea rdx, [0x140082610]
mov qword [rdi + 0x28], rdx
mov qword [rdi + 0x20], rbx
mov qword [rdi], rbx
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], rbx
mov dword [rdi + 0x30], ebx
mov qword [rdi + 0x38], rbx
mov qword [rdi + 0x40], rbx
mov qword [rsp + 0x40], rax
test rcx, rcx
je 0x1400824ce
lock inc dword [rcx + 0xc]
mov rax, qword [rsp + 0x40]
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rcx
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rdi + 0x48], xmm0
mov rax, qword [rsi]
mov qword [rdi + 0x58], rax
movups xmm0, xmmword [rsi + 8]
movups xmmword [rdi + 0x60], xmm0
movsd xmm1, qword [rsi + 0x18]
movsd qword [rdi + 0x70], xmm1
mov eax, dword [rsi + 0x20]
mov dword [rdi + 0x78], eax
mov rax, qword [rsi + 0x28]
mov qword [rdi + 0x80], rax
mov rax, qword [rsi + 0x30]
mov qword [rdi + 0x88], rax
movups xmm0, xmmword [rsi + 0x40]
movups xmmword [rdi + 0x98], xmm0
movups xmm0, xmmword [rsi + 0x50]
movups xmmword [rdi + 0xa8], xmm0
test rcx, rcx
je 0x140082544
mov eax, 0xffffffff
lock xadd dword [rcx + 0xc], eax
sub eax, 1
jne 0x140082544
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test byte [r14 + 8], 0x10
mov qword [rsp + 0x68], r15
mov r15, qword [rsp + 0x80]
mov dword [rsp + 0x60], ebp
mov qword [rsp + 0x70], rbp
je 0x14008256a
test rbp, rbp
jne 0x14008256a
mov al, 1
jmp 0x14008256c
xor eax, eax
mov qword [rsp + 0x30], rdi
lea rcx, [r13 + 0x28]
mov byte [rsp + 0x28], al
lea r8, [rsp + 0x60]
mov r9d, 1
mov dword [rsp + 0x20], ebx
mov rdx, r14
call fcn.140061310
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xb8]
add rsp, 0x98
pop rsi
pop rbx
ret