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

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x28]
sub rsp, 0x120
mov qword [rbp - 0x78], 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 0x14009b203
mov rdx, r8
call fcn.14006f800
movups xmm0, xmmword [rdi + 0x28]
movups xmmword [rsp + 0x58], xmm0
movsd xmm1, qword [rdi + 0x38]
movsd qword [rsp + 0x68], xmm1
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], 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 0x14009b0e4
cmp qword [rax], rbx
je 0x14009b1e3
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14009b0d2
lea rax, [rsp + 0x58]
mov qword [rbp - 0x70], rax
lea rdx, [rsp + 0x58]
mov ecx, 0x68
call fcn.14001a0a0
mov rbx, rax
xor esi, esi
mov qword [rax + 0x20], rsi
lea rax, [fcn.14009b560]
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
movsd xmm1, qword [rsp + 0x68]
movsd qword [rbx + 0x48], xmm1
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rbx + 0x50], xmm0
mov rax, qword [rbp - 0x80]
mov qword [rbx + 0x60], rax
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.14001c990
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x68], rsi
test al, al
je 0x14009b1de
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.14009b560
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 0x14009b283
cmp qword [rax + 8], 0
je 0x14009b0e4
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.14009bc80
nop
jmp 0x14009b283
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 - 0x58], rbx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], rsi
mov dword [rbp - 0x38], esi
mov rax, qword [rdi]
mov qword [rbp - 0x30], rax
mov rax, qword [rdi + 8]
mov qword [rbp - 0x28], rax
movups xmm0, xmmword [rdi + 0x18]
movups xmmword [rbp - 0x18], xmm0
movups xmm1, xmmword [rdi + 0x28]
movups xmmword [rbp - 8], xmm1
movsd xmm0, qword [rdi + 0x38]
movsd qword [rbp + 8], xmm0
lea r9d, [rsi + 1]
xor r8d, r8d
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x58]
call fcn.14009b330
lea r11, [rsp + 0x120]
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 0x14009b38f
mov r8, qword [rcx + 0x18]
add r8, r11
mov qword [rcx + 0x18], r8
mov eax, dword [rdx]
test eax, eax
jne 0x14009b363
test r11, r11
je 0x14009b377
cmp r8, qword [rcx + 0x10]
jae 0x14009b377
xor ebx, ebx
mov edx, 0x10000
test eax, eax
cmovne edx, ebx
je 0x14009b39c
add rcx, 0x28
xor r9d, r9d
mov rdx, r10
add rsp, 0x98
pop rsi
pop rbx
jmp 0x14009b050
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, 0xc0
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 0x14009b41a
lock inc dword [rcx + 0xc]
mov rcx, qword [r14 + 0x18]
mov rax, qword [r14 + 0x10]
lea rdx, [0x14009ba60]
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 0x14009b45e
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
movsd xmm1, qword [rsi + 0x60]
movsd qword [rdi + 0xb8], xmm1
test rcx, rcx
je 0x14009b4e1
mov eax, 0xffffffff
lock xadd dword [rcx + 0xc], eax
sub eax, 1
jne 0x14009b4e1
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 0x14009b507
test rbp, rbp
jne 0x14009b507
mov al, 1
jmp 0x14009b509
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