Function at 0x18001a140
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, rcx
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rax, qword [rsp + 0x60]
lea r13, [rsi - 0x40000000]
cmp r13, rax
cmovbe r13, rax
mov r14, qword [rsp + 0x68]
cmp rsi, 0x40000001
cmovb r13, rax
lea rax, [rsi + 0x40000000]
cmp rax, r14
cmovb r14, rax
add r14, 0xfffffffffffff001
mov rax, qword [0x180048848]
jmp 0x18001a1b3
mov rax, qword [rax]
test rax, rax
je 0x18001a1df
cmp r13, rax
ja 0x18001a1b0
cmp r14, rax
jbe 0x18001a1b0
cmp qword [rax + 8], 0
je 0x18001a1b0
mov rcx, qword [rax + 8]
mov rdx, qword [rcx]
mov qword [rax + 8], rdx
inc dword [rax + 0x10]
mov rax, rcx
jmp 0x18001a6fc
lea rdi, [rsp + 0x28]
mov r15, qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r12, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rsi
cmp r13, rbx
ja 0x18001a28a
mov ebp, dword [rsp + 0x80]
mov rax, rbx
shr rax, 0x20
je 0x18001a220
mov rax, rbx
xor edx, edx
div rbp
jmp 0x18001a226
mov eax, ebx
xor edx, edx
div ebp
add rdx, rbp
sub rbx, rdx
nop dword [rax]
cmp rbx, r13
jb 0x18001a28a
mov r8d, 0x30
mov rcx, rbx
mov rdx, rdi
call r15
test rax, rax
je 0x18001a28a
cmp dword [rsp + 0x48], 0x10000
je 0x18001a260
mov rbx, qword [rsp + 0x30]
sub rbx, rbp
jae 0x18001a230
jmp 0x18001a28a
test rbx, rbx
je 0x18001a28a
mov edx, 0x1000
mov rcx, rbx
mov r8d, 0x3000
mov r9d, 0x40
call r12
test rax, rax
je 0x18001a1f5
jmp 0x18001a369
lea rdi, [rsp + 0x28]
cmp r14, rsi
jb 0x18001a6fa
mov ebx, dword [rsp + 0x80]
mov rax, rsi
shr rax, 0x20
je 0x18001a2c0
mov rax, rsi
xor edx, edx
div rbx
add rsi, rbx
sub rsi, rdx
cmp rsi, r14
jbe 0x18001a2d5
jmp 0x18001a6fa
mov eax, esi
xor edx, edx
div ebx
add rsi, rbx
sub rsi, rdx
cmp rsi, r14
ja 0x18001a6fa
lea r13d, [rbx - 1]
jmp 0x18001a2f4
mov rax, rsi
xor edx, edx
div rbx
sub rsi, rdx
cmp rsi, r14
ja 0x18001a6fa
mov r8d, 0x30
mov rcx, rsi
mov rdx, rdi
call r15
test rax, rax
je 0x18001a6fa
cmp dword [rsp + 0x48], 0x10000
je 0x18001a340
mov rsi, qword [rsp + 0x28]
add rsi, r13
add rsi, qword [rsp + 0x40]
mov rax, rsi
shr rax, 0x20
jne 0x18001a2e0
mov eax, esi
xor edx, edx
div ebx
sub rsi, rdx
cmp rsi, r14
jbe 0x18001a2f4
jmp 0x18001a6fa
test rsi, rsi
je 0x18001a6fa
mov edx, 0x1000
mov rcx, rsi
mov r8d, 0x3000
mov r9d, 0x40
call r12
test rax, rax
je 0x18001a28f
lea rcx, [rax + 0x40]
mov dword [rax + 0x10], 0
mov qword [rax + 0x40], 0
lea rdx, [rax + 0x80]
mov qword [rax + 0x80], rcx
lea rcx, [rax + 0xc0]
mov qword [rax + 0xc0], rdx
lea rdx, [rax + 0x100]
mov qword [rax + 0x100], rcx
lea rcx, [rax + 0x140]
mov qword [rax + 0x140], rdx
lea rdx, [rax + 0x180]
mov qword [rax + 0x180], rcx
lea rcx, [rax + 0x1c0]
mov qword [rax + 0x1c0], rdx
lea rdx, [rax + 0x200]
mov qword [rax + 0x200], rcx
lea rcx, [rax + 0x240]
mov qword [rax + 0x240], rdx
lea rdx, [rax + 0x280]
mov qword [rax + 0x280], rcx
lea rcx, [rax + 0x2c0]
mov qword [rax + 0x2c0], rdx
lea rdx, [rax + 0x300]
mov qword [rax + 0x300], rcx
lea rcx, [rax + 0x340]
mov qword [rax + 0x340], rdx
lea rdx, [rax + 0x380]
mov qword [rax + 0x380], rcx
lea rcx, [rax + 0x3c0]
mov qword [rax + 0x3c0], rdx
lea rdx, [rax + 0x400]
mov qword [rax + 0x400], rcx
lea rcx, [rax + 0x440]
mov qword [rax + 0x440], rdx
lea rdx, [rax + 0x480]
mov qword [rax + 0x480], rcx
lea rcx, [rax + 0x4c0]
mov qword [rax + 0x4c0], rdx
lea rdx, [rax + 0x500]
mov qword [rax + 0x500], rcx
lea rcx, [rax + 0x540]
mov qword [rax + 0x540], rdx
lea rdx, [rax + 0x580]
mov qword [rax + 0x580], rcx
lea rcx, [rax + 0x5c0]
mov qword [rax + 0x5c0], rdx
lea rdx, [rax + 0x600]
mov qword [rax + 0x600], rcx
lea rcx, [rax + 0x640]
mov qword [rax + 0x640], rdx
lea rdx, [rax + 0x680]
mov qword [rax + 0x680], rcx
lea rcx, [rax + 0x6c0]
mov qword [rax + 0x6c0], rdx
lea rdx, [rax + 0x700]
mov qword [rax + 0x700], rcx
lea rcx, [rax + 0x740]
mov qword [rax + 0x740], rdx
lea rdx, [rax + 0x780]
mov qword [rax + 0x780], rcx
lea rcx, [rax + 0x7c0]
mov qword [rax + 0x7c0], rdx
lea rdx, [rax + 0x800]
mov qword [rax + 0x800], rcx
lea rcx, [rax + 0x840]
mov qword [rax + 0x840], rdx
lea rdx, [rax + 0x880]
mov qword [rax + 0x880], rcx
lea rcx, [rax + 0x8c0]
mov qword [rax + 0x8c0], rdx
lea rdx, [rax + 0x900]
mov qword [rax + 0x900], rcx
lea rcx, [rax + 0x940]
mov qword [rax + 0x940], rdx
lea rdx, [rax + 0x980]
mov qword [rax + 0x980], rcx
lea rcx, [rax + 0x9c0]
mov qword [rax + 0x9c0], rdx
lea rdx, [rax + 0xa00]
mov qword [rax + 0xa00], rcx
lea rcx, [rax + 0xa40]
mov qword [rax + 0xa40], rdx
lea rdx, [rax + 0xa80]
mov qword [rax + 0xa80], rcx
lea rcx, [rax + 0xac0]
mov qword [rax + 0xac0], rdx
lea rdx, [rax + 0xb00]
mov qword [rax + 0xb00], rcx
lea rcx, [rax + 0xb40]
mov qword [rax + 0xb40], rdx
lea rdx, [rax + 0xb80]
mov qword [rax + 0xb80], rcx
lea rcx, [rax + 0xbc0]
mov qword [rax + 0xbc0], rdx
lea rdx, [rax + 0xc00]
mov qword [rax + 0xc00], rcx
lea rcx, [rax + 0xc40]
mov qword [rax + 0xc40], rdx
lea rdx, [rax + 0xc80]
mov qword [rax + 0xc80], rcx
lea rcx, [rax + 0xcc0]
mov qword [rax + 0xcc0], rdx
lea rdx, [rax + 0xd00]
mov qword [rax + 0xd00], rcx
lea rcx, [rax + 0xd40]
mov qword [rax + 0xd40], rdx
lea rdx, [rax + 0xd80]
mov qword [rax + 0xd80], rcx
lea rcx, [rax + 0xdc0]
mov qword [rax + 0xdc0], rdx
lea rdx, [rax + 0xe00]
mov qword [rax + 0xe00], rcx
lea rcx, [rax + 0xe40]
mov qword [rax + 0xe40], rdx
lea rdx, [rax + 0xe80]
mov qword [rax + 0xe80], rcx
lea rcx, [rax + 0xec0]
mov qword [rax + 0xec0], rdx
lea rdx, [rax + 0xf00]
mov qword [rax + 0xf00], rcx
lea rcx, [rax + 0xf40]
mov qword [rax + 0xf40], rdx
lea rdx, [rax + 0xf80]
mov qword [rax + 0xf80], rcx
lea rcx, [rax + 0xfc0]
mov qword [rax + 0xfc0], rdx
mov qword [rax + 8], rcx
mov rcx, qword [0x180048848]
mov qword [rax], rcx
mov qword [0x180048848], rax
jmp 0x18001a1c9
xor eax, eax
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret