Function at 0x140060310
Capabilities:
Get system information on windows

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x200
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x1400bd010]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rdi, rdx
mov rsi, rcx
mov rcx, qword [rdx + 0xb8]
test rcx, rcx
je 0x1400607b4
xor r14d, r14d
mov dword [rsp + 0x48], r14d
lea rdx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [rsp + 0x48], 0x103
jne 0x1400607a0
mov qword [rbp - 0x80], r14
mov qword [rsp + 0x78], r14
lea rdx, [rbp - 0x80]
lea rcx, [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea rcx, [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
lea rdx, [rsp + 0x78]
lea rcx, [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov rbx, qword [rsp + 0x78]
sub rbx, qword [rbp - 0x80]
jne 0x14006046f
lea rcx, [rbp - 0x40]
call fcn.140004550
nop
lea rdx, str.u3.QuadPart_is_zero__calculated_failed
lea rcx, [rbp - 0x30]
call fcn.140015a40
mov rcx, rax
lea rdx, [0x140087c64]
call fcn.140015a40
mov rcx, rax
lea rdx, str.HWPROCESS::HELPER::RefreshAllProcess::_lambda_5789c8a88b3c8edd989a87d850f1bec8_::operator___
call fcn.140015c30
mov rcx, rax
lea rdx, [0x140087c60]
call fcn.140015a40
call qword [sym.imp.LogHelper.dll_public:_static_class_HwLogger____ptr64___cdecl_HwLogger::GetInstance_void_]
mov rcx, rax
lea r8, [rbp - 0x40]
lea edx, [rbx + 4]
call qword [sym.imp.LogHelper.dll_public:_void___cdecl_HwLogger::Log_enum_LOG_MESSAGE_LEVEL__class_std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64____ptr64]
nop
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rcx - 0x40], rax
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x44], edx
lea rcx, [rbp - 0x28]
call fcn.140012ea0
lea rcx, [rbp - 0x20]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
lea rcx, [rbp + 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
jmp 0x1400607b4
mov rax, qword [rsi]
movzx ecx, word [rax]
test cl, 1
je 0x140060655
xor eax, eax
mov qword [rsp + 0x54], rax
mov qword [rsp + 0x5c], rax
mov r15, qword [rdi + 0xb8]
lea rcx, [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rbp - 0x58]
mov dword [rsp + 0x50], eax
test r15, r15
je 0x1400604c9
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x54]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcessTimes]
mov eax, dword [rdi + 0x74]
mov dword [rsp + 0x68], eax
mov eax, dword [rdi + 0x78]
mov dword [rsp + 0x6c], eax
mov eax, dword [rdi + 0x6c]
mov dword [rsp + 0x38], eax
mov eax, dword [rdi + 0x70]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x34], eax
mov edx, dword [rdi + 0x68]
test edx, edx
jne 0x14006059b
lea rcx, [rbp - 0x40]
call fcn.140004550
nop
lea rdx, str.Process_Info_cpu_calculated_failed
lea rcx, [rbp - 0x30]
call fcn.140015a40
mov rcx, rax
lea rdx, [0x140087c64]
call fcn.140015a40
mov rcx, rax
lea rdx, str.HWPROCESS::HELPER::RefreshAllProcess::_lambda_5789c8a88b3c8edd989a87d850f1bec8_::operator___
call fcn.140015c30
mov rcx, rax
lea rdx, [0x140087c60]
call fcn.140015a40
call qword [sym.imp.LogHelper.dll_public:_static_class_HwLogger____ptr64___cdecl_HwLogger::GetInstance_void_]
mov rcx, rax
lea r8, [rbp - 0x40]
mov edx, 4
call qword [sym.imp.LogHelper.dll_public:_void___cdecl_HwLogger::Log_enum_LOG_MESSAGE_LEVEL__class_std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64____ptr64]
nop
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rcx - 0x40], rax
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x44], edx
jmp 0x14006044d
xorps xmm6, xmm6
cvtsi2sd xmm6, rbx
movsd xmm7, qword [0x14008ef90]
test rbx, rbx
jns 0x1400605b4
addsd xmm6, xmm7
mov rax, qword [rsp + 0x30]
sub rax, qword [rsp + 0x38]
sub rax, qword [rsp + 0x68]
add rax, qword [rsp + 0x70]
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
jns 0x1400605d6
addsd xmm1, xmm7
mov rax, qword [rsi + 8]
mov rcx, qword [rax]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
test rcx, rcx
jns 0x1400605ee
addsd xmm0, xmm7
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
mulsd xmm0, xmm6
divsd xmm1, xmm0
movsd qword [rdi + 0x60], xmm1
mov rax, qword [rsi + 0x10]
comisd xmm1, xmmword [rax]
jbe 0x14006063d
movsd qword [rax], xmm1
mov rcx, qword [rsi + 0x18]
mov eax, dword [rdi]
mov dword [rcx], eax
lea rdx, [rdi + 0x10]
mov rcx, qword [rsi + 0x20]
cmp rcx, rdx
je 0x14006063d
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140060638
mov rdx, qword [rdx]
call sym.HwMdcCenter.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rdi + 0x68], xmm0
mov eax, dword [rsp + 0x60]
mov dword [rdi + 0x78], eax
mov rax, qword [rsi]
movzx ecx, word [rax]
jmp 0x14006066e
xorps xmm6, xmm6
cvtsi2sd xmm6, rbx
movsd xmm7, qword [0x14008ef90]
test rbx, rbx
jns 0x14006066e
addsd xmm6, xmm7
movaps xmm8, xmm6
test cl, 2
je 0x14006069f
mov rax, qword [rdi + 0xb8]
test rax, rax
je 0x14006069f
lea r8, [rdi + 0x88]
lea rdx, [rdi + 0x80]
mov rcx, rax
call fcn.14005d5a0
mov rax, qword [rsi]
movzx ecx, word [rax]
test cl, 4
je 0x140060797
mov rax, qword [rsi + 0x28]
divsd xmm8, qword [rax]
mov rbx, r14
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x1400606d7
lea rdx, [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetProcessIoCounters]
cmp eax, 1
jne 0x1400606d7
mov r14, qword [rbp - 0x60]
mov rbx, qword [rbp - 0x58]
mov rax, r14
sub rax, qword [rdi + 0xa0]
mov rcx, qword [rsi + 0x30]
movsxd r8, dword [rcx]
xor edx, edx
div r8
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x1400606fe
addsd xmm0, xmm7
divsd xmm0, xmm8
xor ecx, ecx
movabs r9, 0x8000000000000000
movsd xmm1, qword [0x14008ef88]
comisd xmm0, xmm1
jb 0x14006072a
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14006072a
mov rcx, r9
cvttsd2si rax, xmm0
add rax, rcx
mov qword [rdi + 0x90], rax
mov rax, rbx
sub rax, qword [rdi + 0xa8]
mov rcx, qword [rsi + 0x30]
movsxd r8, dword [rcx]
xor edx, edx
div r8
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x140060760
addsd xmm0, xmm7
divsd xmm0, xmm8
xor ecx, ecx
comisd xmm0, xmm1
jb 0x14006077a
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14006077a
mov rcx, r9
cvttsd2si rax, xmm0
add rax, rcx
mov qword [rdi + 0x98], rax
mov qword [rdi + 0xa0], r14
mov qword [rdi + 0xa8], rbx
mov byte [rdi + 0xb3], 1
jmp 0x1400607b4
mov rcx, qword [rdi + 0xb8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0xb8], r14
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.140079c90
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret