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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x50
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x80], rbx
mov rbx, rdx
mov rdi, rcx
or edx, 0xffffffff
lea rcx, [0x1400a59b4]
call fcn.140007900
mov qword [rdi], rax
xor esi, esi
mov dword [rdi + 8], esi
test rbx, rbx
je 0x140023a54
cmp byte [rbx], sil
jne 0x140023a57
mov rbx, rsi
or edx, 0xffffffff
mov rcx, rbx
call fcn.140007900
mov qword [rdi + 0x10], rax
mov ecx, dword [0x1400ccac8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rsi
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x140023a96
lea rdx, str.setting_locale__s
lea rcx, [0x1400cc618]
call fcn.14000a370
mov rdx, rdi
mov ecx, dword [0x1400ccac8]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140023c0f
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.140022210
mov r11, qword [rsp + 0x30]
mov rbx, r11
mov rax, qword [rsp + 0x38]
cmp r11, rax
jbe 0x140023af2
call fcn.140064810
mov rax, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
mov rbp, rax
cmp r11, rax
jbe 0x140023b04
call fcn.140064810
mov rax, qword [rsp + 0x38]
cmp rbx, rbp
je 0x140023b63
cmp rbx, rax
jb 0x140023b13
call fcn.140064810
mov rdx, rdi
mov rcx, qword [rbx]
call fcn.140026320
test al, al
jne 0x140023b72
cmp rbx, qword [rsp + 0x38]
jb 0x140023b2e
call fcn.140064810
mov r8, qword [rbx]
lea rdx, str.No_OS_support_for_locale___s_
lea rcx, [0x1400cc618]
call fcn.140021ee0
mov rax, qword [rsp + 0x38]
cmp rbx, rax
jb 0x140023b58
call fcn.140064810
mov rax, qword [rsp + 0x38]
add rbx, 8
mov r11, qword [rsp + 0x30]
jmp 0x140023af2
mov rdx, rdi
lea rcx, [0x1400a59b4]
call fcn.140026320
mov ecx, 0x40
call fcn.140064950
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140023b91
mov rcx, rax
call fcn.140021be0
mov rsi, rax
mov rbx, qword [rdi + 0x20]
cmp rsi, rbx
je 0x140023baf
test rbx, rbx
je 0x140023baf
mov rcx, rbx
call fcn.140021a30
mov rcx, rbx
call fcn.140064540
mov qword [rdi + 0x20], rsi
call fcn.140015ec0
mov rcx, rax
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.140013360
nop
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x140023c07
mov rsi, qword [rsp + 0x38]
cmp rbx, rsi
je 0x140023bf6
nop
mov rcx, qword [rbx]
call fcn.140064550
add rbx, 8
cmp rbx, rsi
jne 0x140023be0
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140064540
nop
mov rax, rdi
jmp 0x140023d0b
mov rax, rdi
jmp 0x140023d0b
mov rbp, qword [rdi + 0x18]
test rbp, rbp
je 0x140023c7c
mov r8, qword [rbp]
mov rax, qword [rdi]
test rax, rax
je 0x140023c49
test r8, r8
je 0x140023c55
mov rdx, r8
sub rdx, rax
nop
movzx ecx, byte [rax]
cmp cl, byte [rax + rdx]
jne 0x140023c42
add rax, 1
test cl, cl
jne 0x140023c30
jmp 0x140023c51
sbb esi, esi
sbb esi, 0xffffffff
jmp 0x140023c51
mov rax, r8
neg rax
sbb esi, esi
test esi, esi
je 0x140023c6e
or edx, 0xffffffff
mov rcx, r8
call fcn.140007900
mov rbx, rax
mov rcx, qword [rdi]
call fcn.140064550
mov qword [rdi], rbx
mov eax, dword [rbp + 8]
mov dword [rdi + 8], eax
mov rax, rdi
jmp 0x140023d0b
lea rbp, [0x1400ccae0]
mov qword [rsp + 0x78], rbp
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rdi]
test rax, rax
je 0x140023cc9
mov r8, qword [0x1400ccad0]
test r8, r8
je 0x140023cdc
mov rdx, r8
sub rdx, rax
nop
movzx ecx, byte [rax]
cmp cl, byte [rax + rdx]
jne 0x140023cc2
add rax, 1
test cl, cl
jne 0x140023cb0
jmp 0x140023cd8
sbb esi, esi
sbb esi, 0xffffffff
jmp 0x140023cd8
mov r8, qword [0x1400ccad0]
mov rax, r8
neg rax
sbb esi, esi
test esi, esi
je 0x140023cf5
or edx, 0xffffffff
mov rcx, r8
call fcn.140007900
mov rbx, rax
mov rcx, qword [rdi]
call fcn.140064550
mov qword [rdi], rbx
mov eax, dword [0x1400ccad8]
mov dword [rdi + 8], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rax, rdi
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret