Function at 0x140021b80
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x320
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + reloc.MFC80U.DLL_Ordinal_784], rax
xor edi, edi
mov rbx, rcx
lea rcx, [rsp + 0x3c]
lea r8d, [rdi + 0x2c]
xor edx, edx
mov dword [rsp + 0x38], edi
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea rcx, [rsp + 0x74]
xor edx, edx
mov r8d, 0x98
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x70], 0x9c
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
lea rcx, str.kernel32
mov dword [rsp + 0x30], edi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, str.IsWow64Process
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
mov rdi, rax
je 0x140021c21
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea rdx, [rsp + 0x30]
mov rcx, rax
call rdi
lea rcx, [rsp + 0x111]
xor edx, edx
mov r8d, Ordinal_512
mov byte [rsp + 0x110], 0
call sub.ntdll.dll_memset
mov r11d, dword [rsp + 0x7c]
mov eax, dword [rsp + 0x78]
mov r9d, dword [rsp + 0x74]
mov dword [rsp + 0x28], r11d
lea r8, str.Version___d._d._d_r_n
lea rcx, [rsp + 0x110]
mov edx, reloc.MFC80U.DLL_Ordinal_512
mov dword [rsp + 0x20], eax
call fcn.140015300
mov rcx, rbx
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rdx, str._SystemInfo__r_n
mov rcx, rbx
call qword [reloc.MSVCP80.dll___4__basic_string_DU__char_traits_D_std__V__allocator_D_2__std__QEAAAEAV01_PEBD_Z]
lea rdx, [rsp + 0x110]
mov rcx, rbx
call qword [sym.imp.MSVCP80.dll_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__::operator_char_const____ptr64____ptr64]
cmp dword [rsp + 0x30], 0
mov rcx, rbx
lea rdx, str.SystemType__64Bit_r_n
jne 0x140021cb0
lea rdx, str.SystemType__32Bit_r_n
call qword [sym.imp.MSVCP80.dll_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__::operator_char_const____ptr64____ptr64]
lea rcx, [rsp + 0x110]
xor edx, edx
mov r8d, reloc.MFC80U.DLL_Ordinal_512
call sub.ntdll.dll_memset
mov r9d, dword [rsp + 0x58]
lea r8, str.NumberOfProcessors:___d_r_n
lea rcx, [rsp + 0x110]
mov edx, reloc.MFC80U.DLL_Ordinal_512
call fcn.140015300
lea rdx, [rsp + 0x110]
mov rcx, rbx
call qword [sym.imp.MSVCP80.dll_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__::operator_char_const____ptr64____ptr64]
lea rdx, str._r_n_r_n
mov rcx, rbx
call qword [sym.imp.MSVCP80.dll_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__::operator_char_const____ptr64____ptr64]
mov rcx, qword [rsp + reloc.MFC80U.DLL_Ordinal_784]
xor rcx, rsp
call fcn.140161080
mov rbx, qword [rsp + 0x338]
add rsp, 0x320
pop rdi
ret