Function at 0x18000c2f0
Capabilities:
Get thread local storage value

Disassembly:
test rcx, rcx
je 0x18000c5e9
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor ebp, ebp
or eax, 0xffffffff
cmp dword [0x180023040], eax
mov rdi, rcx
je 0x18000c5c2
mov ecx, dword [0x180023044]
cmp ecx, eax
je 0x18000c5c2
cmp dword [0x180023048], eax
je 0x18000c5c2
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test eax, eax
je 0x18000c5c2
mov ecx, dword [0x180023040]
mov eax, 0xc3b4
cmp esi, eax
cmovb esi, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [0x180023048]
mov rbx, rax
lea eax, [rbp + 9]
cmp ebx, eax
cmova ebx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea r13, [rdi + 4]
mov dword [rdi], ebx
mov r12, rax
mov qword [rdi + 0x220], rbp
lea rax, [0x180000000]
mov dword [rdi + 0x210], r12d
mov r8, qword [rax + rbx*8 + 0x1b9e0]
mov r15d, 0x104
mov qword [rdi + 0x218], rbp
mov r9d, r15d
mov dword [rdi + 0x228], ebp
mov edx, r15d
mov rcx, r13
mov word [r13], bp
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy_s]
xor ebx, ebx
or r14, 0xffffffffffffffff
mov word [r13 + 0x206], bx
mov rbp, r14
inc rbp
cmp word [r13 + rbp*2], bx
jne 0x18000c3d7
mov ecx, 0xc3b4
cmp esi, ecx
je 0x18000c5b2
lea eax, [rsi - 0xc3b4]
jae 0x18000c3f9
mov eax, ebx
mov dword [rdi + 0x214], eax
cmp esi, 0xc3e6
jne 0x18000c513
mov r13d, dword [rdi + 0x210]
lea rcx, [rsp + 0x88]
mov eax, r15d
mov qword [rsp + 0x88], rbx
sub eax, ebp
mov dword [rsp + 0x80], eax
call fcn.1800015f8
test eax, eax
jne 0x18000c501
mov rax, qword [rsp + 0x88]
mov rsi, qword [rax + 8]
test rsi, rsi
je 0x18000c495
mov eax, ebp
mov rcx, rsi
add rax, 2
lea rbx, [rdi + rax*2]
call qword [fcn.1800154a0]
xor r8d, r8d
lea rax, [rsp + 0x80]
mov r9, rbx
mov qword [rsp + 0x20], rax
mov ecx, r13d
lea edx, [r8 + 1]
call rsi
xor esi, esi
mov ebx, eax
test eax, eax
jns 0x18000c49f
mov r8d, 0xc3b4
lea ecx, [rsi + 9]
mov edx, eax
call fcn.18000c5ec
jmp 0x18000c49f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
xor esi, esi
test ebx, ebx
jne 0x18000c503
lea r13, [rdi + 4]
inc r14
cmp word [r13 + r14*2], si
jne 0x18000c4a7
mov dword [rsp + 0x38], r12d
lea rax, str.__x_08X_.
test r12d, r12d
mov qword [rsp + 0x30], rsi
lea r8, str.___d_.
cmovs r8, rax
lea r9, [rsp + 0x80]
mov qword [rsp + 0x28], r8
sub r15d, r14d
mov eax, r14d
xor r8d, r8d
add rax, 2
mov edx, r15d
mov qword [rsp + 0x20], rsi
lea rcx, [rdi + rax*2]
call fcn.18000c04c
jmp 0x18000c5d2
xor esi, esi
mov r8d, ebp
mov edx, r12d
mov rcx, rdi
call fcn.18000c284
jmp 0x18000c4a3
mov r8d, ebp
mov r9d, r15d
lea r8, [r8 + 2]
lea r8, [rdi + r8*2]
sub r9d, ebp
je 0x18000c5a4
mov word [r8], bx
cmp esi, ecx
jb 0x18000c536
lea eax, [rsi - 0xc3b4]
jmp 0x18000c538
mov eax, ebx
lea r11, [0x180000000]
mov ecx, r9d
mov r11, qword [r11 + rax*8 + 0x1ba30]
mov r10d, 0x7ffffffe
lea rax, [r9 - 1]
cmp rax, r10
ja 0x18000c592
sub r10, rcx
mov rdx, r8
sub r11, r8
lea rax, [r10 + rcx]
test rax, rax
je 0x18000c582
movzx eax, word [r11 + rdx]
test ax, ax
je 0x18000c582
mov word [rdx], ax
add rdx, 2
sub rcx, 1
jne 0x18000c562
test rcx, rcx
lea rax, [rdx - 2]
cmovne rax, rdx
mov word [rax], bx
jmp 0x18000c59b
test r9d, r9d
je 0x18000c59b
mov word [r8], bx
lea eax, [r9 - 1]
mov word [r8 + rax*2], bx
mov word [rdi + 0x20c], bx
xor esi, esi
jmp 0x18000c4a7
mov r8d, ebp
mov edx, r12d
mov rcx, rdi
call fcn.18000c284
jmp 0x18000c5d2
mov r8d, 0x230
xor edx, edx
mov rcx, rdi
call fcn.180016020
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret