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

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x40
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
movzx ebx, r8b
movzx ebp, dl
movups xmmword [rcx + 0x10], xmm0
mov qword [rcx + 0x20], rax
mov rsi, rcx
mov qword [rcx + 0x28], rax
mov dword [rcx + 0x30], eax
mov byte [rcx + 0x3c], al
mov qword [rcx + 0x48], rax
mov qword [rcx + 0x50], rax
mov qword [rcx + 0x58], rax
mov dword [rcx + 0x60], eax
mov rax, qword [0x14069d708]
mov qword [rcx + 0x34], 0xffffffffffffffff
test rax, rax
jne 0x1403057f8
mov ecx, 0x98
call fcn.14026e684
mov rcx, rax
call fcn.1402cc7b0
mov qword [0x14069d708], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x68]
mov byte [rsi + 0x3c], al
mov rax, qword [0x14069d708]
test rax, rax
jne 0x140305829
mov ecx, 0x98
call fcn.14026e684
mov rcx, rax
call fcn.1402cc7b0
mov qword [0x14069d708], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov byte [rsi + 0x3d], al
mov rax, qword [0x14069d708]
test rax, rax
jne 0x14030585a
mov ecx, 0x98
call fcn.14026e684
mov rcx, rax
call fcn.1402cc7b0
mov qword [0x14069d708], rax
mov rdx, qword [rax]
mov rcx, rax
mov qword [rsp + 0x60], rdi
call qword [rdx + reloc.WS2_32.dll_getservbyport]
mov byte [rsi + 0x3f], 0
mov byte [rsi + 0x3e], al
test bl, bl
je 0x140305983
mov eax, dword [0x14040aee4]
test eax, eax
jg case.0x140305941.4
jns 0x140305983
mov rax, qword [0x14069d708]
test rax, rax
jne 0x1403058b0
mov ecx, 0x98
call fcn.14026e684
mov rcx, rax
call fcn.1402cc7b0
mov qword [0x14069d708], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xd0]
mov ebx, eax
mov rax, qword [0x14069d708]
test rax, rax
jne 0x1403058e3
mov ecx, 0x98
call fcn.14026e684
mov rcx, rax
call fcn.1402cc7b0
mov qword [0x14069d708], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.WS2_32.dll_htonl]
cmp ebx, 1
jne 0x140305924
call fcn.1402c8440
mov rdi, rax
call fcn.1402c8440
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x88]
mov rdx, qword [rdi]
mov rcx, rdi
mov rbx, rax
call qword [rdx + 0xa8]
cmp rax, rbx
sete al
mov byte [rsi + 0x3f], al
jmp 0x140305983
cmp ebx, 2
jne 0x140305983
dec eax
cmp eax, 5
ja case.0x140305941.1
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x305b20]
add rcx, rdx
jmp rcx
call fcn.1402c8440
mov rbx, rax
call fcn.1402c8440
mov rdx, qword [rbx]
mov rcx, rbx
mov rdi, rax
call qword [rdx + 0xa8]
mov rdx, qword [rdi]
mov rcx, rdi
mov rbx, rax
call qword [rdx + 0x88]
cmp rbx, rax
sete al
mov byte [rsi + 0x3f], al
jmp 0x140305983
mov byte [rsi + 0x3f], 0
jmp 0x140305983
mov byte [rsi + 0x3f], 1
cmp byte [rsi + 0x3e], 0
jne 0x14030598d
mov byte [rsi + 0x3f], 0
mov rax, qword [0x14069d708]
test rax, rax
jne 0x1403059b2
mov ecx, 0x98
call fcn.14026e684
mov rcx, rax
call fcn.1402cc7b0
mov qword [0x14069d708], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x58]
cmp byte [rsi + 0x3f], 0
mov ebx, 0x20000
mov byte [rsi + 0x40], al
mov eax, 0x40000
cmovne ebx, eax
cmp byte [0x14069b46d], 0
mov qword [rsi + 0x50], rbx
je 0x1403059fd
test bpl, bpl
je 0x1403059fd
xor ecx, ecx
mov edx, 0x200000
mov r8d, 0x20003000
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x140305a1d
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x140305afd
mov qword [rsp + 0x68], r14
mov qword [rsi + 0x48], rax
mov eax, 0xec0
mov qword [rsp + 0x70], r15
lock xadd qword [0x14069d728], rax
movzx ecx, ax
lea rbp, [0x1406c9040]
add rcx, qword [rsi + 0x48]
lea r14, [0x1406c9280]
mov r8, r14
mov qword [rsi + 0x20], rcx
sub r8, rbp
mov rdx, rbp
call fcn.14026f9d0
mov rcx, qword [rsi + 0x20]
lea r15, [0x1406c9281]
sub rcx, rbp
lea rdi, [0x1406c9371]
add rcx, r14
lea rbx, [0x1406c9301]
cmp byte [rsi + 0x40], 0
je 0x140305a90
mov r8, rdi
mov rdx, rbx
sub r8, rbx
jmp 0x140305a99
mov r8, rbx
mov rdx, r15
sub r8, r15
call fcn.14026f9d0
lea rdx, [0x1406c9a70]
lea rax, [0x1406c9b40]
mov rcx, rdx
sub rcx, rax
mov r8, rax
add rcx, 0x10000
sub r8, rdx
and rcx, 0xffffffffffffffc0
add rcx, qword [rsi + 0x20]
call fcn.14026f9d0
sub edi, ebx
mov rax, rbx
sub eax, r15d
mov r15, qword [rsp + 0x70]
cmp byte [rsi + 0x40], 0
cmove edi, eax
mov rax, rsi
sub edi, ebp
add edi, r14d
mov r14, qword [rsp + 0x68]
mov dword [rsi + 0x2c], edi
mov rdi, qword [rsp + 0x60]
add rsp, 0x40
pop rsi
pop rbp
pop rbx
ret
lea rdx, str.Failed_to_allocate_executable_memory
lea rcx, [rsp + 0x20]
call fcn.1400319b0
lea rdx, [0x140401f38]
lea rcx, [rsp + 0x20]
call fcn.14026f8f8
int3