Function at 0x1280fa60
Capabilities:
Allocate or change rwx memory

Disassembly:
mov r11, rsp
push rbp
push rdi
sub rsp, 0x98
mov rax, qword [0x12a52ee0]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r9, qword [rcx + 0x10]
mov rdi, rcx
test r9, r9
je 0x1280fd19
cmp qword [rcx + 0x18], 0
je 0x1280fd19
mov rbp, qword [rcx + 0x1c8]
test rbp, rbp
je 0x1280fd19
test byte [rcx + 0x24], 1
jne 0x1280fd19
mov qword [r11 - 0x18], r12
mov qword [r11 - 0x20], r13
lea rax, [r11 - 0x64]
mov qword [r11 - 0x70], rax
lea r13, [rbp + 0x20]
mov dword [rsp + 0x30], 5
xor r12d, r12d
mov r8d, 0x80
mov rdx, r13
mov rcx, r13
mov dword [rsp + 0x28], 0x40
mov qword [r11 - 0x28], r14
mov dword [r11 - 0x64], r12d
mov qword [rsp + 0x20], r9
call fcn.1280f3b0
mov r14d, eax
test eax, eax
je 0x1280fd15
mov ecx, dword [rsp + 0x44]
test ecx, ecx
je 0x1280fd15
add r13, rcx
mov dword [rdi + 0x1a8], ecx
mov dword [rdi + 0xa0], r14d
mov qword [rsp + 0xb8], rbx
mov rbx, rcx
mov rcx, qword [rdi + 0x10]
mov byte [r13], 0xff
mov byte [r13 + 1], 0x25
mov dword [r13 + 2], r12d
lea rax, [r14 + rcx]
mov qword [rsp + 0xc0], rsi
mov rsi, r14
mov qword [r13 + 6], rax
mov dword [rsp + 0x40], r12d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea rax, [rsp + 0x40]
lea r8, [rbx + 0x20]
mov r9d, 0x80
mov rdx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov byte [rbp], 0xff
mov byte [rbp + 1], 0x25
mov dword [rbp + 2], r12d
mov rax, qword [rdi + 0x18]
lea rcx, [rdi + 0xa4]
mov qword [rbp + 6], rax
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x10]
call fcn.12959240
mov r10, qword [rdi + 0x10]
mov byte [rsp + 0x44], 0xe9
sub ebp, r10d
sub ebp, 5
mov dword [rsp + 0x45], ebp
cmp r14d, 0x20
ja 0x1280fccf
lea rbx, [rsp + 0x44]
cmp r14, 5
jbe 0x1280fc70
cmp r14, 0x20
ja 0x1280fc70
lea rcx, [rsp + 0x44]
lea r8, [r14 - 5]
mov eax, dword [rcx]
mov dword [rsp + 0x50], eax
movzx eax, byte [rcx + 4]
lea rcx, [rsp + 0x55]
mov byte [rsp + 0x54], al
movabs rax, 0xcccccccccccccccd
mul r8
shr rdx, 2
test rdx, rdx
je 0x1280fc34
mov rax, rdx
imul rax, rax, 0xfffffffffffffffb
add r8, rax
nop word [rax + rax]
mov dword [rcx], 0x441f0f
mov byte [rcx + 4], r12b
add rcx, 5
sub rdx, 1
jne 0x1280fc20
mov rdx, r8
shr rdx, 1
je 0x1280fc61
mov rax, rdx
imul rax, rax, 0xfffffffffffffffe
add r8, rax
nop word [rax + rax]
mov byte [rcx], 0x66
mov byte [rcx + 1], 0x90
add rcx, 2
sub rdx, 1
jne 0x1280fc50
test r8, r8
je 0x1280fc69
mov byte [rcx], 0x90
lea rbx, [rsp + 0x50]
jmp 0x1280fc75
mov esi, 5
lea r9, [rsp + 0x40]
mov r8d, 0x80
mov rdx, rsi
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x1280fccf
mov rcx, qword [rdi + 0x10]
mov r8, rsi
mov rdx, rbx
call fcn.12959240
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rdi + 0x10]
lea r9, [rsp + 0x40]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rdi + 0x10]
mov rcx, rax
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov rsi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb8]
mov dword [rdi + 0x20], r12d
mov eax, r12d
mov r13, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
mov r14, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.12959850
add rsp, 0x98
pop rdi
pop rbp
ret
xor eax, eax
jmp 0x1280fce6
xor eax, eax
jmp 0x1280fcfe