Function at 0x180028c70
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor ebx, ebx
mov rbp, r9
mov rdi, r8
mov r12, rdx
mov rsi, rcx
mov qword [rsp + 0x40], rbx
mov r14, rbx
mov r15, rbx
mov r13, rbx
test rcx, rcx
jne 0x180028cb4
xor eax, eax
jmp 0x180028f50
mov r9d, 0x3000
xor edx, edx
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x180028f4e
lea rcx, [rsp + 0x40]
mov r9, rdi
mov r8, r12
mov qword [rsp + 0x20], rcx
mov rcx, rsi
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180028f4e
test rbp, rbp
je 0x180028d60
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbp
repne scasw ax, word [rdi]
mov r9d, 0x3000
xor edx, edx
not rcx
mov dword [rsp + 0x20], 0x40
lea rdi, [rcx + rcx]
mov rcx, rsi
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r14, rax
test rax, rax
je 0x180028f4e
lea rax, [rsp + 0x40]
mov r9, rdi
mov r8, rbp
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180028f4e
mov rbp, qword [rsp + 0xa0]
test rbp, rbp
je 0x180028dcc
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbp
repne scasb al, byte [rdi]
mov r9d, 0x3000
xor edx, edx
not rcx
mov dword [rsp + 0x20], 0x40
lea rdi, [rcx - 1]
mov r8, rcx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r15, rax
test rax, rax
je 0x180028f4e
lea rax, [rsp + 0x40]
lea r9, [rdi + 1]
mov r8, rbp
mov rdx, r15
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180028f4e
mov rbp, qword [rsp + 0xa8]
test rbp, rbp
je 0x180028e38
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbp
repne scasw ax, word [rdi]
mov r9d, 0x3000
xor edx, edx
not rcx
mov dword [rsp + 0x20], 0x40
lea rdi, [rcx + rcx]
mov rcx, rsi
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r13, rax
test rax, rax
je 0x180028f4e
lea rax, [rsp + 0x40]
mov r9, rdi
mov r8, rbp
mov rdx, r13
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180028f4e
xor edx, edx
mov r9d, 0x3000
mov rcx, rsi
lea r8d, [rdx + 0x40]
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rbp, rax
test rax, rax
je 0x180028f4e
mov ecx, 0x20
call fcn.180034088
mov rdi, rax
test rax, rax
je 0x180028f4e
mov rax, qword [rsp + 0x48]
mov r9d, 0x20
mov r8, rdi
mov qword [rdi], rax
lea rax, [rsp + 0x40]
mov rdx, rbp
mov rcx, rsi
mov qword [rdi + 8], r14
mov qword [rdi + 0x10], r15
mov qword [rsp + 0x20], rax
mov qword [rdi + 0x18], r13
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov rcx, rdi
test eax, eax
jne 0x180028ebb
call fcn.180036fb0
jmp 0x180028f4e
call fcn.180036fb0
xor edx, edx
mov r9d, 0x3000
mov r8d, 0x22f3
mov rcx, rsi
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rdi, rax
test rax, rax
je 0x180028f4e
lea rax, [rsp + 0x40]
lea r8, [0x180082ed0]
mov r9d, 0x22f3
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180028f4e
lea rax, [rsp + 0x80]
mov r9, rdi
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov rcx, rsi
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbp
mov dword [rsp + 0x80], ebx
call fcn.180029bd0
test rax, rax
je 0x180028f4e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, 1
mov eax, ebx
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret