Function at 0x1400f6b70
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, 0x278
movaps xmmword [rsp + 0x260], xmm6
mov r15, rcx
mov rax, qword [0x14016c028]
xor rax, rsp
mov qword [rsp + 0x258], rax
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov al, byte [0x14016e5f0]
mov byte [rsp + 0x57], al
test al, 0x19
jne 0x1400f75af
xor eax, eax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rcx
cmp byte [0x140170d58], 0
je 0x1400f6bea
mov al, byte [0x140170d59]
jmp 0x1400f6c75
lea rdi, [rsp + 0x114]
mov r8d, 0x118
mov rcx, rdi
xor edx, edx
call fcn.140110bf0
mov dword [rdi - 4], 0x11c
mov rsi, qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
xor ecx, ecx
mov edx, 2
mov r8b, 3
call rsi
mov rcx, rax
mov edx, 1
mov r8b, 3
call rsi
mov rcx, rax
mov edx, 0x20
mov r8b, 3
call rsi
movabs rcx, 0x300000006
mov qword [rdi], rcx
mov word [rdi + 0x110], 0
lea rcx, [rsp + 0x110]
mov edx, 0x23
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
setne al
setne byte [0x140170d59]
mov byte [0x140170d58], 1
test al, al
mov qword [rsp + 0x70], r15
je 0x1400f6dfa
mov rbx, qword [r15 + 0x38]
lea rax, [r15 + 0x40]
cmp rbx, rax
je 0x1400f6cfa
mov rbp, qword [rbx + 0x20]
sub rbp, qword [r15 + 0x450]
mov rcx, rbp
shr rcx, 0x22
jne 0x1400f7782
mov rcx, rbp
shr rcx, 0x15
mov edx, 1
shl rdx, cl
shr rbp, 0x1b
or qword [r15 + rbp*8 + 0x50], rdx
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400f6cd5
mov rdx, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400f6cc8
jmp 0x1400f6cf2
mov rdx, qword [rbx + 0x10]
cmp qword [rdx], rbx
je 0x1400f6cf2
add rbx, 0x10
mov rcx, qword [rbx]
lea rbx, [rcx + 0x10]
mov rdx, qword [rcx + 0x10]
cmp qword [rdx], rcx
jne 0x1400f6ce2
mov rbx, rdx
cmp rdx, rax
jne 0x1400f6c8f
mov rcx, r15
call fcn.1400f8150
mov r13b, byte [0x14016e5f0]
test r13b, 0x19
jne 0x1400f7697
xor eax, eax
mov qword [rsp + 0x68], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov rbp, qword [r15 + 0x20]
mov rdi, qword [r15 + 0x28]
xor r12d, r12d
cmp rbp, rdi
je 0x1400f6dd1
mov rdx, qword [rbp]
mov rbx, qword [rbp + 8]
mov r14, qword [rbp + 0x10]
mov rax, qword [r15]
mov rcx, qword [rax + 0x58]
xor eax, eax
test cl, 1
sete cl
cmp rdx, rbx
jae 0x1400f6dbf
mov rsi, rdx
and rsi, 0xffffffffffe00000
mov al, cl
shl rax, 0xe
lea r15, [rax + rsi]
add r15, 0x4000
mov eax, edx
shr eax, 7
and eax, 0x3fff
mov al, byte [r15 + rax]
movzx eax, al
mov ecx, edx
shr cl, 4
and cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x1400f6da3
add rdx, r14
jmp 0x1400f6dba
lea rsi, [rdx + r14]
mov rcx, qword [rsp + 0x70]
mov r8, rsi
call fcn.1400f85f0
add r12, rax
mov rdx, rsi
cmp rdx, rbx
jb 0x1400f6d7d
add rbp, 0x18
cmp rbp, rdi
mov r15, qword [rsp + 0x70]
jne 0x1400f6d42
mov rsi, qword [r15 + 8]
mov rdi, qword [r15 + 0x10]
cmp rsi, rdi
je 0x1400f6ef6
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov rcx, r15
call fcn.1400f85f0
add r12, rax
add rsi, 0x10
jmp 0x1400f6dd9
mov rcx, r15
call fcn.1400f8150
mov r13b, byte [0x14016e5f0]
test r13b, 0x19
jne 0x1400f770b
xor eax, eax
mov qword [rsp + 0x68], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov rbp, qword [r15 + 0x20]
mov rdi, qword [r15 + 0x28]
xor r12d, r12d
cmp rbp, rdi
je 0x1400f6ed1
mov rdx, qword [rbp]
mov rbx, qword [rbp + 8]
mov r14, qword [rbp + 0x10]
mov rax, qword [r15]
mov rcx, qword [rax + 0x58]
xor eax, eax
test cl, 1
sete cl
cmp rdx, rbx
jae 0x1400f6ebf
mov rsi, rdx
and rsi, 0xffffffffffe00000
mov al, cl
shl rax, 0xe
lea r15, [rax + rsi]
add r15, 0x4000
mov eax, edx
shr eax, 7
and eax, 0x3fff
mov al, byte [r15 + rax]
movzx eax, al
mov ecx, edx
shr cl, 4
and cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x1400f6ea3
add rdx, r14
jmp 0x1400f6eba
lea rsi, [rdx + r14]
mov rcx, qword [rsp + 0x70]
mov r8, rsi
call fcn.1400f83a0
add r12, rax
mov rdx, rsi
cmp rdx, rbx
jb 0x1400f6e7d
add rbp, 0x18
cmp rbp, rdi
mov r15, qword [rsp + 0x70]
jne 0x1400f6e42
mov rsi, qword [r15 + 8]
mov rdi, qword [r15 + 0x10]
cmp rsi, rdi
je 0x1400f6ef6
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov rcx, r15
call fcn.1400f83a0
add r12, rax
add rsi, 0x10
jmp 0x1400f6ed9
test r13b, 0x19
je 0x1400f6f15
mov rcx, qword [rsp + 0x68]
cmp byte [rcx], 0
je 0x1400f6f15
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
call fcn.14000c320
mov al, byte [0x14016e5f0]
mov byte [rsp + 0x56], al
test al, 0x19
movabs rax, 0xaaaaaaaaaaaaaaaa
jne 0x1400f762c
xor ecx, ecx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xb8], rax
mov rcx, qword [r15 + 0x38]
lea rax, [r15 + 0x40]
mov qword [rsp + 0xc0], rax
cmp rcx, rax
je 0x1400f72d4
xorps xmm6, xmm6
xor edi, edi
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xc8], rcx
mov rax, qword [rcx + 0x20]
mov rcx, qword [r15]
mov rcx, qword [rcx + 0x58]
mov rbx, qword [rax + 0x1000]
mov rbp, 0xffffffffffe00000
and rax, rbp
xor edx, edx
test cl, 1
sete dl
shl rdx, 0xe
add rax, rdx
add rax, 0x4000
mov qword [rsp + 0xb0], rax
and rax, rbp
mov qword [rsp + 0xe0], rax
lea rax, [rbx + 0x10]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe8], rbx
lea rax, [rbx + 8]
mov qword [rsp + 0xa8], rax
xor ecx, ecx
mov rax, qword [rsp + 0xb0]
mov bl, byte [rax + rcx]
test bl, bl
mov qword [rsp + 0xd0], rcx
je 0x1400f723f
lea rax, [rcx*8]
mov qword [rsp + 0x60], rax
movzx eax, bl
bsf esi, eax
mov rax, qword [rsp + 0x60]
lea r12, [rax + rsi]
shl r12, 4
add r12, qword [rsp + 0xe0]
mov rax, r12
and rax, 0xffffffffffe00000
mov rcx, r12
shr rcx, 9
and ecx, 0xfe0
add rcx, rax
add rcx, 0x1000
movzx eax, word [rcx + 0x1e]
mov qword [rsp + 0xf0], rax
shl rax, 5
mov qword [rsp + 0xf8], rcx
sub rcx, rax
mov qword [rsp + 0x58], rcx
mov r14, qword [rcx + 0x10]
mov ebp, dword [r14 + 0x18]
mov rax, qword [rsp + 0xe8]
cmp byte [rax + 1], 0
je 0x1400f7163
cmp byte [r14 + 0x1c], 0
je 0x1400f7163
mov qword [rsp + 0x68], rbp
mov ebp, ebx
mov r15, rsi
mov rbx, rdi
mov edi, dword [0x140178ca0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r13, rax
test esi, esi
jne 0x1400f714f
test r13, r13
mov rdi, rbx
mov rsi, r15
mov ebx, ebp
mov rbp, qword [rsp + 0x68]
je 0x1400f7163
sub r14, qword [rsp + 0xd8]
sar r14, 3
movabs rax, 0xcccccccccccccccd
imul r14, rax
inc qword [r13 + 0x2c0]
cmp r14, 0x28
ja 0x1400f715c
shl r14, 4
mov rcx, qword [r13 + r14 + 8]
call fcn.14010bcbc
mov qword [r12], rax
mov qword [r13 + r14 + 8], r12
mov al, byte [r13 + r14 + 0x10]
inc al
mov byte [r13 + r14 + 0x10], al
inc qword [r13 + 0x2c8]
movzx r8d, byte [r13 + r14 + 0x11]
cmp al, r8b
jae 0x1400f7208
mov eax, dword [r13]
test eax, eax
jne 0x1400f7220
mov eax, 1
mov ecx, esi
shl eax, cl
add rdi, rbp
not al
and bl, al
jne 0x1400f7004
jmp 0x1400f723f
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400f70b2
inc qword [r13 + 0x2d0]
movaps xmmword [rsp + 0x110], xmm6
mov rcx, qword [rsp + 0xa8]
call fcn.1400a5910
mov r14, qword [rsp + 0x58]
mov rcx, qword [r14]
cmp rcx, r12
je 0x1400f777f
mov r15, qword [rsp + 0xf0]
neg r15
call fcn.14010bcbc
mov qword [r12], rax
mov qword [r14], r12
shl r15, 5
mov rcx, qword [rsp + 0xf8]
movzx eax, word [rcx + r15 + 0x18]
dec eax
mov word [rcx + r15 + 0x18], ax
test ax, ax
jle 0x1400f722d
movaps xmmword [rsp + 0x100], xmm6
movapd xmm0, xmmword [rsp + 0x100]
movapd xmmword [rsp + 0x110], xmm0
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x110], 0
je 0x1400f7134
lea rcx, [rsp + 0x110]
call fcn.140053f10
jmp 0x1400f7134
lea rdx, [r14 + r13]
add rdx, 8
shr r8, 1
mov rcx, r13
call fcn.1401061c0
jmp 0x1400f7128
mov rcx, r13
call fcn.140106300
jmp 0x1400f7134
mov rcx, r14
lea rdx, [rsp + 0x100]
call fcn.140106480
jmp 0x1400f71c7
mov rcx, qword [rsp + 0xd0]
inc rcx
cmp rcx, 0x4000
jne 0x1400f6fdc
mov r8d, 0x4000
mov rcx, qword [rsp + 0xb0]
xor edx, edx
call fcn.140110bf0
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rdx + 8]
test rcx, rcx
je 0x1400f7297
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400f727d
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0xa0]
jmp 0x1400f72c1
mov rax, qword [rdx + 0x10]
cmp qword [rax], rdx
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0xa0]
je 0x1400f72c1
add rdx, 0x10
mov rcx, qword [rdx]
lea rdx, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rax], rcx
jne 0x1400f72b1
mov rcx, rax
cmp rax, qword [rsp + 0xc0]
jne 0x1400f6f6e
jmp 0x1400f72d6
xor edi, edi
test byte [rsp + 0x56], 0x19
mov rcx, qword [rsp + 0x90]
je 0x1400f72fc
cmp byte [rcx], 0
je 0x1400f72fc
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0xb8]
call fcn.14000c320
mov rax, qword [r15]
mov rbp, qword [rax + 0x60]
lea rcx, str..._.._base_allocator_partition_allocator_pcscan.cc
mov edx, 0x33
call fcn.140022290
cmp eax, 2
jge 0x1400f74b7
mov rax, qword [r15]
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x1400f7350
lea rdx, [rcx*8 - 8]
mov rcx, rdx
shr rcx, 3
inc rcx
mov ebp, ecx
and ebp, 7
cmp rdx, 0x38
jae 0x1400f7363
xor ebx, ebx
mov rdx, rax
jmp 0x1400f73e0
lock add qword [rax + 0x48], r12
mov rax, qword [rax + 0x50]
mov ecx, 0x100000
jmp 0x1400f744a
and rcx, 0xfffffffffffffff8
neg rcx
xor ebx, ebx
mov rdx, rax
mov rdi, qword [rdx]
mov rdi, qword [rdi + 0x1440]
add edi, ebx
mov rbx, qword [rdx + 8]
mov rbx, qword [rbx + 0x1440]
add ebx, edi
mov rdi, qword [rdx + 0x10]
mov rdi, qword [rdi + 0x1440]
add edi, ebx
mov rbx, qword [rdx + 0x18]
mov rbx, qword [rbx + 0x1440]
add ebx, edi
mov rdi, qword [rdx + 0x20]
mov rdi, qword [rdi + 0x1440]
add edi, ebx
mov rbx, qword [rdx + 0x28]
mov rbx, qword [rbx + 0x1440]
add ebx, edi
mov rdi, qword [rdx + 0x30]
mov rdi, qword [rdi + 0x1440]
add edi, ebx
mov rbx, qword [rdx + 0x38]
mov rbx, qword [rbx + 0x1440]
add ebx, edi
add rdx, 0x40
add rcx, 8
jne 0x1400f736f
test rbp, rbp
je 0x1400f73fc
xor ecx, ecx
mov rdi, qword [rdx + rcx*8]
mov rdi, qword [rdi + 0x1440]
add ebx, edi
inc rcx
cmp rbp, rcx
jne 0x1400f73e7
mov ecx, ebx
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
mulsd xmm0, qword [0x140146a20]
movsd xmm1, qword [0x140146a28]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si rdx, xmm2
btc rdx, 0x3f
cvttsd2si rcx, xmm0
ucomisd xmm0, xmm1
cmovae rcx, rdx
lock add qword [rax + 0x48], r12
mov rax, qword [rax + 0x50]
mov eax, 0x100000
cmp rcx, rax
cmovbe rcx, rax
mov rax, qword [r15]
mov qword [rax + 0x50], rcx
mov rax, qword [r15]
xor ecx, ecx
xchg byte [rax + 0x68], cl
test cl, 1
je 0x1400f7787
test byte [rsp + 0x57], 0x19
mov rcx, qword [rsp + 0x98]
je 0x1400f748b
cmp byte [rcx], 0
je 0x1400f748b
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
call fcn.14000c320
mov rcx, qword [rsp + 0x258]
xor rcx, rsp
call fcn.14010e4a0
movaps xmm6, xmmword [rsp + 0x260]
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str..._.._base_allocator_partition_allocator_pcscan.cc
lea r14, [rsp + 0x110]
mov rcx, r14
mov r8d, 0x4b
mov r9d, 0xfffffffe
call fcn.14000fbb0
lea rcx, [rsp + 0x120]
lea rdx, str.quarantine_size:
mov r8d, 0x11
call fcn.14000ee2e
mov rcx, rax
mov rdx, rbp
call fcn.14001f8c0
lea rdx, str.___
mov r8d, 4
mov rcx, rax
call fcn.14000ee2e
mov rcx, rax
mov rdx, r12
call fcn.14001f8c0
lea rdx, str.__swept_bytes:
mov r8d, 0xf
mov rcx, rax
call fcn.14000ee2e
mov rcx, rax
mov rdx, rdi
call fcn.14001f8c0
lea rdx, str.__survival_rate:
mov r8d, 0x11
mov rcx, rax
call fcn.14000ee2e
movq xmm0, r12
movdqa xmm2, xmmword [0x1401469f0]
punpckldq xmm0, xmm2
movapd xmm3, xmmword [0x140146a00]
subpd xmm0, xmm3
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
movq xmm0, rbp
punpckldq xmm0, xmm2
subpd xmm0, xmm3
movapd xmm2, xmm0
unpckhpd xmm2, xmm0
addsd xmm2, xmm0
divsd xmm1, xmm2
mov rcx, rax
call fcn.14007a61e
mov rcx, r14
call fcn.140010050
jmp 0x1400f731d
call sub.KERNEL32.dll_GetCurrentThreadId
mov esi, eax
lea rdi, [rsp + 0x110]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rdi], rax
mov rcx, rdi
call fcn.14000c860
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], esi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e5f0]
lea r8, str.PCScan
mov cl, 0x58
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x88], r8
xor r9d, r9d
call fcn.14000c950
mov qword [rsp + 0x80], rax
jmp 0x1400f6bd6
mov rdi, rax
call sub.KERNEL32.dll_GetCurrentThreadId
mov ebp, eax
lea rbx, [rsp + 0x110]
mov qword [rbx], rdi
mov rcx, rbx
call fcn.14000c860
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], ebp
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e5f0]
lea r8, str.PCScan.Sweep
mov cl, 0x58
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x78], r8
xor r9d, r9d
call fcn.14000c950
jmp 0x1400f6f40
call sub.KERNEL32.dll_GetCurrentThreadId
mov esi, eax
lea rdi, [rsp + 0x110]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rdi], rax
mov rcx, rdi
call fcn.14000c860
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], esi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e5f0]
lea r8, str.PCScan.Scan
mov cl, 0x58
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], r8
xor r9d, r9d
call fcn.14000c950
mov qword [rsp + 0x58], rax
jmp 0x1400f6d2e
call sub.KERNEL32.dll_GetCurrentThreadId
mov esi, eax
lea rdi, [rsp + 0x110]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rdi], rax
mov rcx, rdi
call fcn.14000c860
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], esi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e5f0]
lea r8, str.PCScan.Scan
mov cl, 0x58
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], r8
xor r9d, r9d
call fcn.14000c950
mov qword [rsp + 0x58], rax
jmp 0x1400f6e2e
int3
call fcn.14010cab0
int3