Function at 0x1400f64f0
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, 0x68
mov rsi, rcx
mov rax, qword [0x14016c028]
xor rax, rsp
mov qword [rsp + 0x60], rax
lea rcx, [0x140172280]
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rsi]
mov qword [rsi], 0
mov rdi, qword [0x140172290]
mov qword [0x140172290], rax
test rdi, rdi
je 0x1400f656b
mov rcx, qword [rdi + 0x40]
call fcn.1400f7e40
mov rbx, qword [rdi + 0x20]
test rbx, rbx
jne 0x1400f65e1
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400f6563
mov qword [rdi + 0x10], rcx
call fcn.1400f7ab0
mov rcx, rdi
call fcn.1400f7ab0
lea rcx, [0x140172280]
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
lea rcx, [0x140172288]
call fcn.14001c96a
mov rdi, qword [rsi]
mov qword [rsi], 0
test rdi, rdi
je 0x1400f65c2
mov rcx, qword [rdi + 0x40]
call fcn.1400f7e40
mov rsi, qword [rdi + 0x20]
test rsi, rsi
jne 0x1400f671f
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400f65ba
mov qword [rdi + 0x10], rcx
call fcn.1400f7ab0
mov rcx, rdi
call fcn.1400f7ab0
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14010e4a0
nop
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rdi + 0x28], rbx
call fcn.1400f7db0
mov rax, rbx
and rax, 0xffffffffffe00000
mov rcx, rbx
shr rcx, 9
and ecx, 0xfe0
lea r14, [rax + rcx]
add r14, 0x1000
movzx ecx, word [r14 + 0x1e]
mov r13, rcx
neg r13
shl rcx, 5
mov rbp, r14
sub rbp, rcx
mov rcx, rbp
and rcx, 0xfffffffffffff000
mov rcx, qword [rcx]
cmp byte [rcx], 2
je 0x1400f6841
mov qword [rsp + 0x30], rbp
cmp byte [rcx + 1], 0
je 0x1400f69fb
mov rax, r13
shl rax, 5
mov r15, qword [r14 + rax + 0x10]
cmp byte [r15 + 0x1c], 0
je 0x1400f69fb
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x28], r14
mov r14, rcx
mov ebp, dword [0x140178ca0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r12, rax
test r13d, r13d
jne 0x1400f69d8
test r12, r12
mov rcx, r14
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x38]
je 0x1400f69fb
sub r15, rcx
add r15, 0xfffffffffffffff0
sar r15, 3
movabs rbp, 0xcccccccccccccccd
imul rbp, r15
inc qword [r12 + 0x2c0]
cmp rbp, 0x28
ja 0x1400f69f3
shl rbp, 4
mov rcx, qword [r12 + rbp + 8]
call fcn.14010bcbc
mov qword [rbx], rax
mov qword [r12 + rbp + 8], rbx
mov al, byte [r12 + rbp + 0x10]
inc al
mov byte [r12 + rbp + 0x10], al
inc qword [r12 + 0x2c8]
movzx r8d, byte [r12 + rbp + 0x11]
cmp al, r8b
jae 0x1400f6b04
mov eax, dword [r12]
test eax, eax
je 0x1400f6551
mov rcx, r12
call fcn.140106300
jmp 0x1400f6551
mov qword [rdi + 0x28], rsi
call fcn.1400f7db0
mov rax, rsi
and rax, 0xffffffffffe00000
mov rcx, rsi
shr rcx, 9
and ecx, 0xfe0
lea r15, [rax + rcx]
add r15, 0x1000
movzx ecx, word [r15 + 0x1e]
mov r13, rcx
neg r13
shl rcx, 5
mov rbx, r15
sub rbx, rcx
mov rcx, rbx
and rcx, 0xfffffffffffff000
mov rcx, qword [rcx]
cmp byte [rcx], 2
je 0x1400f690b
mov qword [rsp + 0x28], rbx
cmp byte [rcx + 1], 0
je 0x1400f6a85
mov rax, r13
shl rax, 5
mov r14, qword [r15 + rax + 0x10]
cmp byte [r14 + 0x1c], 0
je 0x1400f6a85
mov r12, rcx
mov ebx, dword [0x140178ca0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test ebp, ebp
jne 0x1400f69e6
test rbx, rbx
mov rcx, r12
je 0x1400f6a85
sub r14, rcx
add r14, 0xfffffffffffffff0
sar r14, 3
movabs rbp, 0xcccccccccccccccd
imul rbp, r14
inc qword [rbx + 0x2c0]
cmp rbp, 0x28
ja 0x1400f6a7e
shl rbp, 4
mov rcx, qword [rbx + rbp + 8]
call fcn.14010bcbc
mov qword [rsi], rax
mov qword [rbx + rbp + 8], rsi
mov al, byte [rbx + rbp + 0x10]
inc al
mov byte [rbx + rbp + 0x10], al
inc qword [rbx + 0x2c8]
movzx r8d, byte [rbx + rbp + 0x11]
cmp al, r8b
jae 0x1400f6b1c
mov eax, dword [rbx]
test eax, eax
je 0x1400f65a8
mov rcx, rbx
call fcn.140106300
jmp 0x1400f65a8
mov r8, r13
shl r8, 5
mov rdx, qword [r14 + r8 + 0x10]
cmp byte [rdx + 0x1c], 0
je 0x1400f6636
add r8, r14
add r8, 0x10
mov rbp, qword [0x14016cca8]
and ebp, 1
shl rbp, 0xe
add rbp, rax
mov eax, ebx
shr eax, 7
and eax, 0x3fff
shr bl, 4
and bl, 7
mov dl, 1
mov ecx, ebx
shl dl, cl
lock or byte [rax + rbp + 0x4000], dl
mov rax, qword [r8]
mov ecx, dword [rax + 0x18]
mov rdx, rcx
lock xadd qword [0x14016cc98], rdx
mov al, 1
add rdx, rcx
mov rcx, qword [0x14016cca0]
cmp rdx, rcx
jbe 0x1400f6551
xchg byte [0x14016ccb8], al
test al, 1
jne 0x1400f6551
xor eax, eax
xchg qword [0x14016cc98], rax
lea rbx, [0x14016cc50]
mov qword [0x14016ccb0], rax
lock inc qword [0x14016cca8]
call fcn.1400f55f0
mov rbp, rax
mov rcx, rax
mov rdx, rbx
call fcn.1400f5700
call fcn.1400f6400
lea rcx, [rsp + 0x50]
mov qword [rcx], rbp
call fcn.1400f64f0
jmp 0x1400f6551
mov rbp, r13
shl rbp, 5
mov rdx, qword [r15 + rbp + 0x10]
cmp byte [rdx + 0x1c], 0
je 0x1400f6774
lea rdx, [r15 + rbp]
add rdx, 0x10
mov rbp, qword [0x14016cca8]
and ebp, 1
shl rbp, 0xe
add rbp, rax
mov eax, esi
shr eax, 7
and eax, 0x3fff
shr sil, 4
and sil, 7
mov bl, 1
mov ecx, esi
shl bl, cl
lock or byte [rax + rbp + 0x4000], bl
mov rax, qword [rdx]
mov ecx, dword [rax + 0x18]
mov rdx, rcx
lock xadd qword [0x14016cc98], rdx
mov al, 1
add rdx, rcx
mov rcx, qword [0x14016cca0]
cmp rdx, rcx
jbe 0x1400f65a8
xchg byte [0x14016ccb8], al
test al, 1
jne 0x1400f65a8
xor eax, eax
xchg qword [0x14016cc98], rax
lea rsi, [0x14016cc50]
mov qword [0x14016ccb0], rax
lock inc qword [0x14016cca8]
call fcn.1400f55f0
mov rbx, rax
mov rcx, rax
mov rdx, rsi
call fcn.1400f5700
call fcn.1400f6400
lea rcx, [rsp + 0x50]
mov qword [rcx], rbx
call fcn.1400f64f0
jmp 0x1400f65a8
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400f668c
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400f67be
inc qword [r12 + 0x2d0]
add rcx, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
mov r15, rcx
call fcn.1400a5910
mov rbp, qword [rsp + 0x30]
mov rcx, qword [rbp]
cmp rbx, rcx
je 0x1400f6b5c
call fcn.14010bcbc
mov qword [rbx], rax
mov qword [rbp], rbx
shl r13, 5
movzx eax, word [r14 + r13 + 0x18]
dec eax
mov word [r14 + r13 + 0x18], ax
test ax, ax
jle 0x1400f6b34
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x50], xmm0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x50], 0
je 0x1400f6551
lea rcx, [rsp + 0x50]
call fcn.140053f10
jmp 0x1400f6551
inc qword [rbx + 0x2d0]
add rcx, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
mov rbx, rcx
call fcn.1400a5910
mov rbp, qword [rsp + 0x28]
mov rcx, qword [rbp]
cmp rsi, rcx
je 0x1400f6b5f
call fcn.14010bcbc
mov qword [rsi], rax
mov qword [rbp], rsi
shl r13, 5
movzx eax, word [r15 + r13 + 0x18]
dec eax
mov word [r15 + r13 + 0x18], ax
test ax, ax
jle 0x1400f6b48
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x50], xmm0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x50], 0
je 0x1400f65a8
lea rcx, [rsp + 0x50]
call fcn.140053f10
jmp 0x1400f65a8
lea rdx, [r12 + rbp]
add rdx, 8
shr r8, 1
mov rcx, r12
call fcn.1401061c0
jmp 0x1400f6706
lea rdx, [rbx + rbp]
add rdx, 8
shr r8, 1
mov rcx, rbx
call fcn.1401061c0
jmp 0x1400f682a
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
call fcn.140106480
jmp 0x1400f6a50
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
call fcn.140106480
jmp 0x1400f6ad6
int3
int3