Function at 0x140069e40
Capabilities:
Check os version
Get system information on windows

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x2e0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov rax, qword [0x14025a030]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov rdi, qword [0x140260550]
mov dword [rsp + 0x24], 0
mov dword [rsp + 0x20], 0x78
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x24]
lea rdx, str._Utils::RuntimeInfo::FillInfoData_
lea rcx, [rsp + 0x40]
call fcn.140001d10
nop
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
xor edx, edx
mov r8d, 0x11c
lea rcx, [rsp + 0x1b0]
call sub.MSVCR90.dll_memset
mov dword [rsp + 0x1b0], 0x11c
or eax, 0xffffffff
movzx ecx, word [rsp + 0x150]
test ecx, ecx
je 0x140069ef4
cmp ecx, 6
je 0x140069eed
cmp ecx, 9
jne 0x140069ef9
lea eax, [rcx - 7]
jmp 0x140069ef9
mov eax, 3
jmp 0x140069ef9
mov eax, 1
mov dword [rdi + 4], eax
lea rcx, [rsp + 0x1b0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x140069f1d
lea rcx, [rsp + 0x1b0]
call fcn.140069cf0
jmp 0x140069f1f
xor eax, eax
mov dword [rdi], eax
mov rcx, qword [0x140260548]
test rcx, rcx
je 0x14006a147
mov rax, qword [rcx]
mov edx, 0x7d0
call qword [rax + 0x10]
test eax, eax
je 0x14006a015
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_int____ptr64]
nop
call qword [sym.imp.MSVCP90.dll_public:_static_class_std::locale_const____ptr64___cdecl_std::locale::classic_void_]
mov r8, rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x60]
lea rdx, [rsp + 0x28]
call qword [sym.imp.MSVCP90.dll_public:_class_std::locale___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::imbue_class_std::locale_const____ptr64____ptr64]
lea rcx, [rsp + 0x28]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::locale::destructor_void____ptr64]
lea rdx, str._Utils::RuntimeInfo::FillInfoData_
lea rcx, [rsp + 0x60]
call fcn.140002150
mov rcx, rax
lea rdx, str.Architecture:
call fcn.1400023c0
mov rcx, rax
mov edx, dword [rdi + 4]
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int____ptr64]
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::str_void____ptr64]
nop
lea r8, [rsp + 0x188]
cmp qword [rsp + 0x1a0], 8
cmovae r8, qword [rsp + 0x188]
mov rcx, qword [0x140260548]
mov rax, qword [rcx]
mov r9, qword [rsp + 0x198]
mov edx, 0x7d0
call qword [rax + 0x20]
nop
lea rcx, [rsp + 0x180]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::vbase_dtor_void____ptr64]
mov rcx, qword [0x140260548]
test rcx, rcx
je 0x14006a147
mov rax, qword [rcx]
mov edx, 0x7d0
call qword [rax + 0x10]
test eax, eax
je 0x14006a147
mov edx, 2
lea r8d, [rdx - 1]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_int____ptr64]
nop
call qword [sym.imp.MSVCP90.dll_public:_static_class_std::locale_const____ptr64___cdecl_std::locale::classic_void_]
mov r8, rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x60]
lea rdx, [rsp + 0x28]
call qword [sym.imp.MSVCP90.dll_public:_class_std::locale___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::imbue_class_std::locale_const____ptr64____ptr64]
lea rcx, [rsp + 0x28]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::locale::destructor_void____ptr64]
mov edx, 4
lea rcx, [rsp + 0x28]
call qword [sym.imp.MSVCP90.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
mov rsi, rax
lea rdx, str._Utils::RuntimeInfo::FillInfoData_
lea rcx, [rsp + 0x60]
call fcn.140002150
mov rcx, rax
lea rdx, str.Version:
call fcn.1400023c0
mov rbx, rax
test rax, rax
jne 0x14006a0b9
xor ecx, ecx
jmp 0x14006a0c3
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov rdx, qword [rsi + 8]
call qword [rsi]
lea rdx, [0x140003550]
mov rcx, rbx
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
mov edx, dword [rdi]
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int____ptr64]
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::str_void____ptr64]
nop
lea r8, [rsp + 0x188]
cmp qword [rsp + 0x1a0], 8
cmovae r8, qword [rsp + 0x188]
mov rcx, qword [0x140260548]
mov rax, qword [rcx]
mov r9, qword [rsp + 0x198]
mov edx, 0x7d0
call qword [rax + 0x20]
nop
lea rcx, [rsp + 0x180]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::vbase_dtor_void____ptr64]
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x24], 1
lea rcx, [rsp + 0x40]
call fcn.140001e50
nop
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.140155650
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret