Function at 0x1400112b7
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
jmp 0x14001da60
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x688
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x10a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x6a8]
mov rax, qword [0x140032040]
xor rax, rbp
mov qword [rbp + 0x658], rax
lea rcx, [0x14003a0fc]
call fcn.1400119c4
mov byte [rbp + 0x44], 1
movzx eax, byte [rbp + 0x44]
test eax, eax
je 0x14001e018
lea rdx, str.Would_you_like_to_LIST_0___UPLOAD__1__or_DOWNLOAD__2__or_EXIT__else__
lea rcx, [rbp + 0x2c8]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x2c8]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x2c8]
call fcn.1400111d1
lea rdx, str.ftp_
lea rcx, [rbp + 0x308]
call fcn.14001144c
nop
mov r9b, 1
mov r8d, 5
lea rdx, [rbp + 0x308]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x308]
call fcn.1400111d1
lea rdx, [rbp + 0x28]
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::operator___int____ptr64____ptr64]
cmp dword [rbp + 0x28], 1
je 0x14001dba6
cmp dword [rbp + 0x28], 2
je 0x14001dba6
cmp dword [rbp + 0x28], 0
je 0x14001dba6
lea rdx, str.Bye_
lea rcx, [rbp + 0x348]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x348]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x348]
call fcn.1400111d1
mov rcx, qword [rbp + 0x680]
call fcn.140011389
mov al, 1
jmp 0x14001e01a
lea rdx, str.all_files
lea rcx, [rbp + 8]
call fcn.140011311
cmp dword [rbp + 0x28], 0
je 0x14001dc5b
mov r8d, 0x1e
xor edx, edx
lea rcx, [rbp + 8]
call fcn.140011771
lea rdx, str.Please_enter_the_filename:
lea rcx, [rbp + 0x388]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x388]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x388]
call fcn.1400111d1
lea rdx, str.ftp_
lea rcx, [rbp + 0x3c8]
call fcn.14001144c
nop
mov r9b, 1
mov r8d, 5
lea rdx, [rbp + 0x3c8]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x3c8]
call fcn.1400111d1
lea rdx, [rbp + 8]
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.140011910
lea rdx, str.Sending_the_filename_to_the_server_...
lea rcx, [rbp + 0x408]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x408]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x408]
call fcn.1400111d1
mov edx, dword [rbp + 0x28]
lea rcx, [rbp + 0x448]
call fcn.140011122
mov qword [rbp + 0x638], rax
mov rax, qword [rbp + 0x638]
mov qword [rbp + 0x640], rax
mov r8, qword [rbp + 0x640]
lea rdx, str.files_id:
lea rcx, [rbp + 0x488]
call fcn.140011a0f
mov qword [rbp + 0x648], rax
mov rax, qword [rbp + 0x648]
mov qword [rbp + 0x650], rax
xor r9d, r9d
mov r8d, recv
mov rdx, qword [rbp + 0x650]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x488]
call fcn.1400111d1
nop
lea rcx, [rbp + 0x448]
call fcn.1400111d1
mov rax, qword [rbp + 0x680]
movsxd rax, dword [rax + 0x200]
xor r9d, r9d
mov r8d, 0x24
lea rdx, [rbp + 8]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_send]
mov rcx, qword [rbp + 0x680]
mov dword [rcx + 0x204], eax
mov rax, qword [rbp + 0x680]
cmp dword [rax + 0x204], 0xffffffff
jne 0x14001dd80
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r8d, eax
lea rdx, str.send_failed
mov rcx, qword [rbp + 0x680]
call fcn.1400116c7
jmp 0x14001ddbd
lea rdx, str.Filename_sent_successfully_
lea rcx, [rbp + 0x4c8]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x4c8]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x4c8]
call fcn.1400111d1
lea rdx, str.Waiting_for_the_servers_response_...
lea rcx, [rbp + 0x508]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x508]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x508]
call fcn.1400111d1
mov rax, qword [rbp + 0x680]
movsxd rax, dword [rax + 0x200]
xor r9d, r9d
mov r8d, 2
lea rdx, [rbp + 0x64]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_recv]
mov rcx, qword [rbp + 0x680]
mov dword [rcx + 0x204], eax
mov rax, qword [rbp + 0x680]
cmp dword [rax + 0x204], 0xffffffff
jne 0x14001de5c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r8d, eax
lea rdx, str.recv_failed
mov rcx, qword [rbp + 0x680]
call fcn.1400116c7
jmp 0x14001dee6
lea rdx, [rbp + 0x64]
lea rcx, [rbp + 0x548]
call fcn.14001144c
mov qword [rbp + 0x638], rax
mov rax, qword [rbp + 0x638]
mov qword [rbp + 0x640], rax
mov r8, qword [rbp + 0x640]
lea rdx, str.Servers_response_:
lea rcx, [rbp + 0x588]
call fcn.140011a0f
mov qword [rbp + 0x648], rax
mov rax, qword [rbp + 0x648]
mov qword [rbp + 0x650], rax
xor r9d, r9d
mov r8d, recv
mov rdx, qword [rbp + 0x650]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x588]
call fcn.1400111d1
nop
lea rcx, [rbp + 0x548]
call fcn.1400111d1
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x634], eax
cmp dword [rbp + 0x634], 0
je 0x14001df30
cmp dword [rbp + 0x634], 1
je 0x14001df0c
cmp dword [rbp + 0x634], 2
je 0x14001df1e
jmp 0x14001df3e
lea rdx, [rbp + 8]
mov rcx, qword [rbp + 0x680]
call fcn.140011573
jmp 0x14001df51
lea rdx, [rbp + 8]
mov rcx, qword [rbp + 0x680]
call fcn.140011492
jmp 0x14001df51
mov rcx, qword [rbp + 0x680]
call fcn.14001137f
jmp 0x14001df51
mov rcx, qword [rbp + 0x680]
call fcn.140011389
mov al, 1
jmp 0x14001e01a
lea rdx, str.Would_you_like_to_operate_again___y_n_
lea rcx, [rbp + 0x5c8]
call fcn.14001144c
nop
xor r9d, r9d
mov r8d, recv
lea rdx, [rbp + 0x5c8]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x5c8]
call fcn.1400111d1
lea rdx, str.ftp_
lea rcx, [rbp + 0x608]
call fcn.14001144c
nop
mov r9b, 1
mov r8d, 5
lea rdx, [rbp + 0x608]
mov rcx, qword [rbp + 0x680]
call fcn.140011866
nop
lea rcx, [rbp + 0x608]
call fcn.1400111d1
lea rdx, [rbp + 0x64]
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.140011910
lea rdx, [0x14002cac0]
lea rcx, [rbp + 0x64]
call fcn.140011ad2
test eax, eax
je 0x14001dff3
mov byte [rbp + 0x44], 0
lea rdx, [0x14002cac4]
lea rcx, [rbp + 0x64]
call fcn.140011ad2
test eax, eax
jne 0x14001e013
mov rcx, qword [rbp + 0x680]
call fcn.140011389
jmp 0x14001daad
mov al, 1
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x14002b480]
call fcn.140011816
mov rax, rdi
mov rcx, qword [rbp + 0x658]
xor rcx, rbp
call fcn.1400114ba
lea rsp, [rbp + 0x668]
pop rdi
pop rbp
ret