Function at 0x180025b30
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x118]
sub rsp, 0x218
mov rax, qword [0x18028f9a8]
xor rax, rsp
mov qword [rbp + 0xf0], rax
xorps xmm0, xmm0
mov r14d, r9d
mov rsi, r8
mov qword [rsp + 0x58], r8
lea rax, [rsp + 0x48]
mov dword [rsp + 0x3c], r14d
xor r12d, r12d
mov qword [rsp + 0x60], rdx
lea r8, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r15, rdx
mov r13, rcx
movups xmmword [rsp + 0x70], xmm0
lea r9d, [r12 + 0x40]
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x1800261bf
cmp qword [rsp + 0x48], 0x40
jb 0x1800261bf
xor edx, edx
lea rcx, [rbp - 0x50]
mov r8d, 0x108
call fcn.1801a4970
movsxd rdx, dword [rbp - 0x54]
lea rax, [rsp + 0x48]
add rdx, r15
mov qword [rsp + 0x20], rax
mov r9d, 0x108
lea r8, [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x1800261bf
cmp qword [rsp + 0x48], 0x108
jb 0x1800261bf
mov eax, 0x20b
cmp word [rbp - 0x38], ax
je 0x180025c22
lea ecx, [r12 + 9]
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1800261bf
mov edx, dword [rbp - 0x54]
movzx ecx, word [rbp - 0x3c]
add edx, 0x18
mov qword [rsp + 0x210], rbx
add edx, ecx
mov ebx, r12d
mov qword [rsp + 0x208], rdi
mov qword [rbp + 0x90], r12
cmp r12w, word [rbp - 0x4a]
jae 0x180025cfb
mov edi, edx
nop word [rax + rax]
xor eax, eax
lea r8, [rbp + 0xc0]
mov qword [rbp + 0xe0], rax
xorps xmm0, xmm0
mov eax, ebx
mov r9d, 0x28
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
lea rcx, [rax + rax*4]
lea rdx, [rdi + rcx*8]
mov rcx, r13
lea rax, [rsp + 0x48]
add rdx, r15
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x1800261af
cmp qword [rsp + 0x48], 0x28
jb 0x1800261af
cmp dword [rbp + 0x98], r12d
jne 0x180025ced
mov edx, dword [rbp + 0x40]
mov ecx, dword [rbp + 0xcc]
cmp edx, ecx
jb 0x180025ced
mov r8d, dword [rbp + 0xd0]
lea eax, [r8 + rcx]
cmp edx, eax
jae 0x180025ced
mov dword [rbp + 0x98], ecx
mov dword [rbp + 0x9c], r8d
movzx eax, word [rbp - 0x4a]
inc ebx
cmp ebx, eax
jb 0x180025c60
mov ecx, dword [rbp + 0x44]
movabs rax, 0xcccccccccccccccd
mul rcx
mov r12, rdx
shr r12, 4
lea eax, [r14 + r12]
lea ecx, [rax + rax*4]
mov eax, r14d
shl eax, 5
lea ecx, [rcx*4 + 7]
and ecx, 0xfffffff8
add eax, ecx
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x50], eax
mov r9d, eax
mov dword [rsp + 0x38], eax
test r14d, r14d
je 0x180025d81
mov rdx, rsi
mov r8, r14
nop word [rax + rax]
mov rcx, qword [rdx]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x180025d60
add eax, 4
add rdx, 8
and eax, 0xfffffffc
add r9d, eax
sub r8, 1
jne 0x180025d50
mov dword [rsp + 0x38], r9d
mov ecx, r9d
mov edi, r9d
call fcn.180186108
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1800261ac
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.1801a4970
mov r8d, dword [rbp - 0x2c]
mov ecx, dword [rbp - 0x30]
mov edx, dword [rbp - 0x34]
add r8, rcx
mov r14d, dword [rbp - 0x24]
add rdx, r15
add rdx, r8
add r14, rdx
cmp r15, r14
cmovae r14, r15
mov rdx, r14
xorps xmm0, xmm0
lea r8, [rbp + 0xc0]
mov r9d, 0x30
mov rcx, r13
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
call qword [sym.imp.KERNEL32.dll_VirtualQueryEx]
test rax, rax
je 0x180026194
mov rdx, qword [rbp + 0xd8]
mov r8d, 0xffffffff
mov rax, rdx
and eax, 0xfff
cmp rax, 0xfff
je 0x18002619a
cmp dword [rbp + 0xe0], 0x10000
mov rcx, qword [rbp + 0xc0]
jne 0x180025eb9
cmp rcx, r14
mov rbx, r14
mov rsi, rdi
cmova rbx, rcx
sub rsi, r15
add rbx, 0xffff
and rbx, 0xffffffffffff0000
lea rax, [rbx - 1]
add rax, rsi
cmp rax, r8
ja 0x18002619a
lea rax, [rdx + rcx]
cmp rbx, rax
jae 0x180025eb9
mov r9d, 0x3000
mov dword [rsp + 0x20], 4
mov r8, rdi
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r15, rax
test rax, rax
jne 0x180025ec1
mov rdx, qword [rbp + 0xd8]
add rbx, 0x10000
mov rcx, qword [rbp + 0xc0]
lea rax, [rdx + rcx]
cmp rbx, rax
jb 0x180025e71
mov r15, qword [rsp + 0x60]
add rdx, rcx
jmp 0x180025dcb
lea rax, [rsi - 1]
mov ecx, 0xffffffff
add rax, rbx
cmp rax, rcx
ja 0x18002619a
mov r9, qword [rsp + 0x60]
mov esi, r15d
mov edx, dword [rbp + 0x40]
sub esi, r9d
mov dword [rsp + 0x40], 0
test edx, edx
je 0x180025f41
mov r14d, dword [rsp + 0x3c]
add rdx, r9
mov rdi, qword [rsp + 0x30]
mov eax, r12d
lea rcx, [r14 + r14*4]
lea r8, [rdi + rcx*4]
mov rcx, r13
lea rbx, [rax + rax*4]
lea rax, [rsp + 0x48]
shl rbx, 2
mov r9, rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x180025f31
cmp qword [rsp + 0x48], rbx
jae 0x180025f46
xor r12d, r12d
mov rcx, rdi
call fcn.180186100
jmp 0x1800261af
mov r14d, dword [rsp + 0x3c]
xor r12d, r12d
test r14d, r14d
mov edi, r12d
mov r14d, dword [rsp + 0x50]
je 0x1800260a6
mov rcx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x58]
lea rbx, [rcx + 4]
nop dword [rax + rax]
mov r10, qword [r8]
mov r8d, dword [rsp + 0x38]
mov eax, r14d
sub r8d, r14d
add rcx, rax
test r8, r8
je 0x18002619d
cmp r8, 0x7fffffff
ja 0x180026091
mov r11d, 0x7ffffffe
mov r9d, r8d
sub r11, r8
mov rdx, rcx
sub r10, rcx
nop dword [rax]
lea rax, [r9 + r11]
test rax, rax
je 0x180025fcd
movzx eax, byte [rdx + r10]
test al, al
je 0x180025fcd
mov byte [rdx], al
inc rdx
sub r9, 1
jne 0x180025fb0
test r9, r9
lea rax, [rdx - 1]
cmovne rax, rdx
mov byte [rax], r12b
je 0x18002619d
test rcx, rcx
je 0x18002600e
cmp r8, 2
jb 0x18002600e
nop dword [rax]
cmp byte [rcx], 0x3f
jne 0x180025ffb
cmp byte [rcx + 1], 0x3f
je 0x180026009
dec r8
inc rcx
cmp r8, 2
jae 0x180025ff0
jmp 0x18002600e
mov word [rcx], 0x3436
mov ecx, dword [rsp + 0x54]
mov eax, edi
mov rdx, qword [rsp + 0x30]
movabs r9, 0x8000000000000001
mov r8, qword [rsp + 0x58]
shl eax, 5
add ecx, eax
lea eax, [rcx + rsi]
mov dword [rbx - 4], eax
mov qword [rcx + rdx], r9
mov qword [rcx + rdx + 8], r12
add ecx, 0x10
lea eax, [rcx + rsi]
mov dword [rbx + 0xc], eax
lea eax, [rsi + r14]
mov qword [rcx + rdx], r9
mov qword [rcx + rdx + 8], r12
mov dword [rbx + 8], eax
mov rax, 0xffffffffffffffff
mov qword [rbx], r12
mov rcx, qword [r8]
inc rax
cmp byte [rcx + rax], r12b
jne 0x180026062
add eax, 4
add r8, 8
and eax, 0xfffffffc
mov qword [rsp + 0x58], r8
add r14d, eax
inc edi
add rbx, 0x14
cmp edi, dword [rsp + 0x3c]
jae 0x1800260ab
mov rcx, rdx
jmp 0x180025f70
mov rdi, qword [rsp + 0x30]
mov byte [rcx], r12b
mov rcx, rdi
call fcn.180186100
jmp 0x1800261af
mov rdx, qword [rsp + 0x30]
mov r8, rdx
mov r9d, r14d
mov rdx, r15
mov qword [rsp + 0x20], r12
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x18002619d
mov eax, dword [rsp + 0x38]
cmp dword [rbp + 0x98], r12d
jne 0x1800260e3
mov dword [rbp + 0x98], esi
mov dword [rbp + 0x9c], eax
mov rbx, qword [rsp + 0x60]
mov r9d, 0x40
mov r8d, dword [rbp + 4]
mov rdx, rbx
mov dword [rbp + 0x44], eax
mov rcx, r13
lea rax, [rsp + 0x40]
mov dword [rbp + 0x40], esi
mov qword [rsp + 0x20], rax
call fcn.180027b90
test eax, eax
je 0x18002619d
mov r9d, 0x40
mov dword [rbp + 8], r12d
lea r8, [rsp + 0x70]
mov qword [rsp + 0x20], r12
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x18002619d
movsxd rdx, dword [rbp - 0x54]
lea r8, [rbp - 0x50]
add rdx, rbx
mov qword [rsp + 0x20], r12
mov r9d, 0x108
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x18002619d
mov r8d, dword [rbp + 4]
lea rax, [rsp + 0x40]
mov r9d, dword [rsp + 0x40]
mov rdx, rbx
mov rcx, r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rdi, qword [rsp + 0x30]
test eax, eax
je 0x1800261a2
mov rcx, rdi
mov r12d, 1
call fcn.180186100
jmp 0x1800261af
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor r12d, r12d
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
call fcn.180186100
jmp 0x1800261af
xor r12d, r12d
mov rbx, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x208]
mov eax, r12d
mov rcx, qword [rbp + 0xf0]
xor rcx, rsp
call fcn.180186840
add rsp, 0x218
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret