Function at 0x1800664a0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rsi, qword [0x180420fe8]
xor r13d, r13d
mov dword [rsi + 8], r13d
lea r12, [r13 - 1]
cmp qword [0x18044f1f8], r13
je 0x180066553
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x18044f204]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, ebx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rdi, rdi
je 0x180066553
mov rdi, qword [rdi + 0x18]
test rdi, rdi
je 0x180066553
inc qword [rdi]
mov r12d, 0xffff
nop dword [rax]
movzx eax, word [rsi + 8]
cmp eax, dword [0x1803f1b50]
jl 0x180066600
movzx eax, word [rsi + 0xa]
cmp ax, r12w
jae 0x180066531
inc ax
mov word [rsi + 0xa], ax
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x18006653d
inc qword [rbx]
sub qword [rdi], 1
je 0x18019d682
mov rdi, rbx
test rbx, rbx
jne 0x180066510
lea r12, [rbx - 1]
movzx eax, word [rsi + 8]
test ax, ax
je 0x1800667b2
mov ebp, eax
lea rbx, [rsi + 0xc]
sub ebp, 1
mov edi, 0x345678
mov r15d, 0xf4243
js 0x1800665b2
mov r14, qword [rbx]
mov r13, qword [r14 + 8]
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x18019d692
mov rcx, r14
call rax
mov rcx, rax
mov eax, dword [rbx + 8]
add rbx, 0xc
xor rax, rcx
lea ecx, [rbp*2 + 0x14258]
xor rdi, rax
imul rdi, r15
add r15, rcx
sub ebp, 1
jns 0x180066576
movzx eax, word [rsi + 0xa]
mov rdx, rsi
xor rax, rdi
add rax, 0x17cfb
mov qword [rsi], rax
mov rax, qword [0x180420fe0]
mov rcx, rax
call qword [rax + 0x18]
test rax, rax
je 0x18006675e
mov rbx, qword [rax + 0x10]
mov rax, rbx
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
inc rax
lea rax, [rax + rax*2]
lea r15, [rsi + rax*4]
mov rax, qword [0x180420ff0]
mov qword [r15], rax
mov edx, dword [rdi + 0x64]
test edx, edx
jne 0x1800666bf
mov r11d, dword [rdi + 0x60]
add r11d, r11d
mov rdx, qword [rdi + 0x20]
js 0x1800667e0
mov rcx, qword [rdx + 0x78]
mov r8, 0xffffffffffffffff
mov r10d, dword [rdx + 0x28]
mov eax, r13d
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x30], r10d
lea rbp, [rcx + 0x20]
mov dword [rsp + 0x28], r8d
add rbp, qword [rcx + 0x10]
lea r9, [rcx + 0x20]
mov qword [rsp + 0x40], rbp
cmp r9, rbp
jae 0x18019d647
movsx ecx, byte [r9 + 1]
mov ebx, eax
mov dword [rsp + 0x20], eax
mov r8d, eax
movzx eax, byte [r9]
add r9, 2
add eax, r8d
mov qword [rsp + 0x38], r9
mov dword [rsp + 0x24], eax
cmp ecx, 0xffffff80
je 0x180066724
add r10d, ecx
mov dword [rsp + 0x30], r10d
mov edx, r10d
mov dword [rsp + 0x28], edx
cmp r8d, eax
je 0x180066730
cmp eax, r11d
jle 0x180066663
cmp ebx, r11d
jg 0x18019d5a6
test edx, edx
js 0x18019d653
mov dword [r15 + 8], edx
mov rcx, qword [rdi + 0x20]
mov rax, qword [rcx]
mov rbx, qword [rcx + 0x68]
mov qword [rcx], rax
test rax, rax
je 0x18019d65b
test rbx, rbx
je 0x18006671b
mov rax, qword [rbx + 8]
test dword [rax + 0xa8], 0x10000000
je 0x18006671b
test byte [rbx + 0x20], 0x80
je 0x18006671b
mov rax, qword [0x180420fa8]
mov rdx, rbx
mov rcx, rax
call qword [rax + 0x18]
test rax, rax
je 0x1800667be
mov rbx, qword [rax + 0x10]
mov qword [r15], rbx
inc word [rsi + 8]
jmp 0x180066520
mov edx, 0xffffffff
jmp 0x1800666a2
lea rcx, [rsp + 0x20]
call fcn.1800d46b4
mov eax, dword [rsp + 0x24]
mov ebx, dword [rsp + 0x20]
cmp ebx, eax
je 0x180066730
mov rbp, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x30]
mov edx, dword [rsp + 0x28]
jmp 0x1800666af
movzx eax, word [rsi + 8]
mov rcx, qword [0x180420f58]
inc rax
lea rdi, [rax + rax*2]
shl rdi, 2
mov rdx, rdi
call qword [0x180420f60]
mov rbx, rax
test rax, rax
je 0x1800667e8
mov r8, rdi
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [0x180420fe0]
xor r8d, r8d
mov rdx, rbx
call sym.python310.dll__Py_hashtable_set
test eax, eax
jns 0x1800665df
jmp 0x18019d6d2
lea rax, [0x180420fc8]
jmp 0x1800665e2
mov rcx, qword [0x180420fa8]
xor r8d, r8d
inc qword [rbx]
mov rdx, rbx
call sym.python310.dll__Py_hashtable_set
test eax, eax
jns 0x180066718
jmp 0x18019d668
mov edx, dword [rdx + 0x28]
jmp 0x1800666bd
xor eax, eax
jmp 0x1800665e2
mov r8, 0xffffffffffffffff
test ebx, ebx
jle 0x18019d63f
movsx ecx, byte [r9 - 1]
mov eax, r13d
cmp ecx, 0xffffff80
cmovne eax, ecx
add r9, 0xfffffffffffffffe
sub r10d, eax
mov ecx, ebx
mov edx, r10d
movzx eax, byte [r9 - 2]
sub ebx, eax
cmp byte [r9 - 1], 0x80
cmove edx, r8d
cmp ebx, ecx
jne 0x18019d631
movzx eax, byte [r9 - 1]
mov r12, 0xffffffffffffffff
movsx ecx, al
mov rdx, r9
cmp ecx, 0xffffff80
mov dword [rsp + 0x24], ebx
mov r8d, ebx
mov eax, r13d
cmovne eax, ecx
sub r9, 2
sub r10d, eax
movzx eax, byte [rdx - 4]
sub ebx, eax
movzx eax, byte [rdx - 3]
cmp al, 0x80
mov edx, r10d
cmove edx, r12d
cmp ebx, r8d
je 0x18019d5ef
mov r12d, 0xffff
mov r8, 0xffffffffffffffff
cmp ebx, r11d
jg 0x18019d5ad
jmp 0x1800666bd
mov edx, r8d
jmp 0x1800666bd
mov rdx, 0xffffffffffffffff
jmp 0x1800666bd
mov edx, r13d
jmp 0x1800666c5
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
nop
jmp 0x1800666e0
sub qword [rbx], 1
jne 0x18006671b
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
nop
jmp 0x18006671b
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
nop
jmp 0x180066547
cmp qword [r13 + 0x108], 0
jne 0x18019d6c4
mov rcx, r13
call sym.python310.dll_PyType_Ready
test eax, eax
jns 0x18019d6b0
mov rcx, r12
jmp 0x180066592
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x18019d6c4
mov rcx, r14
call rax
nop
jmp 0x18006658f
mov rcx, r14
call sym.python310.dll_PyObject_HashNotImplemented
nop
jmp 0x18006658f
mov rcx, qword [0x180420f58]
mov rdx, rbx
call qword [0x180420f78]
nop
jmp 0x1800667e8