Function at 0x140027e26
Capabilities:
Get memory capacity
Get system information on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x428
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x390], xmm6
mov qword [rbp + 0x388], 0xfffffffffffffffe
mov r15, rdx
mov rsi, rcx
mov al, byte [rdx + 9]
cmp al, 2
je 0x140027f3f
mov bl, byte [r15 + 0xa]
test al, al
je 0x140027eb0
xorps xmm0, xmm0
lea rcx, [rbp + 0x130]
movaps xmmword [rcx], xmm0
movaps xmmword [rcx + 0x30], xmm0
movaps xmmword [rcx + 0x20], xmm0
movaps xmmword [rcx + 0x10], xmm0
mov dword [rcx], 0x40
call qword [sym.imp.kernel32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x140027e9a
call fcn.14002ce76
mov rax, qword [rbp + 0x138]
mov qword [rsi + 0x70], rax
mov rax, qword [rbp + 0x140]
mov qword [rsi + 0x78], rax
test bl, 1
je 0x140027f3f
xorps xmm0, xmm0
lea rcx, [rbp + 0x130]
movaps xmmword [rcx + 0x50], xmm0
movaps xmmword [rcx + 0x40], xmm0
movaps xmmword [rcx + 0x30], xmm0
movaps xmmword [rcx + 0x20], xmm0
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
and qword [rcx + 0x60], 0
push 0x68
pop rdx
call qword [sym.imp.kernel32.dll_K32GetPerformanceInfo]
test eax, eax
je 0x140027f3f
mov r8, qword [rbp + 0x150]
mov rdx, qword [rbp + 0x140]
xor r9d, r9d
sub rdx, r8
cmovb rdx, r9
mov rcx, qword [rbp + 0x180]
mov rax, rcx
mul rdx
push 0xffffffffffffffff
pop r10
cmovo rax, r10
mov rdx, qword [rbp + 0x138]
sub rdx, r8
cmovb rdx, r9
mov qword [rsi + 0x80], rax
mov rax, rcx
mul rdx
cmovo rax, r10
mov qword [rsi + 0x88], rax
cmp byte [r15 + 0xb], 2
movabs r14, 0x8000000000000000
mov qword [rbp + 0x378], rsi
je 0x140028350
mov r12b, byte [r15 + 0xc]
lea r13, [rsi + 0x90]
cmp qword [rsi + 0x90], 0
je 0x14002806b
mov rcx, qword [rsi + 0xc0]
call qword [sym.imp.pdh.dll_PdhCollectQueryData]
cmp qword [rsi + 0x18], r14
je 0x140027fac
lea rdx, [rsi + 0x18]
mov rcx, r13
call fcn.140026efd
test eax, eax
je 0x140028bda
movss xmm1, dword [0x140031580]
subss xmm1, xmm0
movss dword [rsi + 0x30], xmm1
mov edx, r12d
and dl, 1
mov rcx, rsi
call fcn.140027e07
mov rdi, rax
mov rbx, rdx
add rdi, 0x48
movss xmm6, dword [0x140031580]
lea rax, [rdi - 0x48]
cmp rax, rbx
je 0x140027fff
cmp qword [rdi], r14
je 0x140027ff9
mov rcx, r13
mov rdx, rdi
call fcn.140026efd
test eax, eax
je 0x140028b87
movaps xmm1, xmm6
subss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
add rdi, 0x70
jmp 0x140027fcc
test r12b, 1
je 0x140028350
cmp byte [rsi + 0x38], 0
jne 0x140028350
mov rdi, qword [rsi + 0x10]
lea rbx, [rbp + 0x130]
mov rcx, rbx
mov rdx, rdi
call fcn.140027ae6
mov rax, qword [rsi + 8]
mov rcx, qword [rbx]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
shl r8, 3
imul r9, rdi, 0x70
xor r10d, r10d
test r9, r9
je 0x140028347
cmp r8, r10
je 0x140028347
mov r11, qword [rdx + r10]
mov qword [rax + 0x68], r11
add rax, 0x70
add r10, 8
add r9, 0xffffffffffffff90
jmp 0x140028043
lea r8, [rbp + 0x130]
and qword [r8], 0
xor r14d, r14d
xor ecx, ecx
xor edx, edx
call qword [sym.imp.pdh.dll_PdhOpenQueryA]
mov edi, eax
test eax, eax
jne 0x1400280e3
mov rbx, qword [rbp + 0x130]
mov eax, dword [0x1404ab2ac]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x70], 0
je 0x140028b7d
mov eax, dword [0x1404ab2ac]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r8, qword [rax + 0x78]
mov rdx, qword [rax + 0x80]
lea rcx, [r8 + 1]
mov qword [rax + 0x78], rcx
lea r14, [0x1404a1c10]
cmp qword [r13], 0
mov qword [rbp + 0x370], r13
je 0x140028147
mov qword [rbp + 0x2b8], r14
mov qword [rbp + 0x328], r8
mov qword [rbp + 0x320], rdx
mov qword [rbp + 0x318], rbx
mov rcx, r13
call fcn.140026e60
mov r13, qword [rbp + 0x370]
mov rcx, r13
call fcn.140025f42
mov rsi, qword [rbp + 0x378]
mov rbx, qword [rbp + 0x318]
mov rdx, qword [rbp + 0x320]
mov r8, qword [rbp + 0x328]
mov r14, qword [rbp + 0x2b8]
and qword [rsi + 0xa8], 0
and qword [rsi + 0xc8], 0
mov qword [rsi + 0x90], r14
xorps xmm0, xmm0
movups xmmword [rsi + 0x98], xmm0
mov qword [rsi + 0xb0], r8
mov qword [rsi + 0xb8], rdx
mov qword [rsi + 0xc0], rbx
test edi, edi
jne 0x140028350
mov qword [rbp + 0x320], r15
lea rdx, str.Processor__Total___Idle_Timetot_0Processor____Idle_Time
lea rcx, [rbp + 0x330]
push 0x1e
pop r8
call fcn.14002675e
mov byte [rbp + 0x385], 1
lea rdx, [0x1404a1a9e]
lea rcx, [rbp + 0x130]
push 5
pop r8
call fcn.14002675e
lea r8, [rsi + 0x18]
mov byte [rbp + 0x385], 0
lea rcx, [rbp + 0x330]
lea r9, [rbp + 0x130]
mov rdx, r13
call fcn.1400267c7
mov byte [rbp + 0x328], r12b
mov edx, r12d
and dl, 1
mov rcx, rsi
call fcn.140027e07
mov rdi, rax
mov qword [rbp + 0x318], rdx
xor eax, eax
lea r13, [rbp + 0x300]
lea rsi, [rbp + 0x330]
push 1
pop r12
cmp rdi, qword [rbp + 0x318]
je 0x140028314
mov r14, rax
mov qword [rbp + 0x358], rax
lea rax, [0x1404a1ac0]
mov qword [rbp + 0x130], rax
push 2
pop rax
mov qword [rbp + 0x138], rax
and qword [rbp + 0x150], 0
lea rbx, [rbp + 0x358]
mov qword [rbp + 0x2e8], rbx
lea rax, [fcn.140007d60]
mov qword [rbp + 0x2f0], rax
lea r15, [rbp + 0x2e8]
mov qword [rbp + 0x140], r15
mov qword [rbp + 0x148], r12
mov rcx, r13
lea rdx, [rbp + 0x130]
call fcn.140026e1b
mov qword [rbp + 0x2e8], rbx
lea rax, [0x1404a1ae8]
mov qword [rbp + 0x130], rax
push 2
pop rax
mov qword [rbp + 0x138], rax
and qword [rbp + 0x150], 0
lea rax, [fcn.140007d60]
mov qword [rbp + 0x2f0], rax
mov qword [rbp + 0x140], r15
mov qword [rbp + 0x148], r12
mov byte [rbp + 0x384], 1
mov rcx, rsi
lea rdx, [rbp + 0x130]
call fcn.140026e1b
add rdi, 0x48
mov byte [rbp + 0x384], 0
mov rcx, r13
mov rdx, qword [rbp + 0x370]
mov r8, rdi
mov r9, rsi
call fcn.1400267c7
add rdi, 0x28
mov rax, r14
inc rax
jmp 0x140028215
mov r13, qword [rbp + 0x370]
cmp qword [r13], 0
mov rsi, qword [rbp + 0x378]
movabs r14, 0x8000000000000000
mov r15, qword [rbp + 0x320]
mov r12b, byte [rbp + 0x328]
jne 0x140027f74
jmp 0x140028350
call fcn.1400297d2
mov byte [rsi + 0x38], 1
mov al, byte [r15]
cmp al, 2
je 0x140028b62
mov rcx, qword [r15 + 1]
mov byte [rbp + 0x2c7], al
mov qword [rbp + 0x2c8], rcx
lea rdi, [rbp + 0x130]
mov esi, 0x80000
mov edx, 0x80000
mov rcx, rdi
xor r8d, r8d
call fcn.14002cdf2
cmp qword [rdi], 0
mov rcx, qword [rdi + 8]
jne 0x140028ba7
lea rbx, [rbp + 0x130]
mov rax, qword [rbx + 0x10]
lea r14, [rbp + 0x2d0]
mov qword [r14], rcx
mov qword [r14 + 8], rax
and qword [r14 + 0x10], 0
xor edx, edx
movabs r12, 0x8000000000000001
push 5
pop r15
mov r13, qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
and dword [rbp + 0x130], 0
sub rcx, rdx
cmp rcx, rsi
jae 0x1400283ee
mov rcx, r14
mov r8, rsi
call fcn.14000d021
cmp rax, r12
jne 0x140028b9d
mov rdi, qword [rbp + 0x2d8]
mov ecx, r15d
mov rdx, rdi
mov r8d, esi
mov r9, rbx
call r13
test eax, eax
jns 0x140028456
or eax, 0x10000000
mov ecx, eax
call fcn.14002ce93
cmp edx, 0xd0000004
jne 0x14002850a
mov edi, dword [rbp + 0x130]
test rax, rax
je 0x140028434
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
add rsi, rsi
lea eax, [rdi + 0x2800]
test edi, edi
cmovne rsi, rax
mov rcx, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x2e0]
jmp 0x1400283cb
mov qword [rbp + 0x2e0], rsi
and qword [rbp + 0x298], 0
push 8
pop rcx
mov edx, 0xfa0
call fcn.1400293b5
test rax, rax
je 0x140028bb3
lea rsi, [rbp + 0x2a0]
mov qword [rsi], 0x1f4
mov qword [rsi + 8], rax
and qword [rsi + 0x10], 0
xor ebx, ebx
xor r14d, r14d
mov r15d, dword [rdi + r14]
cmp rbx, qword [rbp + 0x2a0]
jne 0x1400284ba
mov byte [rbp + 0x387], 1
mov rcx, rsi
call fcn.140029558
mov rax, qword [rbp + 0x2a8]
lea rcx, [rdi + r14]
mov qword [rax + rbx*8], rcx
inc rbx
mov qword [rbp + 0x2b0], rbx
add r14, r15
test r15d, r15d
jne 0x140028497
mov rcx, qword [rbp + 0x378]
lea rbx, [rcx + 0x40]
mov qword [rbp + 0x290], rbx
cmp byte [rbp + 0x2c7], 0
je 0x14002852e
mov byte [rbp + 0x387], 1
xor edx, edx
call fcn.140027030
mov rax, qword [rbp + 0x378]
mov rax, qword [rax + 0x10]
jmp 0x140028530
test rax, rax
je 0x14002851f
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
mov rdi, qword [rbp + 0x2d8]
mov rcx, qword [rbp + 0x2d0]
mov rdx, rdi
jmp 0x140028b5d
xor eax, eax
lea r14, [rbp + 0x128]
mov qword [r14], rax
lea rdi, [rbp + 0x130]
and qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetSystemTimePreciseAsFileTime]
mov rcx, qword [rdi]
movabs r8, 0x19db1ded53e8000
mov rdx, rcx
sub rdx, r8
neg rdx
movabs rax, 0xfe624e212ac18000
add rax, rcx
cmp rcx, r8
cmovl rax, rdx
xor r9d, r9d
mov r10d, 0x989680
xor edx, edx
div r10
cmp rcx, r8
cmovl rax, r9
lea rcx, [rbp + 0x120]
mov qword [rcx], rax
mov rsi, qword [rbp + 0x2b0]
mov qword [rdi + 0x10], rsi
and qword [rbp + 0x358], 0
mov qword [rbp + 0x360], 8
and qword [rbp + 0x368], 0
movups xmm0, xmmword [rbp + 0x2a0]
movaps xmmword [rdi], xmm0
lea rax, [rbp + 0x298]
mov qword [rdi + 0x18], rax
lea rax, [rbp + 0x290]
mov qword [rdi + 0x20], rax
lea rax, [rbp + 0x2c7]
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], r14
mov qword [rdi + 0x38], rcx
movups xmm0, xmmword [rbp + 0x2a0]
lea rax, [rbp + 0x300]
mov qword [rbp + 0x330], rax
and qword [rbp + 0x338], 0
movaps xmmword [rax], xmm0
and qword [rax + 0x10], 0
mov qword [rbp + 0x340], rsi
mov qword [rbp + 0x348], rsi
cmp qword [rax], rsi
jb 0x140028bc2
mov rdi, qword [rbp + 0x308]
call fcn.140010b96
lea rcx, [rbp + 0x148]
xor edx, edx
cmp rsi, 0xffffffffffffffff
sete dl
cmp rdx, rax
cmova rax, rdx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], 1
lea rdi, [rbp + 0x2e8]
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rax
call fcn.14002b620
lea rcx, [rbp + 0x330]
call fcn.14002b469
mov rcx, qword [rbp + 0x300]
mov rdx, qword [rbp + 0x308]
call fcn.1400297d2
xor edx, edx
mov rax, qword [rbp + 0x2f8]
sub rax, 1
jb 0x1400286bf
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400286bf
add rdx, qword [rdi + 0x10]
add rdi, 0x18
jmp 0x1400286a7
mov byte [rbp + 0x386], 1
lea rcx, [rbp + 0x358]
call fcn.14002ac84
mov rax, qword [rbp + 0x2f8]
lea rsi, [rbp + 0x330]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rbp + 0x2e8]
movaps xmmword [rsi], xmm0
push 8
pop rdi
lea r15, [rbp + 0x130]
mov rcx, rsi
call fcn.14002cbfa
test rax, rax
je 0x1400287bd
mov r12, qword [rax]
movups xmm0, xmmword [rax + 8]
movaps xmmword [rbp + 0x130], xmm0
mov rcx, rax
mov rdx, rdi
call fcn.140007090
movaps xmm0, xmmword [rbp + 0x130]
movaps xmmword [rbp + 0x300], xmm0
movabs rax, 0x8000000000000000
cmp r12, rax
je 0x1400287bd
mov r14, rbx
mov qword [rbp + 0x130], r12
movaps xmm0, xmmword [rbp + 0x300]
lea rax, [rbp + 0x138]
movups xmmword [rax], xmm0
mov r13, qword [rbp + 0x138]
mov r12, qword [rbp + 0x140]
lea rcx, [rbp + 0x358]
mov rdx, r12
call fcn.14002ac84
mov rbx, qword [rbp + 0x368]
imul rcx, rbx, 0x158
add rcx, qword [rbp + 0x360]
imul r8, r12, 0x158
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
add rbx, r12
mov qword [rbp + 0x368], rbx
and qword [rbp + 0x140], 0
mov rcx, r15
call fcn.14002980c
mov rbx, r14
jmp 0x1400286f8
mov byte [rbp + 0x386], 0
lea rcx, [rbp + 0x330]
call fcn.14002cc7b
mov rcx, qword [rbp + 0x358]
mov rsi, qword [rbp + 0x360]
imul rax, qword [rbp + 0x368], 0x158
add rax, rsi
mov qword [rbp + 0x330], rsi
mov qword [rbp + 0x338], rsi
mov qword [rbp + 0x340], rcx
mov qword [rbp + 0x348], rax
mov rcx, qword [rbp + 0x378]
add rcx, 0x60
mov qword [rbp + 0x370], rcx
lea r15, [rbp + 0x300]
lea r12, [rbp - 0x38]
cmp rsi, rax
je 0x140028a3a
lea rax, [rsi + 0x158]
mov qword [rbp + 0x338], rax
mov r14, qword [rsi]
cmp r14, 2
je 0x140028a3a
lea rdx, [rsi + 8]
mov r13, qword [rsi + 0xe0]
add rsi, 0xe8
mov r8d, 0xd8
lea rcx, [rbp - 0x30]
call sub.VCRUNTIME140.dll_memcpy
push 0xe
pop rcx
lea rdi, [rbp + 0xb0]
rep movsq qword [rdi], qword [rsi]
mov qword [rbp - 0x38], r14
mov qword [rbp + 0xa8], r13
mov qword [rbp + 0x358], r13
mov rdi, qword [rbp + 0x378]
mov rcx, qword [rdi + 0x60]
mov rdx, qword [rdi + 0x68]
mov r8, r13
call fcn.140029fe5
mov rsi, rax
lea rax, [rbp + 0x358]
mov qword [rbp + 0x2e8], rax
cmp qword [rdi + 0x50], 0
jne 0x1400288c7
mov rcx, rbx
mov rdx, qword [rbp + 0x370]
call fcn.1400301fa
lea rax, [rbp + 0x2e8]
mov qword [rbp + 0x300], rax
mov qword [rbp + 0x308], rbx
mov rcx, qword [rdi + 0x40]
mov rdx, qword [rdi + 0x48]
lea rax, [0x1400292ae]
mov qword [rsp + 0x20], rax
mov r8, rsi
mov r9, r15
call fcn.140029181
mov rcx, qword [rbx]
test rax, rax
je 0x14002895b
mov rax, qword [rbp + 0x358]
movzx r8d, byte [rcx + rdx]
and r8d, 1
sub qword [rdi + 0x50], r8
shr rsi, 0x39
lea r8, [rdx - 0x10]
and r8, qword [rdi + 0x48]
mov byte [rcx + rdx], sil
mov byte [rcx + r8 + 0x10], sil
inc qword [rdi + 0x58]
neg rdx
imul rdx, rdx, 0x160
add rcx, rdx
add rcx, 0xfffffffffffffea8
mov qword [rcx - 8], rax
mov r8d, 0x158
mov rdx, r12
call sub.VCRUNTIME140.dll_memcpy
jmp 0x140028a27
neg rdx
imul rax, rdx, 0x160
lea rsi, [rcx + rax]
add rsi, 0xfffffffffffffea8
mov r8d, 0x158
lea rcx, [rbp + 0x130]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0x158
mov rcx, rsi
mov rdx, r12
call sub.VCRUNTIME140.dll_memcpy
cmp qword [rbp + 0x130], 2
je 0x140028a27
mov rcx, qword [rbp + 0x140]
mov rdx, qword [rbp + 0x148]
call fcn.14000c600
lea rcx, [rbp + 0x160]
call fcn.140025290
mov rcx, qword [rbp + 0x190]
mov rdx, qword [rbp + 0x198]
call fcn.140027dc0
mov rcx, qword [rbp + 0x1b0]
mov rdx, qword [rbp + 0x1b8]
call fcn.140027dc0
lea rcx, [rbp + 0x178]
call fcn.140025290
mov rcx, qword [rbp + 0x1c8]
mov rdx, qword [rbp + 0x1d0]
call fcn.140027dc0
mov rcx, qword [rbp + 0x1e8]
mov rdx, qword [rbp + 0x1f0]
call fcn.140027dc0
lea rcx, [rbp + 0x228]
call fcn.140026288
mov rsi, qword [rbp + 0x338]
mov rax, qword [rbp + 0x348]
jmp 0x140028825
mov byte [rbp + 0x387], 0
lea rcx, [rbp + 0x330]
call fcn.14002b511
mov r8, qword [rbp + 0x378]
mov rax, qword [r8 + 0x40]
mov rcx, qword [r8 + 0x48]
add rcx, rax
inc rcx
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
not edx
lea rsi, [rbp + 0x130]
mov word [rsi + 0x18], dx
mov qword [rsi], rax
add rax, 0x10
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rcx
mov rax, qword [r8 + 0x58]
mov qword [rsi + 0x20], rax
mov edi, 0x160
pcmpeqd xmm6, xmm6
mov rcx, rsi
call fcn.1400260f7
test rax, rax
je 0x140028b4f
mov rcx, rax
cmp byte [rax - 4], 0
mov byte [rax - 4], 0
jne 0x140028a97
mov r11, qword [rbp + 0x378]
mov r8, qword [r11 + 0x40]
mov rax, r8
sub rax, rcx
cqo
idiv rdi
lea rdx, [rax - 0x10]
and rdx, qword [r11 + 0x48]
movdqu xmm0, xmmword [r8 + rdx]
pcmpeqb xmm0, xmm6
psllw xmm0, 7
pmovmskb r9d, xmm0
test r9d, r9d
je 0x140028af7
bsr r9w, r9w
xor r9d, 0xf
jmp 0x140028afc
mov r9w, 0x10
movdqu xmm0, xmmword [r8 + rax]
pcmpeqb xmm0, xmm6
pmovmskb r10d, xmm0
or r10d, 0x10000
bsf r10d, r10d
add r9d, r10d
mov r10b, 0x80
cmp r9w, 0xf
ja 0x140028b2a
inc qword [r11 + 0x50]
mov r10b, 0xff
mov byte [r8 + rax], r10b
mov byte [r8 + rdx + 0x10], r10b
dec qword [r11 + 0x58]
add rcx, 0xfffffffffffffea0
mov byte [rbp + 0x387], 0
call fcn.140026158
jmp 0x140028a97
mov rcx, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x2d8]
call fcn.14000c600
movaps xmm6, xmmword [rbp + 0x390]
add rsp, 0x428
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14002ea17
jmp 0x1400280b0
lea rcx, str.key_used_disappeared
lea r8, str.eJ_
push 0x14
pop rdx
call fcn.14002e4c0
mov rcx, rax
call fcn.14002df00
jmp 0x140028bd8
mov rdx, qword [rbp + 0x140]
call fcn.14002df00
push 8
pop rcx
mov edx, 0xfa0
call fcn.14002df00
jmp 0x140028bd8
lea rcx, str.assertion_failed:_vec.capacity_____start___lenC:UsersNoctor.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rayon_1.10.0_src_vec.rs
lea r8, [0x1404a2378]
push 0x2f
pop rdx
call fcn.14002e170
ud2
lea rcx, str.global_key_idle_disappearedC:UsersNoctor.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.31.4_srcwindows_system.rs
lea r8, [0x1404a1b90]
push 0x1b
jmp 0x140028b97