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

Disassembly:
push rbx
push rsi
push rdi
push r13
sub rsp, 0x28
mov rdi, rcx
mov ecx, dword [rcx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r13d, r13d
mov rbx, rax
test rax, rax
jne 0x140026327
lea ecx, [rax + 0xc]
call fcn.14001c7e0
mov rbx, rax
test rax, rax
je 0x140026319
mov qword [rax], r13
mov dword [rax + 8], r13d
jmp 0x14002631c
mov rbx, r13
mov ecx, dword [rdi]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [rbx + 4]
lea rsi, [0x140384240]
test eax, eax
jne 0x140026861
mov eax, dword [rbx]
test eax, eax
je 0x14002634a
mov dword [rbx + 4], eax
mov dword [rbx], r13d
jmp 0x14002684e
lea rcx, [rdi + 8]
call fcn.1400261a0
mov dword [rbx + 4], eax
test eax, eax
jne 0x14002684e
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r14
mov r14d, 0x40
lock xadd dword [0x140384280], r14d
lea r12d, [r14 + 0x40]
cmp r12d, 0x4000000
jbe 0x1400263aa
mov r9d, 0x4000000
lea r8, str.Consumed__d_lock_free_links__there_are_no_more.
lea edx, [rax + 0x30]
lea rcx, [0x140281b70]
call fcn.1400a87f0
call fcn.1400aa140
mov ebp, r14d
cmp r14d, r12d
jae 0x140026447
mov qword [rsp + 0x20], r15
lea r13, [0x140384240]
mov r15d, r14d
nop word [rax + rax]
mov rax, r15
mov esi, ebp
shr rax, 0xe
and esi, 0x3fff
lea rdi, [rax*8]
add rdi, r13
cmp qword [rdi + 0x88], 0
jne 0x140026415
xor edx, edx
mov ecx, 0x60000
call fcn.14005e760
mov rcx, rax
xor eax, eax
lock cmpxchg qword [rdi + 0x88], rcx
je 0x140026415
call fcn.1400556b0
mov rax, qword [rdi + 0x88]
lea rcx, [rsi + rsi*2]
xor edx, edx
xorps xmm0, xmm0
inc ebp
inc r15
movups xmmword [rax + rcx*8], xmm0
mov qword [rax + rcx*8 + 0x10], rdx
cmp ebp, r12d
jb 0x1400263d0
mov r15, qword [rsp + 0x20]
lea rsi, [0x140384240]
xor r13d, r13d
mov r12, qword [rsp + 0x58]
lea r8d, [r14 + 2]
mov r14, qword [rsp + 0x60]
mov r9d, 4
mov rbp, qword [rsp + 0x50]
lea edx, [r8 - 2]
test edx, edx
jne 0x14002646d
mov rcx, r13
jmp 0x14002648b
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 - 1]
test edx, edx
jne 0x1400264a9
mov rcx, r13
jmp 0x1400264c7
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
test r8d, r8d
jne 0x14002653c
mov qword [0], r13
lea edx, [r8 + 1]
mov dword [0x10], r13d
mov eax, dword [rbx + 4]
mov qword [8], rax
mov dword [rbx + 4], r8d
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 2]
test edx, edx
jne 0x14002657d
mov rcx, r13
jmp 0x14002659b
mov ecx, r8d
and ecx, 0x3fff
mov eax, r8d
shr rax, 0xe
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + rax*8 + 0x88]
mov qword [rax + rcx*8], r13
mov dword [rax + rcx*8 + 0x10], r13d
lea rdx, [rax + rcx*8]
mov eax, dword [rbx + 4]
mov qword [rdx + 8], rax
lea edx, [r8 + 1]
mov dword [rbx + 4], r8d
test edx, edx
jne 0x140026500
mov rcx, r13
jmp 0x14002651e
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 3]
test edx, edx
jne 0x1400265b9
mov rcx, r13
jmp 0x1400265d7
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 4]
test edx, edx
jne 0x1400265f5
mov rcx, r13
jmp 0x140026613
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 5]
test edx, edx
jne 0x140026631
mov rcx, r13
jmp 0x14002664f
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 6]
test edx, edx
jne 0x14002666d
mov rcx, r13
jmp 0x14002668b
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 7]
test edx, edx
jne 0x1400266a9
mov rcx, r13
jmp 0x1400266c7
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 8]
test edx, edx
jne 0x1400266e5
mov rcx, r13
jmp 0x140026703
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 9]
test edx, edx
jne 0x140026721
mov rcx, r13
jmp 0x14002673f
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 0xa]
test edx, edx
jne 0x14002675d
mov rcx, r13
jmp 0x14002677b
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 0xb]
test edx, edx
jne 0x140026799
mov rcx, r13
jmp 0x1400267b7
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 0xc]
test edx, edx
jne 0x1400267d5
mov rcx, r13
jmp 0x1400267f3
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
lea edx, [r8 + 0xd]
test edx, edx
jne 0x140026811
mov rcx, r13
jmp 0x14002682f
mov ecx, edx
mov eax, edx
shr rax, 0xe
and ecx, 0x3fff
mov rax, qword [rsi + rax*8 + 0x88]
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
mov qword [rcx], r13
add r8d, 0x10
mov dword [rcx + 0x10], r13d
mov eax, dword [rbx + 4]
mov qword [rcx + 8], rax
mov dword [rbx + 4], edx
sub r9, 1
jne 0x140026460
mov eax, dword [rbx + 4]
mov dword [rbx + 8], 0x40
test eax, eax
jne 0x140026861
mov rdx, r13
jmp 0x14002687f
mov edx, eax
mov ecx, eax
shr rcx, 0xe
and edx, 0x3fff
mov rcx, qword [rsi + rcx*8 + 0x88]
lea rdx, [rdx + rdx*2]
lea rdx, [rcx + rdx*8]
mov ecx, dword [rdx + 8]
dec dword [rbx + 8]
mov dword [rbx + 4], ecx
mov qword [rdx + 8], r13
add rsp, 0x28
pop r13
pop rdi
pop rsi
pop rbx
ret