Function at 0x140028e86
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 0x140028f9f
mov bl, byte [r15 + 0xa]
test al, al
je 0x140028f10
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 0x140028efa
call fcn.14002ded6
mov rax, qword [rbp + 0x138]
mov qword [rsi + 0x70], rax
mov rax, qword [rbp + 0x140]
mov qword [rsi + 0x78], rax
test bl, 1
je 0x140028f9f
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 0x140028f9f
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 0x1400293b0
mov r12b, byte [r15 + 0xc]
lea r13, [rsi + 0x90]
cmp qword [rsi + 0x90], 0
je 0x1400290cb
mov rcx, qword [rsi + 0xc0]
call qword [sym.imp.pdh.dll_PdhCollectQueryData]
cmp qword [rsi + 0x18], r14
je 0x14002900c
lea rdx, [rsi + 0x18]
mov rcx, r13
call fcn.140027f5d
test eax, eax
je 0x140029c3a
movss xmm1, dword [0x1400325b0]
subss xmm1, xmm0
movss dword [rsi + 0x30], xmm1
mov edx, r12d
and dl, 1
mov rcx, rsi
call fcn.140028e67
mov rdi, rax
mov rbx, rdx
add rdi, 0x48
movss xmm6, dword [0x1400325b0]
lea rax, [rdi - 0x48]
cmp rax, rbx
je 0x14002905f
cmp qword [rdi], r14
je 0x140029059
mov rcx, r13
mov rdx, rdi
call fcn.140027f5d
test eax, eax
je 0x140029be7
movaps xmm1, xmm6
subss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
add rdi, 0x70
jmp 0x14002902c
test r12b, 1
je 0x1400293b0
cmp byte [rsi + 0x38], 0
jne 0x1400293b0
mov rdi, qword [rsi + 0x10]
lea rbx, [rbp + 0x130]
mov rcx, rbx
mov rdx, rdi
call fcn.140028b46
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 0x1400293a7
cmp r8, r10
je 0x1400293a7
mov r11, qword [rdx + r10]
mov qword [rax + 0x68], r11
add rax, 0x70
add r10, 8
add r9, 0xffffffffffffff90
jmp 0x1400290a3
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 0x140029143
mov rbx, qword [rbp + 0x130]
mov eax, dword [0x1400452ac]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x70], 0
je 0x140029bdd
mov eax, dword [0x1400452ac]
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, [0x14003aee0]
cmp qword [r13], 0
mov qword [rbp + 0x370], r13
je 0x1400291a7
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.140027ec0
mov r13, qword [rbp + 0x370]
mov rcx, r13
call fcn.140026fa2
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 0x1400293b0
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.1400277be
mov byte [rbp + 0x385], 1
lea rdx, [0x14003ad6e]
lea rcx, [rbp + 0x130]
push 5
pop r8
call fcn.1400277be
lea r8, [rsi + 0x18]
mov byte [rbp + 0x385], 0
lea rcx, [rbp + 0x330]
lea r9, [rbp + 0x130]
mov rdx, r13
call fcn.140027827
mov byte [rbp + 0x328], r12b
mov edx, r12d
and dl, 1
mov rcx, rsi
call fcn.140028e67
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 0x140029374
mov r14, rax
mov qword [rbp + 0x358], rax
lea rax, [0x14003ad90]
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.140008970]
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.140027e7b
mov qword [rbp + 0x2e8], rbx
lea rax, [0x14003adb8]
mov qword [rbp + 0x130], rax
push 2
pop rax
mov qword [rbp + 0x138], rax
and qword [rbp + 0x150], 0
lea rax, [fcn.140008970]
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.140027e7b
add rdi, 0x48
mov byte [rbp + 0x384], 0
mov rcx, r13
mov rdx, qword [rbp + 0x370]
mov r8, rdi
mov r9, rsi
call fcn.140027827
add rdi, 0x28
mov rax, r14
inc rax
jmp 0x140029275
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 0x140028fd4
jmp 0x1400293b0
call fcn.14002a832
mov byte [rsi + 0x38], 1
mov al, byte [r15]
cmp al, 2
je 0x140029bc2
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.14002de52
cmp qword [rdi], 0
mov rcx, qword [rdi + 8]
jne 0x140029c07
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 0x14002944e
mov rcx, r14
mov r8, rsi
call fcn.14000dc31
cmp rax, r12
jne 0x140029bfd
mov rdi, qword [rbp + 0x2d8]
mov ecx, r15d
mov rdx, rdi
mov r8d, esi
mov r9, rbx
call r13
test eax, eax
jns 0x1400294b6
or eax, 0x10000000
mov ecx, eax
call fcn.14002def3
cmp edx, 0xd0000004
jne 0x14002956a
mov edi, dword [rbp + 0x130]
test rax, rax
je 0x140029494
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 0x14002942b
mov qword [rbp + 0x2e0], rsi
and qword [rbp + 0x298], 0
push 8
pop rcx
mov edx, 0xfa0
call fcn.14002a415
test rax, rax
je 0x140029c13
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 0x14002951a
mov byte [rbp + 0x387], 1
mov rcx, rsi
call fcn.14002a5b8
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 0x1400294f7
mov rcx, qword [rbp + 0x378]
lea rbx, [rcx + 0x40]
mov qword [rbp + 0x290], rbx
cmp byte [rbp + 0x2c7], 0
je 0x14002958e
mov byte [rbp + 0x387], 1
xor edx, edx
call fcn.140028090
mov rax, qword [rbp + 0x378]
mov rax, qword [rax + 0x10]
jmp 0x140029590
test rax, rax
je 0x14002957f
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 0x140029bbd
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 0x140029c22
mov rdi, qword [rbp + 0x308]
call fcn.1400117a6
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.14002c680
lea rcx, [rbp + 0x330]
call fcn.14002c4c9
mov rcx, qword [rbp + 0x300]
mov rdx, qword [rbp + 0x308]
call fcn.14002a832
xor edx, edx
mov rax, qword [rbp + 0x2f8]
sub rax, 1
jb 0x14002971f
mov rdi, qword [rdi]
test rdi, rdi
je 0x14002971f
add rdx, qword [rdi + 0x10]
add rdi, 0x18
jmp 0x140029707
mov byte [rbp + 0x386], 1
lea rcx, [rbp + 0x358]
call fcn.14002bce4
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.14002dc5a
test rax, rax
je 0x14002981d
mov r12, qword [rax]
movups xmm0, xmmword [rax + 8]
movaps xmmword [rbp + 0x130], xmm0
mov rcx, rax
mov rdx, rdi
call fcn.140007ca0
movaps xmm0, xmmword [rbp + 0x130]
movaps xmmword [rbp + 0x300], xmm0
movabs rax, 0x8000000000000000
cmp r12, rax
je 0x14002981d
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.14002bce4
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.14002a86c
mov rbx, r14
jmp 0x140029758
mov byte [rbp + 0x386], 0
lea rcx, [rbp + 0x330]
call fcn.14002dcdb
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 0x140029a9a
lea rax, [rsi + 0x158]
mov qword [rbp + 0x338], rax
mov r14, qword [rsi]
cmp r14, 2
je 0x140029a9a
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.14002b045
mov rsi, rax
lea rax, [rbp + 0x358]
mov qword [rbp + 0x2e8], rax
cmp qword [rdi + 0x50], 0
jne 0x140029927
mov rcx, rbx
mov rdx, qword [rbp + 0x370]
call fcn.14003125a
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, [0x14002a30e]
mov qword [rsp + 0x20], rax
mov r8, rsi
mov r9, r15
call fcn.14002a1e1
mov rcx, qword [rbx]
test rax, rax
je 0x1400299bb
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 0x140029a87
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 0x140029a87
mov rcx, qword [rbp + 0x140]
mov rdx, qword [rbp + 0x148]
call fcn.14000d210
lea rcx, [rbp + 0x160]
call fcn.1400262f0
mov rcx, qword [rbp + 0x190]
mov rdx, qword [rbp + 0x198]
call fcn.140028e20
mov rcx, qword [rbp + 0x1b0]
mov rdx, qword [rbp + 0x1b8]
call fcn.140028e20
lea rcx, [rbp + 0x178]
call fcn.1400262f0
mov rcx, qword [rbp + 0x1c8]
mov rdx, qword [rbp + 0x1d0]
call fcn.140028e20
mov rcx, qword [rbp + 0x1e8]
mov rdx, qword [rbp + 0x1f0]
call fcn.140028e20
lea rcx, [rbp + 0x228]
call fcn.1400272e8
mov rsi, qword [rbp + 0x338]
mov rax, qword [rbp + 0x348]
jmp 0x140029885
mov byte [rbp + 0x387], 0
lea rcx, [rbp + 0x330]
call fcn.14002c571
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.140027157
test rax, rax
je 0x140029baf
mov rcx, rax
cmp byte [rax - 4], 0
mov byte [rax - 4], 0
jne 0x140029af7
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 0x140029b57
bsr r9w, r9w
xor r9d, 0xf
jmp 0x140029b5c
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 0x140029b8a
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.1400271b8
jmp 0x140029af7
mov rcx, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x2d8]
call fcn.14000d210
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.14002fa77
jmp 0x140029110
lea rcx, str.key_used_disappeared
lea r8, [0x14003ae90]
push 0x14
pop rdx
call fcn.14002f520
mov rcx, rax
call fcn.14002ef60
jmp 0x140029c38
mov rdx, qword [rbp + 0x140]
call fcn.14002ef60
push 8
pop rcx
mov edx, 0xfa0
call fcn.14002ef60
jmp 0x140029c38
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, [0x14003b648]
push 0x2f
pop rdx
call fcn.14002f1d0
ud2
lea rcx, str.global_key_idle_disappearedC:UsersNoctor.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.31.4_srcwindows_system.rs
lea r8, [0x14003ae60]
push 0x1b
jmp 0x140029bf7