Function at 0x401550
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Initialize winsock library
Read and send data from client to server
Read file on windows
Resolve dns
Send data
Send data on socket

Disassembly:
push rbp
sub rsp, 0x5f0
lea rbp, [rsp + 0x80]
call sym.__main
lea rax, [rbp + 0x3b0]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WSOCK32.dll_WSAStartup]
call rax
mov r8d, 6
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WSOCK32.dll_socket]
call rax
mov qword [rbp + 0x568], rax
cmp qword [rbp + 0x568], 0xffffffffffffffff
jne 0x4015d3
lea rdx, str.create_socket_error
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [0x00405390]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov eax, 0xffffffff
jmp 0x401843
lea rcx, str.10.68.163.87
mov rax, qword [sym.imp.WSOCK32.dll_gethostbyname]
call rax
mov qword [rbp + 0x560], rax
cmp qword [rbp + 0x560], 0
jne 0x401620
lea rdx, str.Error:_No_such_host.
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [0x00405390]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov ecx, 1
call sym.exit
mov rax, qword [rbp + 0x560]
mov rdx, rax
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
call sym.std::ostream::operator___void_const_
lea rax, [rbp + 0x3a0]
mov r8d, 0x10
mov edx, 0
mov rcx, rax
call sym.memset
mov word [rbp + 0x3a0], 2
mov rax, qword [rbp + 0x560]
movzx eax, word [rax + 0x12]
movsx rcx, ax
mov rax, qword [rbp + 0x560]
mov rax, qword [rax + 0x18]
mov rdx, qword [rax]
lea rax, [rbp + 0x3a0]
add rax, 4
mov r8, rcx
mov rcx, rax
call sym.memcpy
mov ecx, 0x6987
mov rax, qword [sym.imp.WSOCK32.dll_htons]
call rax
mov word [rbp + 0x3a2], ax
lea rax, [rbp + 0x3a0]
mov rcx, qword [rbp + 0x568]
mov r8d, 0x10
mov rdx, rax
mov rax, qword [sym.imp.WSOCK32.dll_connect]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x4016f7
lea rdx, str.connect_error
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [0x00405390]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov eax, 0xffffffff
jmp 0x401843
lea rdx, [0x00405045]
lea rcx, str.firework.mp4
call sym.fopen
mov qword [rbp + 0x558], rax
cmp qword [rbp + 0x558], 0
jne 0x401747
lea rdx, str.open_file_error
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [0x00405390]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov eax, 0xffffffff
jmp 0x401843
mov rdx, qword [rbp + 0x558]
lea rax, [rbp - 0x60]
mov r9, rdx
mov r8d, 0x400
mov edx, 1
mov rcx, rax
call sym.fread
mov qword [rbp + 0x550], rax
cmp qword [rbp + 0x550], 0
je 0x401813
mov rax, qword [rbp + 0x550]
mov edx, eax
lea rax, [rbp - 0x60]
mov rcx, qword [rbp + 0x568]
mov r9d, 0
mov r8d, edx
mov rdx, rax
mov rax, qword [sym.imp.WSOCK32.dll_send]
call rax
mov dword [rbp + 0x54c], eax
mov eax, dword [rbp + 0x54c]
cdqe
cmp qword [rbp + 0x550], rax
jbe 0x4017e1
lea rdx, str.send_error
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [0x00405390]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
jmp 0x401813
mov rax, qword [rbp + 0x550]
mov rdx, rax
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
call sym.std::ostream::operator___unsigned_long_long_
lea rax, [rbp - 0x60]
mov r8d, 0x400
mov edx, 0
mov rcx, rax
call sym.memset
jmp 0x401747
mov rax, qword [rbp + 0x558]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x568]
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WSOCK32.dll_WSACleanup]
call rax
mov eax, 0
add rsp, 0x5f0
pop rbp
ret