Function at 0x140028980
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, [0x1400b98e4]
call fcn.140019060
mov qword [rdi], rax
xor esi, esi
mov dword [rdi + 8], esi
test rbx, rbx
je 0x1400289c4
cmp byte [rbx], sil
jne 0x1400289c7
mov rbx, rsi
or edx, 0xffffffff
mov rcx, rbx
call fcn.140019060
mov qword [rdi + 0x10], rax
mov ecx, dword [0x1400e6098]
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 0x140028a06
lea rdx, str.setting_locale__s
lea rcx, [0x1400e5b78]
call fcn.14000a020
mov rdx, rdi
mov ecx, dword [0x1400e6098]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140028b7f
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.140027180
mov r11, qword [rsp + 0x30]
mov rbx, r11
mov rax, qword [rsp + 0x38]
cmp r11, rax
jbe 0x140028a62
call fcn.1400750c0
mov rax, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
mov rbp, rax
cmp r11, rax
jbe 0x140028a74
call fcn.1400750c0
mov rax, qword [rsp + 0x38]
cmp rbx, rbp
je 0x140028ad3
cmp rbx, rax
jb 0x140028a83
call fcn.1400750c0
mov rdx, rdi
mov rcx, qword [rbx]
call fcn.14002b2f0
test al, al
jne 0x140028ae2
cmp rbx, qword [rsp + 0x38]
jb 0x140028a9e
call fcn.1400750c0
mov r8, qword [rbx]
lea rdx, str.No_OS_support_for_locale___s_
lea rcx, [0x1400e5b78]
call fcn.140026e50
mov rax, qword [rsp + 0x38]
cmp rbx, rax
jb 0x140028ac8
call fcn.1400750c0
mov rax, qword [rsp + 0x38]
add rbx, 8
mov r11, qword [rsp + 0x30]
jmp 0x140028a62
mov rdx, rdi
lea rcx, [0x1400b98e4]
call fcn.14002b2f0
mov ecx, 0x40
call fcn.140073070
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140028b01
mov rcx, rax
call fcn.140026b60
mov rsi, rax
mov rbx, qword [rdi + 0x20]
cmp rsi, rbx
je 0x140028b1f
test rbx, rbx
je 0x140028b1f
mov rcx, rbx
call fcn.1400269b0
mov rcx, rbx
call fcn.140073020
mov qword [rdi + 0x20], rsi
call fcn.140017470
mov rcx, rax
xor r8d, r8d
lea rdx, [rsp + 0x28]
call fcn.140014910
nop
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x140028b77
mov rsi, qword [rsp + 0x38]
cmp rbx, rsi
je 0x140028b66
nop
mov rcx, qword [rbx]
call fcn.140073030
add rbx, 8
cmp rbx, rsi
jne 0x140028b50
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140073020
nop
mov rax, rdi
jmp 0x140028c7b
mov rax, rdi
jmp 0x140028c7b
mov rbp, qword [rdi + 0x18]
test rbp, rbp
je 0x140028bec
mov r8, qword [rbp]
mov rax, qword [rdi]
test rax, rax
je 0x140028bb9
test r8, r8
je 0x140028bc5
mov rdx, r8
sub rdx, rax
nop
movzx ecx, byte [rax]
cmp cl, byte [rax + rdx]
jne 0x140028bb2
add rax, 1
test cl, cl
jne 0x140028ba0
jmp 0x140028bc1
sbb esi, esi
sbb esi, 0xffffffff
jmp 0x140028bc1
mov rax, r8
neg rax
sbb esi, esi
test esi, esi
je 0x140028bde
or edx, 0xffffffff
mov rcx, r8
call fcn.140019060
mov rbx, rax
mov rcx, qword [rdi]
call fcn.140073030
mov qword [rdi], rbx
mov eax, dword [rbp + 8]
mov dword [rdi + 8], eax
mov rax, rdi
jmp 0x140028c7b
lea rbp, [0x1400e60b0]
mov qword [rsp + 0x78], rbp
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rdi]
test rax, rax
je 0x140028c39
mov r8, qword [0x1400e60a0]
test r8, r8
je 0x140028c4c
mov rdx, r8
sub rdx, rax
nop
movzx ecx, byte [rax]
cmp cl, byte [rax + rdx]
jne 0x140028c32
add rax, 1
test cl, cl
jne 0x140028c20
jmp 0x140028c48
sbb esi, esi
sbb esi, 0xffffffff
jmp 0x140028c48
mov r8, qword [0x1400e60a0]
mov rax, r8
neg rax
sbb esi, esi
test esi, esi
je 0x140028c65
or edx, 0xffffffff
mov rcx, r8
call fcn.140019060
mov rbx, rax
mov rcx, qword [rdi]
call fcn.140073030
mov qword [rdi], rbx
mov eax, dword [0x1400e60a8]
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