Function at 0x1400f5700
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movdqa xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0xf0], xmm6
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x14016c028]
xor rax, rsp
mov qword [rsp + 0xe8], rax
mov qword [rcx], rdx
lea rdi, [rcx + 0x40]
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x18], xmm0
movups xmmword [rcx + 0x28], xmm0
movups xmmword [rcx + 0x40], xmm0
mov qword [rcx + 0x38], rdi
add rcx, 0x50
mov r8d, 0x400
xor edx, edx
call fcn.140110bf0
mov rax, qword [0x14016f468]
mov qword [rsi + 0x450], rax
lea r9, [rsi + 0x20]
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rbp, [rsp + 0xa0]
mov qword [rbp + 0x20], rax
movaps xmm0, xmmword [0x140146a10]
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
mov edx, 0x80
mov rcx, rbp
xor r8d, r8d
mov qword [rsp + 0x48], r9
call fcn.1400f8930
mov rdx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov r8, rax
sub r8, rdx
mov rcx, qword [rbp + 8]
sub rcx, r8
mov qword [rbp + 8], rcx
test r8, r8
mov qword [rsp + 0x30], rsi
jle 0x1400f57f4
call fcn.1401107e0
mov rsi, qword [rsp + 0x30]
mov rdx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0xa8]
mov qword [rsi + 8], rcx
mov qword [rsp + 0xa8], rdx
movdqa xmm0, xmmword [rsp + 0xb0]
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsi + 0x18]
movdqu xmmword [rsi + 0x10], xmm0
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xa0], rdx
cmp rax, rdx
je 0x1400f584f
mov rcx, rax
sub rcx, rdx
add rcx, 0xfffffffffffffff0
shr rcx, 4
not rcx
shl rcx, 4
add rcx, rax
mov qword [rsp + 0xb0], rcx
test rdx, rdx
je 0x1400f585c
mov rcx, rdx
call fcn.1400f7ab0
mov rax, qword [rbx + 0x40]
test rax, rax
jne 0x1400f589e
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.14010e4a0
mov rax, qword [rsp + 0x30]
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rbx + rax*8]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x30]
add rax, 8
mov qword [rsp + 0x90], rax
xorps xmm6, xmm6
pcmpeqd xmm7, xmm7
mov qword [rsp + 0x80], rbx
mov rsi, qword [rbx]
lea rcx, [rsi + 8]
mov qword [rsp + 0x78], rcx
call fcn.1400a5910
mov rax, qword [rsi + 0x1478]
test rax, rax
mov rbx, qword [rsp + 0x30]
movabs r9, 0xaaaaaaaaaaaaaaa
mov r10, 0xffffffffffe00000
movabs r11, 0xaaaaaaaaaaaaaaab
je 0x1400f63c4
mov qword [rsp + 0x58], rdi
mov r13, qword [rax + 8]
cmp r13, qword [rax + 0x10]
mov qword [rsp + 0x98], rax
je 0x1400f63b7
lea rax, [r13 + 0xc000]
mov rcx, rax
and rcx, r10
shr rax, 9
mov edx, 0xfe0
and rax, rdx
lea r14, [rcx + rax]
mov ebp, 0x1000
or r14, rbp
movzx eax, word [rcx + rax + 0x101e]
shl rax, 5
sub r14, rax
lea rax, [r13 + 0x1f8000]
mov rcx, rax
and rcx, r10
shr rax, 9
and rax, rdx
lea r12, [rcx + rax]
or r12, rbp
movzx eax, word [rcx + rax + 0x101e]
shl rax, 5
sub r12, rax
cmp r14, r12
mov qword [rsp + 0x68], r13
jbe 0x1400f59d1
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rdi]
test rsi, rsi
je 0x1400f6152
mov rbp, rdi
cmp qword [rsi + 0x20], r13
jbe 0x1400f59b5
mov rax, qword [rsi]
mov rbp, rsi
test rax, rax
jne 0x1400f59cc
jmp 0x1400f615a
jae 0x1400f615d
lea rbp, [rsi + 8]
mov rax, qword [rsi + 8]
test rax, rax
je 0x1400f615d
mov rsi, rax
jmp 0x1400f599f
mov qword [rsp + 0x60], r12
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x1400f598b
cmp word [r14 + 0x18], 0
je 0x1400f5b79
mov rcx, r14
and rcx, r10
mov r15d, r14d
shl r15d, 9
and r15d, 0x3ffffe00
add r15, r10
and r15, 0xffffffffffffc000
add r15, rcx
mov ebp, dword [rax + 0x18]
mov eax, dword [rax + 0x1c]
movzx eax, al
shl eax, 0xc
xor edx, edx
div ebp
movzx esi, ax
movzx eax, word [r14 + 0x1a]
sub rsi, rax
imul rsi, rbp
and rsi, 0xfffffffffffffff8
add rsi, r15
cmp rbp, 0x2000
jb 0x1400f5a60
mov rdi, qword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp rdi, rax
jae 0x1400f5a98
mov qword [rdi], r15
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rbp
add rdi, 0x18
mov qword [rbx + 0x28], rdi
jmp 0x1400f5b79
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0xa8], rsi
mov rax, qword [rbx + 0x10]
cmp rax, qword [rbx + 0x18]
jae 0x1400f5b9c
movdqu xmm0, xmmword [rsp + 0xa0]
movdqu xmmword [rax], xmm0
add rax, 0x10
mov qword [rbx + 0x10], rax
jmp 0x1400f5b79
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx]
sub rdi, rdx
sar rdi, 3
imul rdi, r11
lea rcx, [rdi + 1]
cmp rcx, r9
ja 0x1400f63eb
sub rax, rdx
sar rax, 3
imul rax, r11
lea rdx, [rax + rax]
cmp rdx, rcx
cmovb rdx, rcx
movabs rcx, 0x555555555555555
cmp rax, rcx
cmovae rdx, r9
test rdx, rdx
jne 0x1400f5bd3
xor r12d, r12d
lea r13, [rdi + rdi*2]
lea rdi, [r12 + r13*8]
mov qword [rdi], r15
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rbp
mov rbp, qword [rbx + 0x20]
mov r8, qword [rbx + 0x28]
sub r8, rbp
sub rdi, r8
test r8, r8
jle 0x1400f5b4a
mov rcx, rdi
mov rsi, rdx
mov rdx, rbp
call fcn.1401107e0
mov rdx, rsi
movabs r11, 0xaaaaaaaaaaaaaaab
mov r10, 0xffffffffffe00000
movabs r9, 0xaaaaaaaaaaaaaaa
mov rbx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov rbp, qword [rax]
lea rax, [rdx + rdx*2]
lea rax, [r12 + rax*8]
lea rcx, [r12 + r13*8]
add rcx, 0x18
mov qword [rbx + 0x20], rdi
mov qword [rbx + 0x28], rcx
mov qword [rbx + 0x30], rax
test rbp, rbp
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
jne 0x1400f5c04
mov rax, qword [r14 + 0x10]
movzx eax, byte [rax + 0x1c]
lea eax, [rax*8 + 0x18]
and eax, 0xffffffe0
add r14, rax
cmp r14, r12
jbe 0x1400f59d6
jmp 0x1400f598b
mov rcx, qword [rsp + 0x90]
lea rdx, [rsp + 0xa0]
call fcn.1400f8b90
movabs r11, 0xaaaaaaaaaaaaaaab
mov r10, 0xffffffffffe00000
movabs r9, 0xaaaaaaaaaaaaaaa
mov rbx, qword [rsp + 0x30]
jmp 0x1400f5b79
mov qword [rsp + 0x40], rdx
call fcn.1400f7db0
mov rax, qword [rsp + 0x40]
lea rax, [rax*8]
lea rbx, [rax + rax*2]
test rbx, rbx
je 0x1400f5d52
bsr rax, rbx
xor rax, 0x3f
jmp 0x1400f5d57
call fcn.1400f7db0
mov rax, rbp
and rax, 0xffffffffffe00000
mov rcx, rbp
shr rcx, 9
and ecx, 0xfe0
lea rbx, [rax + rcx]
add rbx, 0x1000
movzx ecx, word [rbx + 0x1e]
mov r15, rcx
neg r15
shl rcx, 5
mov rdx, rbx
sub rdx, rcx
mov qword [rsp + 0x38], rdx
mov rcx, rdx
and rcx, 0xfffffffffffff000
mov rcx, qword [rcx]
cmp byte [rcx], 2
je 0x1400f5e6b
cmp byte [rcx + 1], 0
je 0x1400f604d
mov rax, r15
shl rax, 5
mov rsi, qword [rbx + rax + 0x10]
cmp byte [rsi + 0x1c], 0
je 0x1400f604d
mov qword [rsp + 0x40], r15
mov r15, rcx
mov edi, dword [0x140178ca0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test r12d, r12d
jne 0x1400f6038
test rdi, rdi
mov r12, qword [rsp + 0x60]
mov rcx, r15
mov r15, qword [rsp + 0x40]
je 0x1400f604d
sub rsi, rcx
add rsi, 0xfffffffffffffff0
sar rsi, 3
movabs rax, 0xcccccccccccccccd
imul rsi, rax
inc qword [rdi + 0x2c0]
cmp rsi, 0x28
ja 0x1400f6046
shl rsi, 4
mov rcx, qword [rdi + rsi + 8]
call fcn.14010bcbc
mov qword [rbp], rax
mov qword [rdi + rsi + 8], rbp
mov al, byte [rdi + rsi + 0x10]
inc al
mov byte [rdi + rsi + 0x10], al
inc qword [rdi + 0x2c8]
movzx r8d, byte [rdi + rsi + 0x11]
cmp al, r8b
jae 0x1400f60e8
mov eax, dword [rdi]
test eax, eax
mov rbx, qword [rsp + 0x30]
movabs r9, 0xaaaaaaaaaaaaaaa
mov r10, 0xffffffffffe00000
movabs r11, 0xaaaaaaaaaaaaaaab
je 0x1400f5b79
mov rcx, rdi
call fcn.140106300
jmp 0x1400f5bb1
mov eax, 0x40
mov edx, 0x40
sub rdx, rax
lea rax, [0x140147e80]
mov cl, byte [rdx + rax]
mov rax, rbx
shr rax, cl
and eax, 7
lea rcx, [0x140147ed0]
mov rcx, qword [rcx + rdx*8]
and rcx, rbx
lea rax, [rax + rdx*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1401480d8]
movzx r13d, word [rcx + rax*2 + 0x400]
mov byte [rsp + 0xa0], 0xaa
cmp byte [0x140170d61], 0
mov qword [rsp + 0x50], rbx
je 0x1400f5f5c
mov qword [rsp + 0x38], r13
mov r12d, dword [0x140178ca0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test r13d, r13d
jne 0x1400f5f63
test rax, rax
je 0x1400f5f77
inc qword [rax + 0x298]
mov rcx, qword [rsp + 0x38]
cmp cx, 0x29
jae 0x1400f5f96
shl rcx, 4
mov qword [rsp + 0x88], rcx
add rcx, rax
add rcx, 8
mov rbx, rcx
mov r12, qword [rcx]
test r12, r12
je 0x1400f5ffe
inc qword [rax + 0x2a0]
mov r13, rax
mov rcx, qword [r12]
call fcn.14010bcbc
mov rcx, qword [rsp + 0x88]
dec byte [r13 + rcx + 0x10]
mov qword [rbx], rax
mov rbx, qword [rsp + 0x30]
movabs r9, 0xaaaaaaaaaaaaaaa
mov r10, 0xffffffffffe00000
movabs r11, 0xaaaaaaaaaaaaaaab
mov rdx, qword [rsp + 0x40]
jmp 0x1400f5aeb
mov rdi, r15
shl rdi, 5
mov rdx, qword [rbx + rdi + 0x10]
cmp byte [rdx + 0x1c], 0
je 0x1400f5c59
add rdi, rbx
add rdi, 0x10
mov rbx, qword [0x14016cca8]
and ebx, 1
shl rbx, 0xe
add rbx, rax
mov eax, ebp
shr eax, 7
and eax, 0x3fff
shr bpl, 4
and bpl, 7
mov dl, 1
mov ecx, ebp
shl dl, cl
lock or byte [rax + rbx + 0x4000], dl
mov rax, qword [rdi]
mov eax, dword [rax + 0x18]
mov rcx, rax
lock xadd qword [0x14016cc98], rcx
add rcx, rax
mov rax, qword [0x14016cca0]
cmp rcx, rax
mov rbx, qword [rsp + 0x30]
movabs r9, 0xaaaaaaaaaaaaaaa
mov r10, 0xffffffffffe00000
movabs r11, 0xaaaaaaaaaaaaaaab
jbe 0x1400f5b79
mov al, 1
xchg byte [0x14016ccb8], al
test al, 1
jne 0x1400f5b79
xor eax, eax
xchg qword [0x14016cc98], rax
mov qword [0x14016ccb0], rax
lock inc qword [0x14016cca8]
call fcn.1400f55f0
mov rdi, rax
mov rcx, rax
lea rdx, [0x14016cc50]
call fcn.1400f5700
call fcn.1400f6400
mov qword [rsp + 0xa0], rdi
lea rcx, [rsp + 0xa0]
call fcn.1400f64f0
jmp 0x1400f5bb1
lea r13, [r13 + r13*4]
jmp 0x1400f5fb0
mov r12, rax
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, r12
jmp 0x1400f5ddd
mov byte [0x140170d61], 0
lea rcx, [0x140170d60]
call fcn.140105f20
mov byte [0x140170d61], 1
jmp 0x1400f5de6
inc qword [rax + 0x2b8]
inc qword [rax + 0x2a8]
mov byte [rsp + 0xa0], 0
lea r13, [rcx + rcx*4]
lea rcx, [0x140170d68]
call fcn.1400a5910
lea rax, [0x140170d60]
mov rbx, qword [rax + r13*8 + 0x10]
mov r12, qword [rbx]
test r12, r12
je 0x1400f6121
mov byte [rsp + 0xa0], 0
mov rcx, qword [r12]
call fcn.14010bcbc
mov qword [rbx], rax
inc word [rbx + 0x18]
lea rcx, [0x140170d68]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400f5e41
movdqu xmm0, xmmword [rax + 0x2a8]
psubq xmm0, xmm7
movdqu xmmword [rax + 0x2a8], xmm0
mov r13, rax
mov rcx, rax
mov rdx, qword [rsp + 0x38]
call fcn.1401060c0
mov rcx, qword [rsp + 0x38]
mov r12, qword [rbx]
test r12, r12
jne 0x1400f5e28
jmp 0x1400f5fa4
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400f5ca4
inc qword [rdi + 0x2d0]
add rcx, 8
movaps xmmword [rsp + 0xa0], xmm6
mov rsi, rcx
call fcn.1400a5910
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rdi]
cmp rcx, rbp
je 0x1400f63f5
call fcn.14010bcbc
mov qword [rbp], rax
mov qword [rdi], rbp
shl r15, 5
movzx eax, word [rbx + r15 + 0x18]
dec eax
mov word [rbx + r15 + 0x18], ax
test ax, ax
jle 0x1400f6100
movaps xmmword [rsp + 0xd0], xmm6
mov rcx, rsi
movdqa xmm0, xmmword [rsp + 0xd0]
movdqa xmmword [rsp + 0xa0], xmm0
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0xa0], 0
jne 0x1400f6112
mov rbx, qword [rsp + 0x30]
movabs r9, 0xaaaaaaaaaaaaaaa
mov r10, 0xffffffffffe00000
movabs r11, 0xaaaaaaaaaaaaaaab
jmp 0x1400f5b79
lea rdx, [rdi + rsi]
add rdx, 8
shr r8, 1
mov rcx, rdi
call fcn.1401061c0
jmp 0x1400f5d1b
mov rcx, rdi
lea rdx, [rsp + 0xd0]
call fcn.140106480
jmp 0x1400f609d
lea rcx, [rsp + 0xa0]
call fcn.140053f10
jmp 0x1400f60c3
lea rdx, [0x140170d60]
lea rcx, [rdx + r13*8]
add rcx, 0x10
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov r9, qword [rsp + 0x50]
call fcn.1400f4c40
mov r12, rax
jmp 0x1400f5fec
mov rsi, rdi
mov rbp, rdi
jmp 0x1400f615d
mov rbp, rsi
cmp qword [rbp], 0
je 0x1400f6182
add r13, 0x200000
mov rax, qword [rsp + 0x98]
cmp r13, qword [rax + 0x10]
jne 0x1400f5923
jmp 0x1400f63b7
call fcn.1400f7db0
mov byte [rsp + 0xa0], 0xaa
cmp byte [0x140170d61], 0
je 0x1400f6259
mov ebx, dword [0x140178ca0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, eax
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test r14d, r14d
jne 0x1400f62a1
test rbx, rbx
je 0x1400f62af
inc qword [rbx + 0x298]
mov r14, qword [rbx + 0xc8]
test r14, r14
je 0x1400f62d1
inc qword [rbx + 0x2a0]
mov rcx, qword [r14]
call fcn.14010bcbc
dec byte [rbx + 0xd0]
mov qword [rbx + 0xc8], rax
mov qword [r14 + 0x20], r13
movups xmmword [r14], xmm6
mov qword [r14 + 0x10], rsi
mov qword [rbp], r14
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx + 0x38]
mov rax, qword [rax]
test rax, rax
je 0x1400f6224
mov qword [rcx + 0x38], rax
mov r14, qword [rbp]
mov rcx, qword [rcx + 0x40]
mov rdx, r14
call fcn.140017d77
mov rbx, qword [rsp + 0x30]
inc qword [rbx + 0x48]
movabs r9, 0xaaaaaaaaaaaaaaa
mov r10, 0xffffffffffe00000
movabs r11, 0xaaaaaaaaaaaaaaab
jmp 0x1400f6164
lea rcx, [0x140170d68]
call fcn.1400a5910
mov rbx, qword [0x140170f50]
mov r14, qword [rbx]
test r14, r14
je 0x1400f6358
mov byte [rsp + 0xa0], 0
mov rcx, qword [r14]
call fcn.14010bcbc
mov qword [rbx], rax
inc word [rbx + 0x18]
lea rcx, [0x140170d68]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400f61fb
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400f61bf
mov byte [0x140170d61], 0
lea rcx, [0x140170d60]
call fcn.140105f20
mov rbx, rax
mov byte [0x140170d61], 1
jmp 0x1400f61c8
movdqu xmm0, xmmword [rbx + 0x2a8]
psubq xmm0, xmm7
movdqu xmmword [rbx + 0x2a8], xmm0
mov edx, 0xc
mov rcx, rbx
call fcn.1401060c0
mov r14, qword [rbx + 0xc8]
test r14, r14
jne 0x1400f61e6
mov byte [rsp + 0xa0], 0
lea rcx, [0x140170d68]
call fcn.1400a5910
mov rbx, qword [0x140170f50]
mov r14, qword [rbx]
test r14, r14
je 0x1400f6389
mov byte [rsp + 0xa0], 0
mov rcx, qword [r14]
call fcn.14010bcbc
mov qword [rbx], rax
inc word [rbx + 0x18]
lea rcx, [0x140170d68]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x68]
jmp 0x1400f61fb
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea rcx, [0x140170f50]
lea rdx, [0x140170d60]
xor r8d, r8d
call fcn.1400f4c40
mov r14, rax
jmp 0x1400f628f
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea rcx, [0x140170f50]
lea rdx, [0x140170d60]
xor r8d, r8d
call fcn.1400f4c40
mov r14, rax
jmp 0x1400f633c
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1400f590d
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x80]
add rbx, 8
cmp rbx, qword [rsp + 0x70]
je 0x1400f5865
jmp 0x1400f58bf
mov rcx, qword [rsp + 0x48]
call fcn.1400786e6
int3