Function at 0x1800de810
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.180159340
lea rsi, [0x1800de6c0]
mov rdi, rax
test rax, rax
je 0x1800de855
mov rdx, rax
cmp qword [rdx + 0x10], rsi
je 0x1800de913
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1800de843
mov ecx, 0x20
call fcn.1801cd4e0
mov ecx, dword [0x18029d578]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, 4
call fcn.1801cd4e0
lea rcx, [0x1800de6e0]
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rcx
mov qword [rbx + 0x10], rsi
mov dword [rax], ebp
call fcn.180159340
lea r14, [0x1800de740]
mov rdi, rax
mov esi, 0x800
test rax, rax
je 0x1800de8be
mov rcx, rax
nop
cmp qword [rcx + 0x10], r14
je 0x1800de91c
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1800de8b0
mov ecx, 0x20
call fcn.1801cd4e0
mov ecx, dword [0x18029d578]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, rsi
call fcn.1801cd51c
mov rdi, rax
mov qword [rbx + 8], rax
lea rax, [fcn.1800de750]
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], rax
cmp ebp, 6
ja case.default.0x1800de911
lea rdx, [0x180000000]
mov ecx, dword [rdx + rbp*4 + 0xdead4]
add rcx, rdx
jmp rcx
mov rax, qword [rdx + 8]
jmp 0x1800de891
mov rdi, qword [rcx + 8]
jmp 0x1800de8fb
lea r8, str.No_Error
jmp 0x1800de968
lea r8, str.Invalid_Argument
jmp 0x1800de968
lea r8, str.Invalid_Operation
jmp 0x1800de968
lea r8, str.Invalid_Handle
jmp 0x1800de968
lea r8, str.Invalid_Paint
jmp 0x1800de968
lea r8, str.Out_Of_Memory
jmp 0x1800de968
lea r8, str.Parse_Error
jmp 0x1800de968
lea r8, str.Unknown_error
lea rdx, str._s:
mov rcx, rdi
call fcn.18008de90
mov rax, 0xffffffffffffffff
mov rcx, rax
inc rcx
cmp byte [rdi + rcx], 0
jne 0x1800de981
sub esi, ecx
nop dword [rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x1800de990
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.1801d56cc
call fcn.180159340
lea rsi, [0x1800de6f0]
mov rdi, rax
test rax, rax
je 0x1800de9f7
mov rcx, rax
cmp qword [rcx + 0x10], rsi
je 0x1800deac3
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1800de9e5
mov ecx, 0x20
call fcn.1801cd4e0
mov ecx, dword [0x18029d578]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, 8
call fcn.1801cd4e0
lea rcx, [0x1800de760]
mov qword [rax], rcx
lea rcx, [0x1800de710]
mov qword [rbx + 0x18], rcx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rsi
mov rsi, qword [rax]
test rsi, rsi
je 0x1800deab8
test ebp, ebp
je 0x1800deab8
call fcn.180159340
lea r14, [0x1800de720]
mov rdi, rax
test rax, rax
je 0x1800dea6e
mov rcx, rax
cmp qword [rcx + 0x10], r14
je 0x1800deacc
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1800dea60
mov ecx, 0x20
call fcn.1801cd4e0
mov ecx, dword [0x18029d578]
mov rdx, rax
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, 8
call fcn.1801cd4e0
lea rcx, [0x1800de710]
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 0x1800dea3d
mov rax, qword [rcx + 8]
jmp 0x1800deab1