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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rax, qword [0x14035ca40]
lea rbx, [0x14035ca40]
mov rbp, rcx
mov ecx, eax
test eax, eax
jne 0x1400e6a11
mov rcx, rbx
call fcn.1401001a0
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
je 0x1400e6c20
lea rax, [rbp + 0xf]
mov rbx, rax
and rbx, 0xfffffffffffffff0
je 0x1400e6e00
cmp qword [0x1404cb190], rbx
jae 0x1400e6ac0
mov r8d, dword [0x1404cb170]
test r8d, r8d
jne 0x1400e6e10
mov rdi, qword [0x1404cb168]
lea rdx, [rdi - 0x30]
shr rdx, 3
cmp rdx, rbx
jb 0x1400e6e10
mov ecx, dword [0x1404cb174]
test ecx, ecx
je 0x1400e6ac0
lea rsi, [0x1404cb1c0]
mov rcx, rsi
call fcn.140341618
mov rcx, rbx
call fcn.1400e37e0
mov rcx, rsi
mov rbx, rax
call fcn.140341260
mov eax, dword [0x1404cb178]
test eax, eax
je 0x1400e6aa6
test rbx, rbx
jne 0x1400e6b19
xor ebx, ebx
mov rax, rbx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
shr rax, 4
mov r12, qword [rsi]
lea r14d, [rax - 1]
mov rdi, rax
mov r13, r14
shl r13, 4
add r12, r13
mov rbx, qword [r12]
test rbx, rbx
je 0x1400e6cb8
mov rax, qword [rbx + 8]
test rax, rax
je 0x1400e6c10
mov rdx, qword [rax]
mov qword [rbx + 8], rdx
mov rbx, rax
mov rax, qword [r12 + 8]
test rax, rax
je 0x1400e6b0f
sub rax, 1
mov qword [r12 + 8], rax
mov edx, dword [0x1404cb178]
test edx, edx
je 0x1400e6aa6
lea rdi, [0x1404cb140]
mov rcx, rdi
call fcn.140341618
movabs rax, 0x203442cf2b117423
mul rbx
movabs rax, 0x400c02406c1443cd
shr rdx, 0x11
mov r8, rdx
imul rdx
mov r12, rdx
and rdx, 0xfffffffffffffc00
sar r12, 0xa
sub rdx, r12
lea rax, [r12 + rdx*4]
sub r8, rax
movabs rax, 0x80402010080403
mul rbx
mov rax, rbx
mov r12, r8
sub rax, rdx
shr rax, 1
lea rsi, [rdx + rax]
shr rsi, 8
mov rax, rsi
shl rax, 9
sub rax, rsi
mov rsi, rbx
sub rsi, rax
mov rax, qword [0x1404cb138]
test rax, rax
je 0x1400e6e80
lea r13, [rax + r12*8]
mov r12, qword [r13]
test r12, r12
je 0x1400e6e50
shl rsi, 4
add r12, rsi
mov r10d, dword [r12 + 8]
mov r9, qword [r12]
test r10d, r10d
je 0x1400e6f42
mov r8d, r10d
xor ecx, ecx
jmp 0x1400e6bef
je 0x1400e6eb3
lea ecx, [rax + 1]
mov eax, 1
cmp ecx, r8d
jae 0x1400e6ea8
lea eax, [r8 + rcx]
shr eax, 1
mov edx, eax
shl rdx, 4
lea rsi, [r9 + rdx]
cmp rbx, qword [rsi]
jae 0x1400e6bd8
mov r8d, eax
mov eax, 0xffffffff
jmp 0x1400e6be6
mov rax, qword [rbx]
mov qword [r12], rax
jmp 0x1400e6afc
lea rsi, [0x1404cb130]
mov rcx, rsi
call fcn.140341618
cmp qword [0x1404cb1d8], 0
je 0x1400e6df0
mov rcx, rsi
call fcn.140341260
mov rax, qword [0x1404cb168]
mov ecx, 1
lea rdi, [rax - 0x30]
shr rdi, 7
mov edi, edi
mov r12, rdi
shl r12, 5
add r12, 0x10
mov rdx, r12
call sub.msvcrt.dll_calloc
mov rsi, rax
test rax, rax
je 0x1400e7076
mov rax, qword [0x14035ca40]
mov ecx, eax
test eax, eax
jne 0x1400e6c91
mov rcx, rbx
call fcn.1401001a0
mov ecx, eax
mov rdx, rsi
shl rdi, 4
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
lea rax, [rsi + 0x10]
mov qword [rsi], rax
add rax, rdi
mov qword [rsi + 8], rax
jmp 0x1400e6a23
mov rax, qword [rsi + 8]
mov rdx, qword [r12 + 8]
movdqu xmm0, xmmword [rax + r13]
movups xmmword [r12], xmm0
mov rax, qword [rsi + 8]
add rax, r13
mov qword [rax], 0
mov qword [rax + 8], rdx
mov r12, qword [rsi]
add r12, r13
mov rbx, qword [r12]
test rbx, rbx
jne 0x1400e6ae5
mov qword [r12 + 8], 0
mov rax, qword [0x1404cb1a8]
lea rbx, [0x1404cb198]
mov rcx, rbx
lea r15, [rax + r14*4]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e6f5d
mov eax, dword [0x1404cb1b0]
sub eax, 1
cmp eax, 0xfffffff5
jge 0x1400e6f52
mov dword [0x1404cb1b0], 0
mov eax, dword [r15]
mov edx, 1
test eax, eax
cmove eax, edx
sub eax, 1
mov dword [r15], eax
mov rax, qword [0x1404cb1a0]
mov r15, qword [rax + r14*8]
test r15, r15
je 0x1400e6f95
mov rdx, qword [r15 + 8]
mov rax, qword [r15]
mov rcx, qword [rdx]
mov rax, qword [rax]
mov rcx, qword [rcx]
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
mov rcx, rbx
mov qword [rax + 8], rdx
xor edx, edx
cmp r15, rax
cmove rax, rdx
mov rdx, qword [0x1404cb1a0]
mov qword [rdx + r14*8], rax
call fcn.140341260
mov rax, qword [r15]
mov rax, qword [rax]
mov rax, qword [rax]
mov rax, qword [rax + 8]
mov qword [r12 + 8], rax
mov rax, qword [r15]
mov qword [r15 + 8], 0
mov rax, qword [rax]
mov qword [rax + 8], 0
mov rax, qword [r15]
mov rax, qword [rax]
mov rax, qword [rax]
mov qword [rax + 8], 0
mov rax, qword [r15]
mov qword [rax + 8], 0
mov qword [r12], r15
add r13, qword [rsi]
mov rbx, qword [r13]
mov r12, r13
jmp 0x1400e6ae5
call fcn.1400e5de0
jmp 0x1400e6c3d
test rbp, rbp
je 0x1400e6aa4
nop dword [rax]
mov rcx, rbp
call sub.msvcrt.dll_malloc
mov rbx, rax
test rax, rax
jne 0x1400e6b0f
mov qword [rsp + 0x20], rbp
lea r9, [0x1403a1cf1]
lea r8, [0x1403a1d08]
mov edx, 4
lea rcx, [0x1403a1bda]
call fcn.1400d2190
jmp 0x1400e6e48
mov edx, 0x10
mov ecx, 0x1ff
call sub.msvcrt.dll_calloc
mov qword [r13], rax
mov r12, rax
test rax, rax
jne 0x1400e6bb3
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call fcn.1400e4060
nop dword [rax]
mov edx, 8
mov ecx, 0xffd
call sub.msvcrt.dll_calloc
mov qword [0x1404cb138], rax
test rax, rax
jne 0x1400e6ba2
jmp 0x1400e6e6f
lea rdx, [rsi + 0x10]
cmp eax, 1
cmove rsi, rdx
mov eax, r10d
shl rax, 4
add rax, r9
cmp rsi, rax
jae 0x1400e6ec7
cmp rbx, qword [rsi]
je 0x1400e6f2e
sub rsi, r9
lea edx, [r10 + 1]
mov r13, rsi
shl edx, 4
sar r13, 4
cmp r10d, r13d
jae 0x1400e6ef0
lea rdx, str.index___branch__n_entries
lea rcx, str.assertion_failed:__s
call fcn.1400e36e0
mov rcx, r9
call sub.msvcrt.dll_realloc
mov qword [r12], rax
test rax, rax
je 0x1400e6e6f
mov r8d, dword [r12 + 8]
mov edx, r13d
shl rdx, 4
lea rsi, [rax + rdx]
sub r8d, r13d
lea rcx, [rsi + 0x10]
shl r8, 4
mov rdx, rsi
call sub.msvcrt.dll_memmove
add dword [r12 + 8], 1
mov qword [rsi], rbx
mov rcx, rdi
mov qword [rsi + 8], rbp
call fcn.140341260
jmp 0x1400e6aa6
test r9, r9
jne 0x1400e709c
xor esi, esi
jmp 0x1400e6ec7
mov dword [0x1404cb1b0], eax
jmp 0x1400e6d4c
mov rcx, rbx
call fcn.140341618
mov eax, dword [0x1404cb1b0]
add eax, 1
test eax, eax
jle 0x1400e6f52
mov dword [0x1404cb1b0], 0
mov edx, 0x100
add dword [r15], 1
mov eax, dword [r15]
cmp eax, edx
cmova eax, edx
mov dword [r15], eax
jmp 0x1400e6d4c
mov eax, edi
lea rcx, [rax + rax*4]
mov rdi, rax
mov eax, 0xa0
shl rcx, 4
shl rdi, 4
cmp rcx, rax
mov qword [rsp + 0x38], rdi
cmovb rcx, rax
mov rax, qword [0x1404cb168]
xor edx, edx
div rcx
mov edx, 4
cmp rax, rdx
cmovae rdx, rax
mov rax, qword [0x1404cb1a8]
mov eax, dword [rax + r14*4]
mov rcx, rdx
test eax, eax
je 0x1400e6ff0
shl eax, 6
xor edx, edx
div rdi
cmp ecx, eax
cmovae eax, ecx
mov edx, eax
mov rcx, rbx
mov r14d, edx
call fcn.140341260
lea rcx, [0x1404cb1c0]
call fcn.140341618
mov rcx, qword [rsp + 0x38]
call fcn.1400e37e0
mov qword [rax + 8], 0
mov r15, rax
cmp r14, 1
jbe 0x1400e706e
mov ebx, 1
nop word [rax + rax]
mov rcx, qword [rsp + 0x38]
mov rdi, rax
add rbx, 1
call fcn.1400e37e0
mov qword [rdi], rax
mov qword [rax + 8], 0
cmp rbx, r14
jne 0x1400e7030
mov qword [rax], 0
lea rcx, [0x1404cb1c0]
call fcn.140341260
mov qword [r12 + 8], r14
jmp 0x1400e6ddc
mov r14d, 1
jmp 0x1400e7051
mov qword [rsp + 0x20], r12
lea r9, [0x1403a1d2e]
lea r8, [0x1403a1d08]
mov edx, 4
lea rcx, [0x1403a1bda]
call fcn.1400d2190
jmp 0x1400e709a
mov rsi, r9
jmp 0x1400e6eb3