Function at 0x1800de820
Capabilities:
Set thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x30
movsxd rbp, ecx
call fcn.180159350
lea rsi, [0x1800de6d0]
mov rdi, rax
test rax, rax
je 0x1800de865
mov rdx, rax
cmp qword [rdx + 0x10], rsi
je 0x1800de923
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1800de853
mov ecx, 0x20
call fcn.1801cd4f0
mov ecx, dword [0x18029d568]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, 4
call fcn.1801cd4f0
lea rcx, [0x1800de6f0]
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rcx
mov qword [rbx + 0x10], rsi
mov dword [rax], ebp
call fcn.180159350
lea r14, [0x1800de750]
mov rdi, rax
mov esi, 0x800
test rax, rax
je 0x1800de8ce
mov rcx, rax
nop
cmp qword [rcx + 0x10], r14
je 0x1800de92c
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1800de8c0
mov ecx, 0x20
call fcn.1801cd4f0
mov ecx, dword [0x18029d568]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, rsi
call fcn.1801cd52c
mov rdi, rax
mov qword [rbx + 8], rax
lea rax, [fcn.1800de760]
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], rax
cmp ebp, 6
ja case.default.0x1800de921
lea rdx, [0x180000000]
mov ecx, dword [rdx + rbp*4 + 0xdeae4]
add rcx, rdx
jmp rcx
mov rax, qword [rdx + 8]
jmp 0x1800de8a1
mov rdi, qword [rcx + 8]
jmp 0x1800de90b
lea r8, str.No_Error
jmp 0x1800de978
lea r8, str.Invalid_Argument
jmp 0x1800de978
lea r8, str.Invalid_Operation
jmp 0x1800de978
lea r8, str.Invalid_Handle
jmp 0x1800de978
lea r8, str.Invalid_Paint
jmp 0x1800de978
lea r8, str.Out_Of_Memory
jmp 0x1800de978
lea r8, str.Parse_Error
jmp 0x1800de978
lea r8, str.Unknown_error
lea rdx, str._s:
mov rcx, rdi
call fcn.18008dea0
mov rax, 0xffffffffffffffff
mov rcx, rax
inc rcx
cmp byte [rdi + rcx], 0
jne 0x1800de991
sub esi, ecx
nop dword [rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x1800de9a0
add rdi, rax
movsxd rbx, esi
lea r14, [rsp + 0x70]
call fcn.180010760
mov r9, qword [rsp + 0x68]
mov r8, rbx
mov qword [rsp + 0x28], r14
mov rdx, rdi
mov qword [rsp + 0x20], 0
mov rcx, qword [rax]
or rcx, 2
call fcn.1801d56dc
call fcn.180159350
lea rsi, [0x1800de700]
mov rdi, rax
test rax, rax
je 0x1800dea07
mov rcx, rax
cmp qword [rcx + 0x10], rsi
je 0x1800dead3
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1800de9f5
mov ecx, 0x20
call fcn.1801cd4f0
mov ecx, dword [0x18029d568]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, 8
call fcn.1801cd4f0
lea rcx, [0x1800de770]
mov qword [rax], rcx
lea rcx, [0x1800de720]
mov qword [rbx + 0x18], rcx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rsi
mov rsi, qword [rax]
test rsi, rsi
je 0x1800deac8
test ebp, ebp
je 0x1800deac8
call fcn.180159350
lea r14, [0x1800de730]
mov rdi, rax
test rax, rax
je 0x1800dea7e
mov rcx, rax
cmp qword [rcx + 0x10], r14
je 0x1800deadc
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1800dea70
mov ecx, 0x20
call fcn.1801cd4f0
mov ecx, dword [0x18029d568]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, 8
call fcn.1801cd4f0
lea rcx, [0x1800de720]
mov qword [rax], 0
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], rcx
mov rdx, qword [rax]
mov ecx, ebp
call rsi
add rsp, 0x30
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rcx + 8]
jmp 0x1800dea4d
mov rax, qword [rcx + 8]
jmp 0x1800deac1