Function at 0x1800712d0
Capabilities:
Get thread local storage value

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0x90
mov qword [r11 + 0x18], rsi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x20], r14
mov dword [rsp + 0x30], 0x47554244
mov qword [r11 - 0x28], r15
xor r15d, r15d
mov rsi, rcx
lea rax, [r11 - 0x60]
lea r8d, [r15 + 0x28]
lea rcx, [r11 - 0x50]
xor edx, edx
mov dword [r11 - 0x64], r15d
mov qword [r11 - 0x60], r15
mov qword [r11 - 0x58], rax
mov r12, r15
mov r14, r15
call fcn.18024adb8
mov ecx, dword [0x18025e63c]
mov dword [rsp + 0x48], 0x28
test ecx, ecx
js 0x180071343
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x180071343
mov rax, qword [rax]
test rax, rax
jne 0x180071349
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov rcx, rax
mov qword [rsp + 0xa0], rbp
lea r8d, [rdx + 0x20]
mov qword [rsp + 0xb8], rdi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r11, rax
test rax, rax
jne 0x18007137a
mov ebp, 0x8007000e
jmp 0x1800717af
lea rax, [rsp + 0x48]
lea rcx, [r11 + 0x18]
mov ebp, r15d
mov qword [r11], rax
mov eax, dword [rsp + 0x34]
mov rbx, r15
add eax, 3
and eax, 0xfffffffc
mov dword [rsp + 0x34], eax
mov dword [r11 + 0x10], eax
mov dword [r11 + 8], 0x28
mov dword [r11 + 0xc], 1
mov qword [rcx], r15
mov rax, qword [rsp + 0x40]
add dword [rsp + 0x34], 0x28
mov qword [rax], r11
mov rax, qword [rsi + 0x58]
mov qword [rsp + 0x40], rcx
test rax, rax
je 0x1800713ed
nop dword [rax]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1800713df
cmp dword [rcx + 8], 0xd
je 0x1800713ea
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1800713d0
jmp 0x1800713ed
mov rbx, rcx
mov rcx, rbx
test rbx, rbx
je 0x180071411
mov eax, dword [rsp + 0x5c]
nop dword [rax]
inc eax
mov dword [rsp + 0x5c], eax
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x180071400
jmp 0x180071415
mov eax, dword [rsp + 0x5c]
mov qword [rsp + 0x80], r13
test eax, eax
je 0x1800715b2
mov ecx, eax
mov eax, 4
mov rdi, 0xffffffffffffffff
mul rcx
cmovo rax, rdi
mov rcx, rax
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r12, rax
test rax, rax
je 0x180071784
mov r8d, dword [rsp + 0x5c]
xor edx, edx
mov rcx, rax
shl r8, 2
call fcn.18024adb8
mov r11d, dword [rsp + 0x5c]
mov eax, 8
mul r11
cmovo rax, rdi
mov rcx, rax
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r14, rax
test rax, rax
je 0x180071784
mov ecx, dword [rsp + 0x5c]
xor edx, edx
lea r13d, [rcx*8]
mov rcx, rax
mov r8d, r13d
call fcn.18024adb8
mov ecx, dword [rsp + 0x5c]
dec ecx
movsxd rdx, ecx
test rbx, rbx
je 0x180071553
lea rdi, [r14 + rdx*8 + 2]
mov eax, 0xffff
nop dword [rax + rax]
mov word [rdi], ax
movzx eax, word [rbx + 0x44]
mov word [rdi - 2], ax
mov eax, dword [rbx + 0xa4]
mov dword [rdi + 2], eax
mov rdx, qword [rbx + 0x38]
test rdx, rdx
je 0x18007153d
lea rax, [rsp + 0xa8]
lea rcx, [rsp + 0x30]
mov r9d, 7
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.18007e4f0
test eax, eax
js 0x1800717a7
mov edx, dword [rsp + 0x54]
mov r8d, dword [rsp + 0xa8]
mov ecx, r15d
test edx, edx
je 0x18007152e
nop dword [rax]
mov eax, ecx
cmp dword [r12 + rax*4], r8d
je 0x18007152e
inc ecx
cmp ecx, edx
jb 0x180071520
cmp ecx, edx
jne 0x18007153a
mov dword [r12 + rdx*4], r8d
inc dword [rsp + 0x54]
mov word [rdi], cx
mov rbx, qword [rbx + 0x18]
sub rdi, 8
mov eax, 0xffff
test rbx, rbx
jne 0x1800714c0
mov r8d, dword [rsp + 0x54]
test r8d, r8d
je 0x180071588
lea rax, [rsp + 0x58]
lea rcx, [rsp + 0x30]
shl r8d, 2
mov r9d, 1
mov rdx, r12
mov qword [rsp + 0x20], rax
call fcn.18007e4f0
mov ebp, eax
test eax, eax
js 0x1800717a7
lea rax, [rsp + 0x60]
lea rcx, [rsp + 0x30]
mov r9d, 1
mov r8d, r13d
mov rdx, r14
mov qword [rsp + 0x20], rax
call fcn.18007e4f0
mov ebp, eax
test eax, eax
js 0x1800717a7
mov rdx, qword [rsi + 0xa8]
test rdx, rdx
je 0x1800715e6
lea rax, [rsp + 0x6c]
lea rcx, [rsp + 0x30]
mov r9d, 7
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.18007e4f0
mov ebp, eax
test eax, eax
js 0x1800717a7
mov rdx, qword [rsi + 0x98]
test rdx, rdx
je 0x180071691
mov r8d, dword [rsi + 0xa0]
lea rax, [rsp + 0x50]
lea rcx, [rsp + 0x30]
mov r9d, 5
mov qword [rsp + 0x20], rax
call fcn.18007e4f0
test eax, eax
js 0x1800717a7
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x18007163c
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x18007163c
mov rax, qword [rax]
test rax, rax
jne 0x180071642
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x20]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800717a7
lea rcx, [0x180034acf]
lea rdx, [rax + 0x18]
mov qword [rax], rcx
mov ecx, dword [rsp + 0x34]
mov dword [rax + 8], 1
mov dword [rax + 0xc], 5
mov qword [rdx], r15
mov dword [rax + 0x10], ecx
mov rcx, qword [rsp + 0x40]
inc dword [rsp + 0x34]
mov qword [rcx], rax
mov qword [rsp + 0x40], rdx
lea rax, [rsp + 0x4c]
lea rdx, [0x180034a28]
lea rcx, [rsp + 0x30]
mov r9d, 5
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.18007e4f0
test eax, eax
js 0x1800717a7
mov eax, dword [rsp + 0x30]
neg eax
mov eax, dword [rsp + 0x34]
sbb ebx, ebx
add eax, 3
shr eax, 2
and ebx, 2
add ebx, eax
cmp ebx, 0x8000
ja 0x18007178b
mov edx, ebx
mov rcx, rsi
call fcn.180070320
mov ebp, eax
test eax, eax
js 0x1800717a7
mov rcx, qword [rsi + 0x80]
mov r8d, dword [rsi + 0x88]
lea rdx, [rcx + 4]
dec r8d
lea rcx, [rcx + rbx*4 + 4]
shl r8, 2
call sub.msvcrt.dll_memmove
mov r11d, r15d
cmp dword [rsp + 0x5c], r15d
jbe 0x18007174c
lea rcx, [r14 + 4]
nop word [rax + rax]
mov eax, dword [rsi + 0x94]
inc r11d
add rcx, 8
add eax, ebx
shl eax, 2
add dword [rcx - 8], eax
cmp r11d, dword [rsp + 0x5c]
jb 0x180071730
mov rdx, qword [rsi + 0x80]
lea rcx, [rsp + 0x30]
mov r8d, ebx
add rdx, 4
call fcn.18007e6e0
mov ebp, eax
test eax, eax
js 0x1800717a7
add dword [rsi + 0x88], ebx
mov eax, dword [rsi + 0x88]
add dword [rsi + 0x94], ebx
mov dword [rsi + 0x90], eax
jmp 0x1800717a4
mov ebp, 0x8007000e
jmp 0x1800717a7
mov rcx, qword [rsi]
lea rdx, [rsi + 0x18]
lea r9, [0x180034a90]
mov r8d, 0x7ee
call fcn.1802221f0
mov ebp, r15d
mov r13, qword [rsp + 0x80]
mov rcx, r12
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
mov rcx, r14
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
mov rbx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov r12, qword [rsp + 0x88]
mov rsi, qword [rsp + 0xb0]
test rbx, rbx
je 0x18007187c
nop word [rax + rax]
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x38], rax
mov eax, dword [rbx + 0xc]
test al, 8
jne 0x180071804
test al, 1
jne 0x18007183d
mov rdi, qword [rbx]
test rdi, rdi
je 0x18007183d
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x180071829
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x180071829
mov rax, qword [rax]
test rax, rax
jne 0x18007182f
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x18007185a
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x18007185a
mov rax, qword [rax]
test rax, rax
jne 0x180071860
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x38]
test rbx, rbx
jne 0x1800717f0
mov rdi, qword [rsp + 0xb8]
mov eax, ebp
mov rbp, qword [rsp + 0xa0]
add rsp, 0x90
pop rbx
ret