Function at 0x140016ff0
Capabilities:
Get memory capacity
Get system firmware table

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x118]
sub rsp, 0x200
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x14012a040]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov rsi, rcx
xorps xmm6, xmm6
xor eax, eax
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm6
movaps xmmword [rbp - 0x40], xmm6
mov qword [rbp - 0x30], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
mov dword [rbp + 0xa0], 0x40
lea rcx, [rbp + 0xa0]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rcx, qword [rbp + 0xb0]
xorps xmm3, xmm3
test rcx, rcx
js 0x14001708f
cvtsi2sd xmm3, rcx
jmp 0x1400170a4
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm3, rax
addsd xmm3, xmm3
mov rcx, qword [rbp + 0xa8]
xorps xmm1, xmm1
test rcx, rcx
js 0x1400170ba
cvtsi2sd xmm1, rcx
jmp 0x1400170cf
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
movaps xmm2, xmm1
subsd xmm2, xmm3
xorps xmm0, xmm0
comisd xmm3, xmm0
jbe 0x1400170f0
movaps xmm3, xmm2
divsd xmm3, xmm1
mulsd xmm3, qword [0x1401158a0]
jmp 0x1400170f8
movsd xmm3, qword [0x1401158a0]
xor r15d, r15d
mov dword [rsp + 0x64], r15d
movsd xmm4, qword [0x140115850]
mulsd xmm2, xmm4
xor ecx, ecx
movabs rdx, 0x8000000000000000
movsd xmm0, qword [0x140115958]
comisd xmm2, xmm0
jb 0x140017133
subsd xmm2, xmm0
comisd xmm2, xmm0
jae 0x140017133
mov rcx, rdx
cvttsd2si rax, xmm2
add rax, rcx
mov qword [rsp + 0x50], rax
mulsd xmm1, xmm4
xor ecx, ecx
comisd xmm1, xmm0
jb 0x140017159
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x140017159
mov rcx, rdx
cvttsd2si rax, xmm1
add rax, rcx
mov qword [rsp + 0x58], rax
cvttsd2si eax, xmm3
mov dword [rsp + 0x60], eax
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0x40], r15
mov qword [rbp + 0x48], r15
mov qword [rbp + 0x50], r15
mov qword [rbp + 0x58], r15
mov qword [rbp + 0x60], r15
mov qword [rbp + 0x68], r15
mov qword [rbp + 0x70], r15
mov qword [rbp + 0x78], r15
movdqa xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x90], r15
mov qword [rbp + 0x98], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8d, edi
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x140017221
mov r9d, edi
mov r8, rax
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
cmp eax, edi
je 0x1400172a6
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
movups xmmword [rsi], xmm6
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi + 0x20], xmm6
movups xmmword [rsi + 0x30], xmm6
movups xmmword [rsi + 0x40], xmm6
movsd xmm0, qword [rbp - 0x30]
movsd qword [rsi + 0x50], xmm0
lea rcx, [rbp + 0x80]
call fcn.14001d880
mov rcx, qword [rbp + 0x70]
call fcn.140100388
mov rcx, qword [rbp + 0x60]
call fcn.140100388
mov rcx, qword [rbp + 0x50]
call fcn.140100388
mov rcx, qword [rbp + 0x40]
call fcn.140100388
mov rax, rsi
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.140100360
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
movzx ecx, byte [rbx + 1]
shl ecx, 0x10
movzx eax, byte [rbx + 2]
shl eax, 8
add ecx, eax
movzx eax, byte [rbx + 3]
add ecx, eax
mov dword [rbp + 0x9c], ecx
mov eax, dword [rbx + 4]
mov dword [rbp + 0x98], eax
lea rax, vtable.std::_Func_impl_no_alloc_class__public:_bool___cdecl_xmrig::DmiReader::read_void____ptr64::_2::_lambda_1___void___.0
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rbx
lea rax, [rbp - 0x20]
mov qword [rbp + 0x18], rax
lea rdx, [rbx + 8]
lea r8, [rbp - 0x20]
lea rcx, [rbp + 0x40]
call fcn.140029d80
movzx ebx, al
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x140017317
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x20]
lea rax, [rbp - 0x20]
cmp rcx, rax
setne dl
call r8
mov qword [rbp + 0x18], r15
test bl, bl
je 0x140017221
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
mov qword [rbp + 0x30], r15
mov rdi, qword [rbp + 0x88]
mov rbx, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x28]
cmp rbx, rdi
je 0x140017416
add rbx, 0x10
lea r14, str.Other
movabs r12, 0x431bde82d7b634db
nop dword [rax + rax]
cmp qword [rbx + 0x28], 0
je 0x140017405
mov rax, qword [rbx]
test rax, rax
jne 0x140017377
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x20], rax
mov rax, qword [rbx + 0x48]
shr rax, 0x1e
mov qword [rsp + 0x28], rax
movzx edx, byte [rbx + 0x5a]
lea eax, [rdx - 1]
cmp al, 0x22
ja 0x14001739b
mov rdx, qword [r14 + rdx*8 - 8]
jmp 0x1400173a2
mov rdx, qword [str.Unknown]
mov qword [rsp + 0x30], rdx
mov rax, r12
mul qword [rbx + 0x50]
shr rdx, 0x12
mov qword [rsp + 0x38], rdx
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x40], rax
cmp rcx, qword [rbp + 0x30]
je 0x1400173f0
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rcx + 0x10], xmm1
movsd xmm0, qword [rsp + 0x40]
movsd qword [rcx + 0x20], xmm0
mov rcx, qword [rbp + 0x28]
add rcx, 0x28
mov qword [rbp + 0x28], rcx
jmp 0x140017405
lea r8, [rsp + 0x20]
mov rdx, rcx
lea rcx, [rbp + 0x20]
call fcn.140020820
mov rcx, qword [rbp + 0x28]
add rbx, 0x70
lea rax, [rbx - 0x10]
cmp rax, rdi
jne 0x140017360
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x68], rax
sub rcx, rax
movabs r12, 0x6666666666666667
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rsp + 0x70], rdx
mov rcx, qword [0x14012e960]
test rcx, rcx
jne 0x1400174a4
mov ecx, 0x98
call fcn.1401003bc
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
mov qword [rax + 0x90], rcx
mov rcx, rax
call fcn.1400106b0
mov rcx, rax
mov qword [0x14012e960], rax
mov rax, qword [rcx]
call qword [rax + 0x58]
movzx edx, al
mov r8, qword [rbp + 0x40]
test al, al
cmovne r8, qword [rbp + 0x60]
mov rdi, r15
mov r14, r15
mov rcx, qword [rbp + 0x68]
cmove rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x1400174ea
mov rax, qword [rbp + 0x78]
test dl, dl
cmove rax, qword [rbp + 0x58]
test rax, rax
je 0x1400174ea
mov rdi, qword [rbp + 0x70]
test dl, dl
cmove rdi, qword [rbp + 0x50]
mov r14, r8
mov dword [rsp + 0x21], r15d
mov word [rsp + 0x25], r15w
mov byte [rsp + 0x27], 0
mov rbx, qword [0x14012e960]
test rbx, rbx
jne 0x140017559
mov ecx, 0x98
call fcn.1401003bc
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
mov qword [rax + 0x90], rcx
mov rcx, rax
call fcn.1400106b0
mov rbx, rax
mov qword [0x14012e960], rax
mov byte [rsp + 0x20], 1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x68]
mov qword [rsp + 0x28], rax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0xa8]
mov qword [rsp + 0x30], rax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
mov qword [rsp + 0x38], rax
movups xmm1, xmmword [rsp + 0x50]
movups xmm2, xmmword [rsp + 0x60]
movsd xmm3, qword [rsp + 0x70]
mov qword [rbp - 0x58], rdi
mov qword [rbp - 0x50], r14
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbp - 0x48], xmm0
movups xmm4, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x38], xmm4
movups xmmword [rsi], xmm1
movups xmmword [rsi + 0x10], xmm2
movaps xmm0, xmmword [rbp - 0x60]
movsd xmm0, xmm3
movups xmmword [rsi + 0x20], xmm0
movaps xmm0, xmmword [rbp - 0x50]
movups xmmword [rsi + 0x30], xmm0
movaps xmm1, xmmword [rbp - 0x40]
movups xmmword [rsi + 0x40], xmm1
unpckhpd xmm4, xmm4
movsd qword [rsi + 0x50], xmm4
mov r8, qword [rbp + 0x20]
test r8, r8
je 0x14001723e
mov rcx, qword [rbp + 0x30]
sub rcx, r8
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, r8
cmp rdx, 0x1000
jb 0x14001763c
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001763c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.140100388
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r15
jmp 0x14001723e