Function at 0x140014150
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, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov rbx, rdx
mov rdi, rcx
mov edx, 0xffffffff
lea rcx, [0x14009bd1c]
call fcn.1400048e0
mov qword [rdi], rax
xor esi, esi
mov dword [rdi + 8], esi
test rbx, rbx
je 0x140014193
cmp byte [rbx], sil
jne 0x140014196
mov rbx, rsi
mov edx, 0xffffffff
mov rcx, rbx
call fcn.1400048e0
mov qword [rdi + 0x10], rax
mov ecx, dword [0x1400c5c30]
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 0x1400141d7
lea rdx, str.setting_locale__s
lea rcx, [0x1400c5870]
call fcn.140009100
mov rdx, rdi
mov ecx, dword [0x1400c5c30]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14001432c
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], rsi
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.140011730
mov rbx, qword [rsp + 0x28]
cmp rbx, qword [rsp + 0x30]
je 0x140014250
nop dword [rax]
mov rdx, rdi
mov rcx, qword [rbx]
call fcn.140013510
test al, al
jne 0x14001425f
mov r8, qword [rbx]
lea rdx, str.No_OS_support_for_locale___s_
lea rcx, [0x1400c5870]
call fcn.140009cd0
add rbx, 8
cmp rbx, qword [rsp + 0x30]
jne 0x140014220
mov rdx, rdi
lea rcx, [0x14009bd1c]
call fcn.140013510
mov ecx, 0x30
call fcn.14003ca98
mov qword [rsp + 0x68], rax
test rax, rax
je 0x14001427e
mov rcx, rax
call fcn.14001ed90
mov rsi, rax
mov rbx, qword [rdi + 0x20]
mov qword [rdi + 0x20], rsi
test rbx, rbx
je 0x1400142a0
mov rcx, rbx
call fcn.14001ee00
mov edx, 0x30
mov rcx, rbx
call fcn.14003cad4
call fcn.140009dd0
mov rcx, rax
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.14000a390
nop
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x1400143c4
mov rsi, qword [rsp + 0x30]
cmp rbx, rsi
je 0x1400142e6
nop
mov rcx, qword [rbx]
call fcn.14003cadc
add rbx, 8
cmp rbx, rsi
jne 0x1400142d0
mov rbx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
sub rax, rbx
sar rax, 3
lea rdx, [rax*8]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14001431f
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400143d4
mov rcx, rbx
call fcn.14003cad4
jmp 0x1400143c4
mov rdx, qword [rdi + 0x18]
test rdx, rdx
je 0x140014342
mov rcx, rdi
call fcn.140014510
jmp 0x1400143c4
lea rbp, [0x1400c5be8]
mov qword [rsp + 0x68], rbp
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rdi]
mov r8, qword [0x1400c5c10]
test rax, rax
je 0x14001438a
test r8, r8
je 0x140014396
mov rdx, r8
sub rdx, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rdx]
jne 0x140014383
inc rax
test cl, cl
jne 0x140014372
jmp 0x140014392
sbb esi, esi
or esi, 1
jmp 0x140014392
mov rax, r8
neg rax
sbb esi, esi
test esi, esi
je 0x1400143b1
mov edx, 0xffffffff
mov rcx, r8
call fcn.1400048e0
mov rbx, rax
mov rcx, qword [rdi]
call fcn.14003cadc
mov qword [rdi], rbx
mov eax, dword [0x1400c5c18]
mov dword [rdi + 8], eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rax, rdi
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
call fcn.14004cb1c
nop
int3