Function at 0x140021876
Capabilities:
Enumerate processes via ntquerysysteminformation
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x398
mov ebx, edx
mov rsi, rcx
mov word [rsp + 0x4c], bx
mov eax, edx
shr eax, 0x10
mov byte [rsp + 0x4e], al
mov r14d, 0x80000
mov ecx, 0x80000
xor edx, edx
call fcn.140007def
lea r15, [rsp + 0xd0]
mov qword [r15], rax
mov qword [r15 + 8], rdx
and qword [r15 + 0x10], 0
lea r12, [rsp + 0x100]
and dword [rsp + 0x100], 0
mov rcx, r15
mov rdx, r14
call fcn.140007ab4
mov rdi, qword [rsp + 0xd0]
mov ecx, 5
mov rdx, rdi
mov r8d, r14d
mov r9, r12
call sub.ntdll.dll_NtQuerySystemInformation
cmp eax, 0xc0000004
jne 0x140021917
mov eax, dword [rsp + 0x100]
add r14, r14
lea ecx, [rax + 0x2800]
test eax, eax
cmovne r14, rcx
jmp 0x1400218ca
test eax, eax
jne 0x1400219b8
mov qword [rsp + 0xe0], r14
mov ecx, 8
mov edx, 0xfa0
call fcn.140019984
test rax, rax
je 0x140021f3f
lea r14, [rsp + 0x68]
mov qword [r14], rax
mov qword [r14 + 8], 0x1f4
and qword [r14 + 0x10], 0
xor edx, edx
xor r15d, r15d
cmp rdx, qword [rsp + 0x70]
jne 0x140021972
mov rcx, r14
call fcn.140020101
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x78]
lea rcx, [rdi + r15]
mov qword [rax + rdx*8], rcx
mov rdx, qword [rsp + 0x78]
inc rdx
mov qword [rsp + 0x78], rdx
mov ecx, dword [rcx]
add r15, rcx
test rcx, rcx
jne 0x140021959
lea rdi, [rsi + 0x40]
mov qword [rsp + 0xe8], rdi
test bl, bl
je 0x1400219c8
lea rcx, [rsi + 0x110]
xor edx, edx
call fcn.140021fb4
mov rax, qword [rsi + 0x190]
jmp 0x1400219ca
mov rdx, qword [rsp + 0xd8]
mov rcx, rdi
jmp 0x140021f25
xor eax, eax
mov qword [rsp + 0xf0], rax
call fcn.14001c7a5
shl rdx, 0x20
mov eax, eax
or rax, rdx
movabs rcx, 0x19db1ded53e8000
cmp rax, rcx
jge 0x1400219f3
xor eax, eax
jmp 0x140021a0a
movabs rcx, 0xfe624e212ac18000
add rax, rcx
mov ecx, 0x989680
xor edx, edx
div rcx
lea rcx, [rsp + 0xf8]
mov qword [rcx], rax
mov r15, qword [rsp + 0x78]
mov qword [rsp + 0x110], r15
movdqu xmm0, xmmword [rsp + 0x68]
movdqa xmmword [rsp + 0x100], xmm0
mov qword [rsp + 0x50], 8
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x118], rax
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x120], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rcx
mov r14, qword [rsp + 0x108]
cmp r14, r15
jb 0x140021f3f
lea rbx, [rsp + 0x118]
mov r12, qword [rbx - 0x18]
mov rcx, r15
call fcn.14001ff54
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], 1
lea rbx, [rsp + 0x258]
mov rcx, rbx
mov rdx, r15
xor r8d, r8d
mov r9, rax
call fcn.14001d3c4
test r14, r14
je 0x140021ae8
shl r14, 3
mov edx, 8
mov rcx, r12
mov r8, r14
call fcn.1400044ee
mov rax, qword [rsp + 0x268]
xor edx, edx
sub rax, 1
jb 0x140021b0a
mov rbx, qword [rbx]
test rbx, rbx
je 0x140021b0a
add rdx, qword [rbx + 0x10]
add rbx, 0x18
jmp 0x140021af2
lea rcx, [rsp + 0x50]
call fcn.140020024
mov rax, qword [rsp + 0x268]
lea r14, [rsp + 0x2e0]
mov qword [r14 + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x258]
movdqa xmmword [r14], xmm0
lea r13, [rsp + 0x108]
lea r15, [rsp + 0x100]
mov rcx, r14
call fcn.14001edb3
test rax, rax
je 0x140021bdf
mov rbx, qword [rax]
movdqu xmm0, xmmword [rax + 8]
movdqa xmmword [rsp + 0x80], xmm0
mov rcx, rax
call fcn.14001ede1
test rbx, rbx
je 0x140021bdf
mov qword [rsp + 0x100], rbx
movdqa xmm0, xmmword [rsp + 0x80]
movdqu xmmword [r13], xmm0
mov r12, qword [rsp + 0x110]
lea rcx, [rsp + 0x50]
mov rdx, r12
call fcn.140020024
mov rbp, qword [rsp + 0x60]
imul rcx, rbp, 0x150
add rcx, qword [rsp + 0x50]
imul r8, r12, 0x150
mov rdx, rbx
call sub.msvcrt.dll_memcpy
add rbp, r12
mov qword [rsp + 0x60], rbp
and qword [rsp + 0x110], 0
mov rcx, r15
call fcn.14001ce5b
jmp 0x140021b46
lea rcx, [rsp + 0x2e0]
call fcn.14001ed81
mov r13, qword [rsp + 0x50]
imul rcx, qword [rsp + 0x60], 0x150
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa8], rax
lea rax, [rcx + r13]
mov qword [rsp + 0xa0], rax
lea rax, [rsi + 0x60]
mov qword [rsp + 0x98], rax
lea r14, [rsp + 0x258]
lea rbp, [rsp + 0x100]
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x140021e5e
mov r15, qword [r13]
cmp r15, 2
je 0x140021e57
mov qword [rsp + 0xc8], rcx
lea rbx, [r13 + 0xc8]
mov r12, qword [r13 + 0xc0]
lea rdx, [r13 + 8]
mov r8d, 0xb8
lea rcx, [rsp + 0x2e0]
call sub.msvcrt.dll_memcpy
mov r8d, 0x88
mov rcx, r14
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x80], r12
mov rcx, qword [rsi + 0x60]
mov rdx, qword [rsi + 0x68]
mov r8, r12
call fcn.14001fc04
mov rbx, rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x50], rax
cmp qword [rsi + 0x50], 0
je 0x140021e42
lea rax, [rsp + 0x50]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rdi
mov rcx, qword [rsi + 0x40]
mov rdx, qword [rsi + 0x48]
lea rax, [0x140020c48]
mov qword [rsp + 0x20], rax
mov r8, rbx
mov r9, rbp
call fcn.14002074c
mov r14, rdx
test rax, rax
je 0x140021d8f
mov rsi, qword [rsp + 0x80]
mov rax, qword [rdi]
mov r8b, byte [rax + r14]
mov rcx, rdi
mov rdx, r14
mov r9, rbx
call fcn.140020887
mov rdi, qword [rdi]
neg r14
imul r14, r14, 0x158
lea rbx, [rdi + r14]
add rbx, 0xfffffffffffffeb8
mov qword [rbx - 0x10], rsi
mov qword [rbx - 8], r15
mov r8d, 0xb8
mov rcx, rbx
lea rdx, [rsp + 0x2e0]
call sub.msvcrt.dll_memcpy
mov qword [rbx + 0xb8], r12
lea rcx, [rdi + r14]
add rcx, 0xffffffffffffff78
mov r8d, 0x88
lea r14, [rsp + 0x258]
mov rdx, r14
call sub.msvcrt.dll_memcpy
jmp 0x140021e17
mov rsi, qword [rdi]
neg r14
imul rdi, r14, 0x158
lea rbx, [rsi + rdi]
add rbx, 0xfffffffffffffeb0
mov r8d, 0x150
mov rcx, rbp
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov qword [rbx], r15
lea rbx, [rsi + rdi]
add rbx, 0xfffffffffffffeb8
mov r8d, 0xb8
mov rcx, rbx
lea rdx, [rsp + 0x2e0]
call sub.msvcrt.dll_memcpy
mov qword [rbx + 0xb8], r12
lea rcx, [rsi + rdi]
add rcx, 0xffffffffffffff78
mov r8d, 0x88
lea r14, [rsp + 0x258]
mov rdx, r14
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x100], 2
je 0x140021e17
mov rcx, rbp
call fcn.14001cec6
add r13, 0x150
mov rcx, qword [rsp + 0xc8]
add rcx, 0xfffffffffffffeb0
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xb8]
jmp 0x140021c47
mov rcx, rdi
mov rdx, qword [rsp + 0x98]
call fcn.140020c6e
jmp 0x140021ccf
add r13, 0x150
mov rax, qword [rsp + 0xa0]
sub rax, r13
mov ecx, 0x150
xor edx, edx
div rcx
mov rcx, r13
mov rdx, rax
call fcn.14001ce9c
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xa8]
call fcn.14001ce85
mov rax, qword [rsi + 0x40]
mov rcx, qword [rsi + 0x48]
add rcx, rax
inc rcx
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
not edx
mov r8, qword [rsi + 0x58]
lea rsi, [rsp + 0x100]
mov qword [rsi], rax
add rax, 0x10
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rcx
mov word [rsi + 0x18], dx
mov qword [rsi + 0x20], r8
mov r14d, 0x158
mov rcx, rsi
call fcn.140020474
test rax, rax
je 0x140021f15
mov rbx, rax
cmp byte [rax - 4], 0
mov byte [rax - 4], 0
jne 0x140021ed4
mov rax, qword [rdi]
sub rax, rbx
cqo
idiv r14
mov rcx, rdi
mov rdx, rax
call fcn.140020fe1
add rbx, 0xfffffffffffffeb0
mov rcx, rbx
call fcn.14001cec6
jmp 0x140021ed4
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
call fcn.140007ddb
nop
add rsp, 0x398
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2