Function at 0x140002f6e
Capabilities:
Allocate or change rwx memory
Check for unexpected memory writes
Execute shellcode via indirect call

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
mov dword [rbp - 4], 0
mov r9d, 4
mov r8d, 0x3000
mov edx, 0x8000
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp - 0x18], rax
cmp qword [rbp - 0x18], 0
jne 0x140002fc9
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.VirtualAlloc_failed._Last_error:__lu_n
mov rcx, rax
call sym.printf_1
mov eax, dword [rbp - 4]
jmp 0x1400031fb
mov r9d, 0x40
mov r8d, 0x203000
mov edx, 0x1000000
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp - 0x20], rax
cmp qword [rbp - 0x20], 0
jne 0x140003030
mov rax, qword [rbp - 0x18]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.VirtualAlloc_failed._Last_error:__lu_n
mov rcx, rax
call sym.printf_1
mov eax, dword [rbp - 4]
jmp 0x1400031fb
mov rax, qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov qword [rbp - 0x28], rax
mov dword [rbp - 8], 0
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0x51
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0x48
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0xb9
mov dword [rbp - 0xc], 0
mov dword [rbp - 0x10], 0
jmp 0x1400030c2
mov eax, dword [rbp - 0xc]
mov rdx, qword [rbp - 0x28]
mov ecx, eax
shr rdx, cl
mov rcx, rdx
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov edx, ecx
mov byte [rax], dl
add dword [rbp - 0xc], 8
add dword [rbp - 0x10], 1
cmp dword [rbp - 0x10], 7
jle 0x140003094
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0xff
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0xd1
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0x59
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, qword [rbp - 0x20]
add rax, rdx
mov byte [rax], 0xc3
mov rax, qword [rbp - 0x20]
mov edx, 0x1000000
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ResetWriteWatch]
call rax
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
call rax
cmp eax, 1
jne 0x140003149
mov dword [rbp - 4], 1
cmp dword [rbp - 4], 0
jne 0x1400031c2
mov qword [rbp - 0x38], 0x1000
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x20]
lea rdx, [rbp - 0x3c]
mov qword [rsp + 0x28], rdx
lea rdx, [rbp - 0x38]
mov qword [rsp + 0x20], rdx
mov r9, rcx
mov r8d, 0x1000
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_GetWriteWatch]
call rax
test eax, eax
je 0x1400031b2
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.GetWriteWatch_failed._Last_error:__lu_n
mov rcx, rax
call sym.printf_1
mov dword [rbp - 4], 0
jmp 0x1400031c2
mov rax, qword [rbp - 0x38]
test rax, rax
je 0x1400031c2
mov rax, qword [rbp - 0x38]
mov dword [rbp - 4], eax
mov rax, qword [rbp - 0x18]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov rax, qword [rbp - 0x20]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov eax, dword [rbp - 4]
add rsp, 0x70
pop rbp
ret