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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
mov rax, qword [0x180a850c0]
xor rax, rsp
mov qword [rsp + 0xa0], rax
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rax, qword [rsp + 0x40]
lea rbx, [rsi - 0x40000000]
cmp rbx, rax
cmovbe rbx, rax
mov r13, qword [rsp + 0x48]
cmp rsi, 0x40000001
cmovb rbx, rax
lea rax, [rsi + 0x40000000]
cmp rax, r13
cmovb r13, rax
add r13, 0xfffffffffffff001
mov rdi, qword [0x180a85f20]
jmp 0x180021473
mov rdi, qword [rdi]
test rdi, rdi
je 0x18002149c
cmp rbx, rdi
ja 0x180021470
cmp r13, rdi
jbe 0x180021470
cmp qword [rdi + 8], 0
je 0x180021470
mov rsi, qword [rdi + 8]
mov rax, qword [rsi]
mov qword [rdi + 8], rax
inc dword [rdi + 0x10]
jmp 0x1800217af
mov qword [rsp + 0x30], rsi
lea r12, [rsp + 0x68]
lea r15, [rsp + 0x70]
lea r14, [rsp + 0x30]
mov rdi, rsi
cmp rbx, rdi
ja 0x18002159e
mov ebp, dword [rsp + 0x60]
mov rax, rdi
shr rax, 0x20
je 0x1800214e0
mov rax, rdi
xor edx, edx
div rbp
jmp 0x1800214e6
mov eax, edi
xor edx, edx
div ebp
add rdx, rbp
sub rdi, rdx
nop dword [rax]
cmp rdi, rbx
jb 0x18002159e
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], 0x30
mov rcx, 0xffffffffffffffff
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call sub.ntdll.dll_NtQueryVirtualMemory
test eax, eax
js 0x18002159e
cmp dword [rsp + 0x90], 0x10000
je 0x180021550
mov rdi, qword [rsp + 0x78]
sub rdi, rbp
jae 0x1800214f0
jmp 0x18002159e
mov qword [rsp + 0x30], rdi
test rdi, rdi
je 0x18002159e
mov qword [rsp + 0x70], 0x1000
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x3000
mov rcx, 0xffffffffffffffff
mov rdx, r14
xor r8d, r8d
mov r9, r15
call sub.ntdll.dll_NtAllocateVirtualMemory
mov rdi, qword [rsp + 0x30]
test eax, eax
js 0x1800214b3
test rdi, rdi
jne 0x1800216c5
mov qword [rsp + 0x30], rsi
lea rdi, [rsp + 0x70]
lea r14, [rsp + 0x30]
cmp r13, rsi
jb 0x1800217ad
mov ebx, dword [rsp + 0x60]
mov rax, rsi
shr rax, 0x20
je 0x1800215d0
mov rax, rsi
xor edx, edx
div rbx
jmp 0x1800215d6
mov eax, esi
xor edx, edx
div ebx
add rsi, rbx
sub rsi, rdx
cmp rsi, r13
ja 0x1800217ad
lea ebp, [rbx - 1]
jmp 0x180021604
mov rax, rsi
xor edx, edx
div rbx
sub rsi, rdx
cmp rsi, r13
ja 0x1800217ad
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], 0x30
mov rcx, 0xffffffffffffffff
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call sub.ntdll.dll_NtQueryVirtualMemory
test eax, eax
js 0x1800217ad
cmp dword [rsp + 0x90], 0x10000
je 0x180021670
mov rsi, qword [rsp + 0x70]
add rsi, rbp
add rsi, qword [rsp + 0x88]
mov rax, rsi
shr rax, 0x20
jne 0x1800215f0
mov eax, esi
xor edx, edx
div ebx
jmp 0x1800215f8
mov qword [rsp + 0x30], rsi
test rsi, rsi
je 0x1800217ad
mov qword [rsp + 0x70], 0x1000
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x3000
mov rcx, 0xffffffffffffffff
mov rdx, r14
xor r8d, r8d
mov r9, rdi
call sub.ntdll.dll_NtAllocateVirtualMemory
mov rsi, qword [rsp + 0x30]
test eax, eax
js 0x1800215ad
mov rdi, rsi
test rsi, rsi
je 0x1800217ad
lea rax, [rdi + 0x40]
mov qword [rdi + 8], 0
mov dword [rdi + 0x10], 0
xor ecx, ecx
xor edx, edx
nop dword [rax]
lea rbp, [rdi + rcx]
add rbp, 0x40
mov qword [rdi + rcx + 0x40], rdx
mov qword [rdi + 8], rbp
lea rdx, [rdi + rcx + 0x80]
mov qword [rdi + rcx + 0x80], rbp
mov qword [rdi + 8], rdx
lea rbp, [rdi + rcx + 0xc0]
mov qword [rdi + rcx + 0xc0], rdx
mov qword [rdi + 8], rbp
lea rdx, [rdi + rcx + 0x100]
mov qword [rdi + rcx + 0x100], rbp
mov qword [rdi + 8], rdx
lea rbp, [rdi + rcx + 0x140]
mov qword [rdi + rcx + 0x140], rdx
mov qword [rdi + 8], rbp
lea rbx, [rdi + rcx + 0x180]
mov qword [rdi + rcx + 0x180], rbp
mov qword [rdi + 8], rbx
lea rdx, [rax + 0x180]
lea rbp, [rdi + rcx]
add rbp, 0x1c0
mov qword [rdi + rcx + 0x1c0], rbx
mov qword [rdi + 8], rbp
add rax, 0x1c0
lea rbp, [rcx + 0x1c0]
add rcx, 0x200
cmp rcx, 0xfc1
mov rcx, rbp
jb 0x1800216e0
mov rax, qword [0x180a85f20]
mov qword [rdi], rax
mov qword [0x180a85f20], rdi
jmp 0x180021489
xor esi, esi
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.180022690
mov rax, rsi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret