Function at 0x40304a
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xc0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov dword [rbp - 4], 1
mov dword [rbp - 8], 0
jmp 0x4030cf
mov eax, dword [rbp - 8]
cdqe
mov rdx, qword [rbp + 0x18]
add rax, rdx
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp - 0x30]
lea rax, [rbp - 0x6c]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x4030cb
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x4030d5
add dword [rbp - 8], 4
cmp dword [rbp - 8], 0x18
jle 0x403071
mov dword [rbp - 0xc], 0x400
jmp 0x40313c
mov eax, dword [rbp - 0xc]
cdqe
mov rdx, qword [rbp + 0x18]
add rax, rdx
mov qword [rbp - 0x38], rax
mov rdx, qword [rbp - 0x38]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x403138
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x403145
add dword [rbp - 0xc], 4
cmp dword [rbp - 0xc], 0x418
jle 0x4030de
mov dword [rbp - 0x10], 0x20
jmp 0x4031ac
mov eax, dword [rbp - 0x10]
cdqe
mov rdx, qword [rbp + 0x18]
add rax, rdx
mov qword [rbp - 0x40], rax
mov rdx, qword [rbp - 0x40]
lea rax, [rbp - 0x74]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x4031a8
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x4031b2
add dword [rbp - 0x10], 4
cmp dword [rbp - 0x10], 0x38
jle 0x40314e
mov dword [rbp - 0x14], pe_nt_image_headers64
jmp 0x403219
mov eax, dword [rbp - 0x14]
cdqe
mov rdx, qword [rbp + 0x18]
add rax, rdx
mov qword [rbp - 0x48], rax
mov rdx, qword [rbp - 0x48]
lea rax, [rbp - 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x403215
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x403222
add dword [rbp - 0x14], 4
cmp dword [rbp - 0x14], 0x98
jle 0x4031bb
mov dword [rbp - 0x18], 0x180
jmp 0x403289
mov eax, dword [rbp - 0x18]
cdqe
mov rdx, qword [rbp + 0x18]
add rax, rdx
mov qword [rbp - 0x50], rax
mov rdx, qword [rbp - 0x50]
lea rax, [rbp - 0x7c]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x403285
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x403292
add dword [rbp - 0x18], 4
cmp dword [rbp - 0x18], 0x198
jle 0x40322b
mov dword [rbp - 0x1c], 0
jmp 0x4032f9
mov eax, dword [rbp - 0x1c]
cdqe
mov rdx, qword [rbp + 0x20]
add rax, rdx
mov qword [rbp - 0x58], rax
mov rdx, qword [rbp - 0x58]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x4032f5
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x4032ff
add dword [rbp - 0x1c], 4
cmp dword [rbp - 0x1c], 0x18
jle 0x40329b
mov dword [rbp - 0x20], 0x20
jmp 0x403369
mov eax, dword [rbp - 0x20]
cdqe
mov rdx, qword [rbp + 0x20]
add rax, rdx
mov qword [rbp - 0x60], rax
mov rdx, qword [rbp - 0x60]
lea rax, [rbp - 0x84]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x403365
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x40336f
add dword [rbp - 0x20], 4
cmp dword [rbp - 0x20], 0x38
jle 0x403308
mov dword [rbp - 0x24], 0x1a0
jmp 0x4033d9
mov eax, dword [rbp - 0x24]
cdqe
mov rdx, qword [rbp + 0x18]
add rax, rdx
mov qword [rbp - 0x68], rax
mov rdx, qword [rbp - 0x68]
lea rax, [rbp - 0x88]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
mov r8d, 4
mov rcx, qword [rbp + 0x10]
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call rax
test eax, eax
jne 0x4033d5
mov dword [rbp - 4], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, [0x00408618]
call sym.printf
jmp 0x4033e2
add dword [rbp - 0x24], 4
cmp dword [rbp - 0x24], 0x1b8
jle 0x403378
cmp dword [rbp - 4], 0
jne 0x403403
lea rcx, [0x00408650]
call sym.puts
call sym.getchar
mov ecx, 0
call sym.exit
lea rcx, [0x00408698]
call sym.puts
nop
add rsp, 0xc0
pop rbp
ret