Function at 0x140036940
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 [0x14024e280]
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 [0x140258c28], eax
jle 0x1400369cd
lea rcx, [0x140258c28]
call fcn.14013c7b4
cmp dword [0x140258c28], 0xffffffff
jne 0x1400369cd
lea rcx, [0x14021c4c8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, [0x140222e08]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x140258c28]
mov qword [0x140258c30], rax
call fcn.14013c748
mov eax, dword [r14]
cmp dword [0x140258c38], eax
jle 0x140036a1d
lea rcx, [0x140258c38]
call fcn.14013c7b4
cmp dword [0x140258c38], 0xffffffff
jne 0x140036a1d
lea rcx, [0x14021c4c8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.IsWow64Process2
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x140258c38]
mov qword [0x140258c40], rax
call fcn.14013c748
mov eax, dword [r14]
xor r15d, r15d
cmp dword [0x140258c48], eax
mov edi, 0x8664
mov esi, 0x14c
jle 0x140036ae7
lea rcx, [0x140258c48]
call fcn.14013c7b4
cmp dword [0x140258c48], 0xffffffff
jne 0x140036ae7
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 0x140036a95
cmp dword [rsp + 0x30], r15d
je 0x140036a95
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
jmp 0x140036aa0
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [rsp + 0x40]
test eax, eax
je 0x140036ad1
cmp eax, 6
je 0x140036aca
cmp eax, 9
je 0x140036ac5
cmp eax, 0xc
je 0x140036abe
movzx eax, r15w
jmp 0x140036ad4
mov eax, 0xaa64
jmp 0x140036ad4
movzx eax, di
jmp 0x140036ad4
mov eax, 0x200
jmp 0x140036ad4
movzx eax, si
lea rcx, [0x140258c48]
mov word [0x140258c4c], ax
call fcn.14013c748
mov rax, qword [0x140258c40]
test rax, rax
je 0x140036bdd
lea r8, [rbx + 2]
mov rdx, rbx
mov rcx, rbp
call rax
test eax, eax
je 0x140036bfc
cmp word [rbx], r15w
je 0x140036b1a
mov byte [rbx + 4], 1
jmp 0x140036c31
movzx esi, word [rbx + 2]
mov byte [rbx + 4], r15b
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp rbp, rax
je 0x140036bd8
mov eax, dword [r14]
cmp dword [0x140258c18], eax
jle 0x140036b81
lea rcx, [0x140258c18]
call fcn.14013c7b4
cmp dword [0x140258c18], 0xffffffff
jne 0x140036b81
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, [0x140258c18]
mov qword [0x140258c20], rax
call fcn.14013c748
mov rax, qword [0x140258c20]
test rax, rax
je 0x140036bd5
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 0x140036bd5
movzx edi, word [rsp + 0x70]
test di, di
jne 0x140036bd8
movzx edi, si
mov word [rbx], di
jmp 0x140036c31
mov rax, qword [0x140258c30]
test rax, rax
je 0x140036c1f
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], r15d
mov rcx, rbp
call rax
test eax, eax
jne 0x140036c00
xor al, al
jmp 0x140036c33
mov ecx, dword [rsp + 0x30]
cmp ecx, 1
sete al
mov byte [rbx + 4], al
movzx eax, word [0x140258c4c]
test ecx, ecx
jne 0x140036c1a
mov esi, eax
mov word [rbx], si
jmp 0x140036c2d
movzx eax, word [0x140258c4c]
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.14013c1a0
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret