Function at 0x140036c70
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x14024f280]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov rax, qword gs:[0x58]
mov rbx, rdx
mov r14d, 4
mov rbp, rcx
add r14, qword [rax]
mov eax, dword [r14]
cmp dword [0x140259dc8], eax
jle 0x140036cfd
lea rcx, [0x140259dc8]
call fcn.14013d334
cmp dword [0x140259dc8], 0xffffffff
jne 0x140036cfd
lea rcx, [0x14021d4c8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, [0x140223fa8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x140259dc8]
mov qword [0x140259dd0], rax
call fcn.14013d2c8
mov eax, dword [r14]
cmp dword [0x140259dd8], eax
jle 0x140036d4d
lea rcx, [0x140259dd8]
call fcn.14013d334
cmp dword [0x140259dd8], 0xffffffff
jne 0x140036d4d
lea rcx, [0x14021d4c8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.IsWow64Process2
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x140259dd8]
mov qword [0x140259de0], rax
call fcn.14013d2c8
mov eax, dword [r14]
xor r15d, r15d
cmp dword [0x140259de8], eax
mov edi, 0x8664
mov esi, 0x14c
jle 0x140036e17
lea rcx, [0x140259de8]
call fcn.14013d334
cmp dword [0x140259de8], 0xffffffff
jne 0x140036e17
xorps xmm0, xmm0
mov dword [rsp + 0x30], r15d
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_IsWow64Process]
test eax, eax
je 0x140036dc5
cmp dword [rsp + 0x30], r15d
je 0x140036dc5
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
jmp 0x140036dd0
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [rsp + 0x40]
test eax, eax
je 0x140036e01
cmp eax, 6
je 0x140036dfa
cmp eax, 9
je 0x140036df5
cmp eax, 0xc
je 0x140036dee
movzx eax, r15w
jmp 0x140036e04
mov eax, 0xaa64
jmp 0x140036e04
movzx eax, di
jmp 0x140036e04
mov eax, 0x200
jmp 0x140036e04
movzx eax, si
lea rcx, [0x140259de8]
mov word [0x140259dec], ax
call fcn.14013d2c8
mov rax, qword [0x140259de0]
test rax, rax
je 0x140036f0d
lea r8, [rbx + 2]
mov rdx, rbx
mov rcx, rbp
call rax
test eax, eax
je 0x140036f2c
cmp word [rbx], r15w
je 0x140036e4a
mov byte [rbx + 4], 1
jmp 0x140036f61
movzx esi, word [rbx + 2]
mov byte [rbx + 4], r15b
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp rbp, rax
je 0x140036f08
mov eax, dword [r14]
cmp dword [0x140259db8], eax
jle 0x140036eb1
lea rcx, [0x140259db8]
call fcn.14013d334
cmp dword [0x140259db8], 0xffffffff
jne 0x140036eb1
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtQueryInformationProcess
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x140259db8]
mov qword [0x140259dc0], rax
call fcn.14013d2c8
mov rax, qword [0x140259dc0]
test rax, rax
je 0x140036f05
xorps xmm0, xmm0
mov dword [rsp + 0x30], r15d
lea rdx, [rsp + 0x30]
mov r9d, 0x40
mov qword [rsp + 0x20], rdx
lea r8, [rsp + 0x40]
mov rcx, rbp
movups xmmword [rsp + 0x40], xmm0
lea edx, [r9 - 0x1b]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
call rax
test eax, eax
js 0x140036f05
movzx edi, word [rsp + 0x70]
test di, di
jne 0x140036f08
movzx edi, si
mov word [rbx], di
jmp 0x140036f61
mov rax, qword [0x140259dd0]
test rax, rax
je 0x140036f4f
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], r15d
mov rcx, rbp
call rax
test eax, eax
jne 0x140036f30
xor al, al
jmp 0x140036f63
mov ecx, dword [rsp + 0x30]
cmp ecx, 1
sete al
mov byte [rbx + 4], al
movzx eax, word [0x140259dec]
test ecx, ecx
jne 0x140036f4a
mov esi, eax
mov word [rbx], si
jmp 0x140036f5d
movzx eax, word [0x140259dec]
mov word [rbx], ax
mov byte [rbx + 4], r15b
mov word [rbx + 2], ax
mov al, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14013cd20
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret