Function at 0x180002230
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push rsi
push r13
push r14
push r15
sub rsp, 0xb8
mov rax, qword [0x180128080]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rax, qword [rdx + 8]
mov rsi, r9
mov r13, r8
mov r14, rdx
mov r15, rcx
cmp qword [rdx], rax
jne 0x18000229d
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r13
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x18000228f
mov qword [r15], rax
mov byte [r15 + 8], 1
jmp 0x1800024ee
mov byte [r15], 0
mov byte [r15 + 8], 0
jmp 0x1800024ee
xorps xmm0, xmm0
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0xb0], rbp
lea rcx, [rsp + 0x58]
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xa0], r12
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rax, qword [r14]
mov r12, 0xffffffffffffffff
mov rcx, qword [rax]
xor eax, eax
mov rbp, rcx
sub rbp, rsi
cmp rcx, rsi
cmovbe rbp, rax
mov rax, r12
sub rax, rcx
cmp rax, rsi
jbe 0x180002305
lea r12, [rcx + rsi]
cmp rbp, qword [rsp + 0x60]
xorps xmm0, xmm0
mov eax, dword [rsp + 0x80]
cmovb rbp, qword [rsp + 0x60]
cmp qword [rsp + 0x68], r12
movups xmmword [rsp + 0x28], xmm0
cmovb r12, qword [rsp + 0x68]
lea rdi, [rax - 1]
add rdi, rcx
dec rax
not rax
and rdi, rax
mov rbx, rdi
movups xmmword [rsp + 0x38], xmm0
movups xmmword [rsp + 0x48], xmm0
cmp rdi, rbp
jbe 0x18000241f
mov qword [rsp + 0x20], rsi
nop word [rax + rax]
mov r9, qword [r14 + 8]
mov r8, qword [r14]
mov qword [rsp + 0x88], rbx
cmp r8, r9
je 0x1800023a8
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [r8]
mov rax, rbx
sub rax, rdx
mov rcx, rdx
sub rcx, rbx
cmp rbx, rdx
cmovbe rax, rcx
cmp rax, rsi
ja 0x18000241f
add r8, 8
cmp r8, r9
jne 0x180002380
mov r8d, 0x30
lea rdx, [rsp + 0x28]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18000241f
cmp dword [rsp + 0x48], 0x10000
jne 0x1800023fe
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.180002520
test al, al
je 0x1800023fe
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r13
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x180002510
mov ebx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
dec rbx
dec rax
not rbx
and rbx, rax
cmp rbx, rbp
ja 0x180002360
cmp rdi, r12
jae 0x1800024c5
mov qword [rsp + 0x88], rsi
mov r9, qword [r14 + 8]
mov rax, qword [r14]
mov qword [rsp + 0x20], rdi
cmp rax, r9
je 0x180002465
mov r8, qword [rax]
mov rcx, rdi
sub rcx, r8
mov rdx, r8
sub rdx, rdi
cmp rdi, r8
cmovbe rcx, rdx
cmp rcx, rsi
ja 0x1800024c5
add rax, 8
cmp rax, r9
jne 0x180002441
mov r8d, 0x30
lea rdx, [rsp + 0x28]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1800024c5
cmp dword [rsp + 0x48], 0x10000
jne 0x1800024b7
mov r8, rsi
mov rdx, r14
mov rcx, rdi
call fcn.180002520
test al, al
je 0x1800024b7
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r13
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x180002510
add rdi, qword [rsp + 0x40]
cmp rdi, r12
jb 0x180002430
mov byte [r15], 1
mov byte [r15 + 8], 0
mov rdi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xf8]
mov r12, qword [rsp + 0xa0]
mov rax, r15
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.180064f40
add rsp, 0xb8
pop r15
pop r14
pop r13
pop rsi
ret
mov qword [r15], rax
mov byte [r15 + 8], 1
jmp 0x1800024ce