Function at 0x14010f690
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1a0
movaps xmmword [rsp + 0x190], xmm15
movaps xmmword [rsp + 0x180], xmm14
movaps xmmword [rsp + 0x170], xmm13
movaps xmmword [rsp + 0x160], xmm12
movaps xmmword [rsp + 0x150], xmm11
movaps xmmword [rsp + 0x140], xmm10
movaps xmmword [rsp + 0x130], xmm9
movaps xmmword [rsp + 0x120], xmm8
movaps xmmword [rsp + 0x110], xmm7
movaps xmmword [rsp + 0x100], xmm6
mov rbx, r9
mov rdi, r8
mov rsi, rdx
mov r14, rcx
mov rax, qword [0x14029a038]
xor rax, rsp
mov qword [rsp + 0xf8], rax
lea rcx, [rsp + 0x3c]
mov dword [rcx], 0x260
call fcn.140110840
test byte [0x14029c820], 0x19
jne 0x14010fa31
call fcn.140105b90
mov r14, rax
movsxd rax, dword [rsi + 0x78]
mov qword [rsp + 0xb8], rax
mov r15, qword [rsi + 0x20]
mov r12, qword [0x1402a0ca0]
mov edi, 0xaaaaaaaa
test r12, r12
jne 0x14010fbbd
xor ebx, ebx
movabs rax, 0xc001c0ded017d00d
lea rcx, [rsp + 0xb8]
mov qword [rcx], rax
movabs rax, 0xd00d1d1d178119
mov qword [rcx + 0x38], rax
mov rax, qword [rsi + 0x20]
mov qword [rcx + 8], rax
movups xmm0, xmmword [rsi + 0x48]
movups xmm1, xmmword [rsi + 0x58]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm1
mov eax, dword [rsi + 0x68]
mov qword [rcx + 0x30], rax
call fcn.140110840
mov eax, dword [0x1402a54b0]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010fce1
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fd3c
mov rcx, qword [0x1402a54a0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a54a8]
jne 0x14010fd3c
mov r15, qword [rax + rcx]
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fc7e
mov rcx, qword [0x1402a54a0]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x1402a54a8]
mov rdx, qword [0x1402a54a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov r14, qword [rsi]
mov qword [rsi], 0
mov rax, qword [r14 + 8]
mov rcx, r14
call qword [case.0x1401e7f70.0]
test r14, r14
jne 0x14010fba1
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fc91
mov rcx, qword [0x1402a54a0]
shl rcx, 4
mov qword [rax + rcx], r15
mov ecx, dword [0x1402a54a8]
mov rdx, qword [0x1402a54a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
xor eax, eax
lea rcx, [rsp + 0xb8]
mov qword [rcx], rax
mov qword [rcx + 0x38], rax
call fcn.140110840
test rbx, rbx
je 0x14010f8de
cmp dword [rbx + 0x18], edi
jbe 0x14010f8ce
mov rax, qword [rbx + 0x10]
mov ecx, edi
shl rcx, 7
cmp dword [rax + rcx + 0x68], 0
jne 0x14010fc40
mov rax, qword [rbx + 8]
lock dec dword [rax + 0x38]
mov rax, qword [rbx + 8]
lock inc dword [rax + 0x3c]
test byte [0x14029c820], 0x19
jne 0x14010f962
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.14017e7b0
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm10, xmmword [rsp + 0x140]
movaps xmm11, xmmword [rsp + 0x150]
movaps xmm12, xmmword [rsp + 0x160]
movaps xmm13, xmmword [rsp + 0x170]
movaps xmm14, xmmword [rsp + 0x180]
movaps xmm15, xmmword [rsp + 0x190]
add rsp, 0x1a0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movaps xmm0, xmmword [0x140270690]
lea rsi, [rsp + 0x40]
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x14029c820]
lea r9, [0x1402710e7]
mov rcx, rsi
mov dl, 0x45
call fcn.1400fdfb0
mov rax, qword [rsi]
test rax, rax
je 0x14010fa11
mov cl, byte [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
lea rsi, [rsp + 0x90]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rdx
xor eax, eax
mov qword [rsi + 0x18], rax
mov byte [rsi + 0x20], cl
lea rcx, [rsp + 0xb8]
mov qword [rcx], rax
mov qword [rsi], rax
mov rax, qword [rsi + 8]
mov qword [rcx + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [rcx + 0x10], rax
mov eax, dword [rsi + 0x11]
mov dword [rcx + 0x11], eax
movzx eax, word [rsi + 0x15]
mov word [rcx + 0x15], ax
mov al, byte [rsi + 0x17]
mov byte [rcx + 0x17], al
mov rax, qword [rsi + 0x18]
mov qword [rcx + 0x18], rax
mov al, byte [rsi + 0x20]
mov byte [rcx + 0x20], al
call fcn.1400fe100
mov rcx, rsi
call fcn.1400fe100
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14010f8e7
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e7f70.0]
jmp 0x14010f8e7
movaps xmm0, xmmword [0x140270690]
lea r15, [rsp + 0x70]
movaps xmmword [r15 + 0x10], xmm0
movaps xmmword [r15], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x14029c820]
lea r9, str.ThreadPool_RunTask
mov rcx, r15
mov dl, 0x42
call fcn.1400fdfb0
mov rax, qword [r15]
test rax, rax
je 0x14010fb7e
mov dl, byte [rsp + 0x88]
mov r8, qword [rsp + 0x78]
xor r9d, r9d
lea rcx, [rsp + 0x40]
mov qword [rcx], r9
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], r8
mov qword [rcx + 0x18], r9
mov byte [rcx + 0x20], dl
mov rdx, rsi
call fcn.140110850
mov eax, dword [0x1402a5488]
mov ecx, dword [0x14029dfe4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010fca4
add r14, 8
lea r13, [rsp + 0x48]
mov rax, qword [0x1402a5480]
cmp byte [rax], 0
jne 0x14010fd44
lea r15, [rsp + 0x40]
mov rcx, r14
mov rdx, r15
mov r8, rsi
call fcn.14010fdf0
mov rax, qword [r15]
lea r12, [rsp + 0x98]
mov qword [r12 - 8], rax
mov qword [r15], 0
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 9]
movups xmmword [r12], xmm0
movups xmmword [r12 + 9], xmm1
lea rcx, str.scheduler
call fcn.14010fed0
cmp byte [rax], 0
jne 0x14010fd70
lea rdi, [rsp + 0x90]
mov rax, qword [rdi]
lea rcx, [rsp + 0xb8]
mov qword [rcx], rax
mov qword [rdi], 0
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 9]
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x11], xmm1
call fcn.1400fe100
mov rcx, rdi
call fcn.1400fe100
lea rcx, [rsp + 0x40]
call fcn.1400fe100
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x14010f735
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e7f70.0]
jmp 0x14010f735
lock dec dword [r14]
jne 0x14010f85f
mov rax, qword [r14 + 0x10]
mov rcx, r14
call qword [case.0x1401e7f70.0]
jmp 0x14010f85f
mov ecx, dword [0x14029bf80]
cmp ecx, 0xffffffff
je 0x14010fbd8
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 3
dec eax
cmp eax, 2
jb 0x14010fc07
mov ecx, dword [0x14029bf80]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fc07
mov rcx, qword [r12 + 0x18]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [r12 + 0x20]
jne 0x14010fc07
mov rbx, qword [rax + rcx]
test rbx, rbx
jne 0x14010fc1b
mov rcx, r12
call fcn.1401baa30
test rax, rax
je 0x14010f762
mov rbx, rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r14
mov r8, r15
mov r9b, 0x10
call fcn.1401bab30
mov edi, eax
jmp 0x14010f764
mov r14, qword [0x1402a0ca0]
lea rsi, [r14 + 0xc8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14010fd2f
sub r14, 0xffffffffffffff80
mov rcx, rbx
mov edx, edi
mov r8, r14
call fcn.1401bcf10
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x14010f8ce
test rsi, rsi
je 0x14010f83f
call fcn.140002990
jmp 0x14010f81b
test r15, r15
je 0x14010f899
call fcn.140002990
jmp 0x14010f875
lea rcx, [0x1402a5488]
call fcn.14017b2bc
cmp dword [0x1402a5488], 0xffffffff
jne 0x14010faca
lea rcx, str.toplevel.flow
call fcn.14010fed0
mov qword [0x1402a5480], rax
lea rcx, [0x1402a5488]
call fcn.14017b25c
jmp 0x14010faca
lea rcx, [0x1402a54b0]
call fcn.14017b2bc
cmp dword [0x1402a54b0], 0xffffffff
jne 0x14010f7d0
mov qword [0x1402a54a8], 0
lea rcx, [0x1402a54a0]
mov qword [0x1402a54a0], 0xffffffffffffffff
xor edx, edx
call fcn.140002850
lea rcx, [0x1402a54b0]
call fcn.14017b25c
jmp 0x14010f7d0
mov rcx, rsi
call fcn.1400fdfc0
jmp 0x14010fc5f
xor r15d, r15d
jmp 0x14010f805
mov eax, dword [rsi + 0x78]
shl rax, 0x20
mov r8d, r14d
and r8d, 0xfffffff8
or r8, rax
xor r8, qword [0x14029f540]
mov rcx, qword [rsp + 0x48]
mov edx, 0x30
call fcn.140077010
jmp 0x14010fae3
mov r14, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x98]
mov edx, 0x405
call fcn.1400ff000
mov r15, rax
movzx edx, byte [rdi + 9]
inc edx
mov rcx, rax
call fcn.140205a90
mov edx, dword [rbx + 0x40]
inc edx
mov rcx, r15
call fcn.140205b30
movzx edx, byte [rdi + 0xa]
and edx, 0x7f
inc edx
mov rcx, r15
call fcn.140205bd0
mov rcx, r14
call fcn.1400e6ff0
test al, al
je 0x14010fb37
mov rcx, r14
call fcn.1402014e0
movsxd r8, eax
mov rcx, r15
mov edx, 3
call fcn.14016ba20
jmp 0x14010fb37