Function at 0x180001350
Capabilities:
Send data
Send data on socket
Set socket configuration

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x4f0]
sub rsp, 0x5f0
mov rax, qword [0x18004f040]
xor rax, rsp
mov qword [rbp + 0x4e0], rax
mov rbx, rdx
mov rdi, rcx
xor edx, edx
lea rcx, [rbp + 0x1b0]
mov r8d, 0x104
call fcn.1800388f0
xor edx, edx
lea rcx, [rbp + 0x2c0]
mov r8d, 0x104
call fcn.1800388f0
mov r9b, 0x20
lea rdx, [rbp + 0x1b0]
mov rcx, rbx
call fcn.180004110
test rax, rax
je 0x1800013d4
mov r9, rax
lea r8, [0x180045950]
mov edx, 0x104
lea rcx, [rbp + 0x2c0]
call fcn.180002950
lea rdx, str.QUIT
mov qword [rsp + 0x620], rsi
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x18000144d
mov rsi, qword [rdi]
lea r8, [rsp + 0x38]
xor ebx, ebx
lea edi, [rax + 4]
mov rcx, rsi
mov dword [rsp + 0x30], ebx
mov edx, 0x8004667e
mov dword [rsp + 0x38], ebx
call qword [sym.imp.WS2_32.dll_ioctlsocket]
nop word [rax + rax]
movsxd rax, ebx
lea rdx, [rsp + 0x30]
add rdx, rax
xor r9d, r9d
mov r8d, edi
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x180001446
add ebx, eax
sub edi, eax
test edi, edi
jg 0x180001420
xor eax, eax
jmp 0x180001682
lea rdx, str.LIST
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x180001478
lea rdx, [rbp + 0x2c0]
mov rcx, rdi
call fcn.1800016b0
jmp 0x18000167d
lea rdx, str.DELE
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x1800014a3
lea rdx, [rbp + 0x2c0]
mov rcx, rdi
call fcn.180001b10
jmp 0x18000167d
lea rdx, str.SIZE
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x1800015d1
xor edx, edx
lea rcx, [rbp + 0x80]
mov r8d, 0x130
call fcn.1800388f0
lea r8, [rdi + 0x10]
lea r9, [rbp + 0x2c0]
lea rdx, [0x1800459b4]
lea rcx, [rbp + 0x3d0]
call fcn.1800029c0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x3d0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, 0xffffffffffffffff
je 0x18000157e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [rsp + 0x40]
mov rdx, 0xffffffffffffffff
mov ecx, dword [rsp + 0x5c]
mov dword [rbp + 0x80], eax
mov rax, qword [rsp + 0x44]
mov qword [rbp + 0x84], rax
mov rax, qword [rsp + 0x4c]
mov qword [rbp + 0x8c], rax
mov rax, qword [rsp + 0x54]
mov qword [rbp + 0x94], rax
mov eax, dword [rsp + 0x60]
shl rcx, 0x20
add rcx, rax
lea rax, [rsp + 0x6c]
mov qword [rbp + 0xa0], rcx
inc rdx
cmp byte [rax + rdx], 0
jne 0x180001561
inc rdx
lea r8, [rsp + 0x6c]
lea rcx, [rbp + 0xa8]
call fcn.18001ac84
mov rsi, qword [rdi]
lea r8, [rsp + 0x30]
xor ebx, ebx
mov rcx, rsi
mov edx, 0x8004667e
mov dword [rsp + 0x30], ebx
mov edi, 8
call qword [sym.imp.WS2_32.dll_ioctlsocket]
nop
movsxd rax, ebx
lea rdx, [rbp + 0xa0]
add rdx, rax
xor r9d, r9d
mov r8d, edi
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x18000167d
add ebx, eax
sub edi, eax
test edi, edi
jg 0x1800015a0
jmp 0x18000167d
lea rdx, str.STOR
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x1800015fc
lea rdx, [rbp + 0x2c0]
mov rcx, rdi
call fcn.1800026a0
jmp 0x18000167d
lea rdx, str.FILE
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x180001624
lea rdx, [rbp + 0x2c0]
mov rcx, rdi
call fcn.180001fe0
jmp 0x18000167d
lea rdx, str.RETR
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x18000164c
lea rdx, [rbp + 0x2c0]
mov rcx, rdi
call fcn.1800022e0
jmp 0x18000167d
lea rdx, str.REST
lea rcx, [rbp + 0x1b0]
call fcn.18001ba2c
test eax, eax
jne 0x18000167d
lea rcx, [rbp + 0x2c0]
call fcn.18001b778
xor edx, edx
mov qword [rdi + 8], rax
mov rcx, rdi
call fcn.1800012b0
mov eax, 1
mov rsi, qword [rsp + 0x620]
mov rcx, qword [rbp + 0x4e0]
xor rcx, rsp
call fcn.180011100
add rsp, 0x5f0
pop rdi
pop rbx
pop rbp
ret