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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x20], r9
push rbp
push rbx
lea rbp, [r11 - 0x368]
sub rsp, 0x458
mov rax, qword [0x140093880]
xor rax, rsp
mov qword [rbp + 0x330], rax
mov qword [r11 - 0x20], rdi
mov rdi, rdx
mov ebx, ecx
test rdx, rdx
je 0x1400391cb
mov qword [r11 - 0x18], rsi
lea rsi, [rbp + 0x380]
call fcn.1400041e0
mov qword [rsp + 0x28], rsi
lea rdx, [rsp + 0x30]
mov r9, rdi
mov qword [rsp + 0x20], 0
mov r8d, 0x400
mov rcx, qword [rax]
or rcx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___stdio_common_vsprintf]
mov rsi, qword [rsp + 0x450]
mov byte [rbp + 0x32f], 0
jmp 0x1400394f9
cmp ebx, 0x10001
jne 0x1400391fa
movups xmm0, xmmword [str.The_GLFW_library_is_not_initialized]
mov eax, dword [0x1400852b0]
movups xmm1, xmmword [0x1400852a0]
mov dword [rsp + 0x50], eax
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x10002
jne 0x140039225
movups xmm0, xmmword [str.There_is_no_current_context]
mov eax, dword [0x1400852d0]
mov dword [rsp + 0x48], eax
movaps xmmword [rsp + 0x30], xmm0
movsd xmm0, qword [0x1400852c8]
jmp 0x1400394f3
cmp ebx, 0x10003
jne 0x140039254
movups xmm0, xmmword [str.Invalid_argument_for_enum_parameter]
mov eax, dword [0x1400852f8]
movups xmm1, xmmword [0x1400852e8]
mov dword [rsp + 0x50], eax
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x10004
jne 0x14003927f
movups xmm0, xmmword [str.Invalid_value_for_parameter]
mov eax, dword [0x140085318]
mov dword [rsp + 0x48], eax
movaps xmmword [rsp + 0x30], xmm0
movsd xmm0, qword [0x140085310]
jmp 0x1400394f3
cmp ebx, 0x10005
jne 0x1400392b0
mov eax, dword [0x140085328]
movsd xmm0, qword [str.Out_of_memory]
mov dword [rsp + 0x38], eax
movzx eax, word [0x14008532c]
mov word [rsp + 0x3c], ax
movsd qword [rsp + 0x30], xmm0
jmp 0x1400394f9
cmp ebx, 0x10006
jne 0x1400392e0
movups xmm0, xmmword [str.The_requested_API_is_unavailable]
movzx eax, byte [0x140085350]
movups xmm1, xmmword [0x140085340]
mov byte [rsp + 0x50], al
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x10007
jne 0x14003931e
movups xmm0, xmmword [str.The_requested_API_version_is_unavailable]
movzx eax, byte [0x140085380]
movups xmm1, xmmword [0x140085368]
mov byte [rsp + 0x58], al
movaps xmmword [rsp + 0x30], xmm0
movsd xmm0, qword [0x140085378]
movsd qword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x10008
jne 0x14003935a
movzx eax, word [0x1400853a8]
movups xmm0, xmmword [str.A_platform_specific_error_occurred]
mov word [rsp + 0x50], ax
movups xmm1, xmmword [0x140085398]
movzx eax, byte [0x1400853aa]
mov byte [rsp + 0x52], al
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x10009
jne 0x140039389
movups xmm0, xmmword [str.The_requested_format_is_unavailable]
mov eax, dword [0x1400853d0]
movups xmm1, xmmword [0x1400853c0]
mov dword [rsp + 0x50], eax
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x1000a
jne 0x1400393b8
movups xmm0, xmmword [str.The_specified_window_has_no_context]
mov eax, dword [0x1400853f8]
movups xmm1, xmmword [0x1400853e8]
mov dword [rsp + 0x50], eax
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x1000b
jne 0x1400393f7
movups xmm0, xmmword [str.The_specified_cursor_shape_is_unavailable]
movzx eax, word [0x140085428]
movups xmm1, xmmword [0x140085410]
mov word [rsp + 0x58], ax
movaps xmmword [rsp + 0x30], xmm0
movsd xmm0, qword [0x140085420]
movsd qword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm1
jmp 0x1400394f9
cmp ebx, 0x1000c
jne 0x14003944c
movups xmm0, xmmword [str.The_requested_feature_cannot_be_implemented_for_this_platform]
mov eax, dword [0x140085468]
movups xmm1, xmmword [0x140085440]
mov dword [rsp + 0x68], eax
movzx eax, word [0x14008546c]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [0x140085450]
mov word [rsp + 0x6c], ax
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x50], xmm0
movsd xmm0, qword [0x140085460]
movsd qword [rsp + 0x60], xmm0
jmp 0x1400394f9
cmp ebx, 0x1000d
jne 0x14003949b
movaps xmm0, xmmword [str.The_requested_feature_has_not_yet_been_implemented_for_this_platform]
movaps xmm1, xmmword [0x140085480]
mov eax, dword [0x1400854b0]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [0x140085490]
movaps xmmword [rsp + 0x40], xmm1
movaps xmm1, xmmword [0x1400854a0]
mov dword [rsp + 0x70], eax
movzx eax, byte [0x1400854b4]
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm1
mov byte [rsp + 0x74], al
jmp 0x1400394f9
cmp ebx, 0x1000e
jne 0x1400394d3
mov eax, dword [0x1400854d8]
movups xmm0, xmmword [str.The_requested_platform_is_unavailable]
mov dword [rsp + 0x50], eax
movups xmm1, xmmword [0x1400854c8]
movzx eax, word [0x1400854dc]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
mov word [rsp + 0x54], ax
jmp 0x1400394f9
movups xmm0, xmmword [str.ERROR:_UNKNOWN_GLFW_ERROR]
movzx eax, word [0x1400854f8]
mov word [rsp + 0x48], ax
movaps xmmword [rsp + 0x30], xmm0
movsd xmm0, qword [0x1400854f0]
movsd qword [rsp + 0x40], xmm0
cmp dword [0x14009efd0], 0
je 0x140039590
mov ecx, dword [0x1400a0970]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x140039597
mov rdx, qword [0x14009eff0]
mov ecx, 0x410
call qword [0x14009efd8]
test rax, rax
je 0x140039546
xor edx, edx
mov r8d, 0x410
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rdi, rax
jmp 0x140039554
xor edx, edx
mov ecx, 0x10005
call fcn.140039140
xor edi, edi
mov ecx, dword [0x1400a0970]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
lea rcx, [0x1400a0988]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x14009f738]
lea rcx, [0x1400a0988]
mov qword [rdi], rax
mov qword [0x14009f738], rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x140039597
lea rdi, [0x1400a1ab0]
lea rax, [rsp + 0x30]
mov dword [rdi + 8], ebx
sub rdi, rax
lea rdx, [rsp + 0x30]
nop word [rax + rax]
movzx eax, byte [rdx]
mov byte [rdi + rdx + 0xc], al
lea rdx, [rdx + 1]
test al, al
jne 0x1400395b0
mov rax, qword [0x1400a1aa8]
mov rdi, qword [rsp + 0x448]
test rax, rax
je 0x1400395dc
lea rdx, [rsp + 0x30]
mov ecx, ebx
call rax
mov rcx, qword [rbp + 0x330]
xor rcx, rsp
call fcn.1400450c0
add rsp, 0x458
pop rbx
pop rbp
ret