Function at 0x140052d90
Capabilities:
Download and write a file
Receive and write data from server to client
Receive data
Receive data on socket
Send data
Send data on socket
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x58]
sub rsp, 0x150
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
mov rax, qword [0x1400c1fc0]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov r8d, edx
mov ebx, ecx
xor edi, edi
cmp byte [0x1400c3da0], dil
je 0x1400532fc
cmp dword [0x1400c7828], edi
jne 0x140053221
lea r9, [rsp + 0x4d]
test edx, edx
jns 0x140052e30
neg r8d
nop dword [rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140052df0
dec r9
mov byte [r9], 0x2d
jmp 0x140052e5a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140052e30
lea r8, [rsp + 0x4d]
mov rdx, r9
lea rcx, [rbp - 0x28]
call fcn.140005800
nop
lea r9, [rsp + 0x4d]
test ebx, ebx
jns 0x140052eb0
neg ebx
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul ebx
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub bl, cl
add bl, 0x30
mov byte [r9], bl
mov ebx, edx
test edx, edx
jne 0x140052e80
dec r9
mov byte [r9], 0x2d
jmp 0x140052ed6
dec r9
mov eax, 0xcccccccd
mul ebx
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub bl, cl
add bl, 0x30
mov byte [r9], bl
mov ebx, edx
test edx, edx
jne 0x140052eb0
lea r8, [rsp + 0x4d]
mov rdx, r9
lea rcx, [rbp - 0x68]
call fcn.140005800
nop
mov r9d, 8
lea r8, str.km.move_
lea rcx, [rbp - 0x68]
call fcn.140047160
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], sendto
mov byte [rax], 0
mov r8d, 1
lea rdx, [0x1400afc4c]
lea rcx, [rsp + 0x58]
call fcn.1400466c0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x48], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], sendto
mov byte [rax], 0
lea r9, [rbp - 0x28]
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x78]
call fcn.140069820
nop
mov r8d, 5
lea rdx, str._3__r_n
lea rcx, [rsp + 0x78]
call fcn.1400466c0
movups xmm7, xmmword [rax]
movups xmmword [rbp - 0x48], xmm7
movups xmm6, xmmword [rax + 0x10]
movups xmmword [rbp - 0x38], xmm6
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], sendto
mov byte [rax], 0
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x140052fee
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052fe9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140052fe9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007cbf0
movdqa xmm0, xmmword [0x1400b15e0]
movdqu xmmword [rbp - 0x78], xmm0
mov byte [rsp + 0x78], 0
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140053048
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005303b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14005303b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007cbf0
movdqa xmm0, xmmword [0x1400b15e0]
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x140053090
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140053083
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140053083
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007cbf0
movdqa xmm0, xmmword [0x1400b15e0]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x58], 0
mov rdx, qword [rbp - 0x50]
cmp rdx, 0xf
jbe 0x1400530e1
inc rdx
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400530d4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400530d4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007cbf0
movdqa xmm0, xmmword [0x1400b15e0]
movdqu xmmword [rbp - 0x58], xmm0
mov byte [rbp - 0x68], 0
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140053128
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140053123
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140053123
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007cbf0
lea rdx, [rbp - 0x48]
movq rcx, xmm7
psrldq xmm6, 8
movq rax, xmm6
cmp rax, 0xf
cmova rdx, rcx
lea rcx, [rbp - 8]
sub rcx, rdx
nop word [rax + rax]
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x140053150
lea rax, [rbp - 8]
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140053170
mov rax, qword [0x1400c3bd0]
cmp rax, 0xffffffffffffffff
je 0x1400531da
xor r8d, r8d
lea rdx, [rsp + 0x34]
mov rcx, qword [0x1400c3bd0]
call qword [sym.imp.KERNEL32.dll_ClearCommError]
test eax, eax
je 0x1400531b8
cmp dword [rsp + 0x34], 0
jbe 0x1400531b8
mov edx, 5
mov rcx, qword [0x1400c3bd0]
call qword [sym.imp.KERNEL32.dll_PurgeComm]
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x30]
mov r8d, ebx
lea rdx, [rbp - 8]
mov rcx, qword [0x1400c3bd0]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rdx, qword [rbp - 0x30]
cmp rdx, 0xf
jbe 0x1400532fc
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140053217
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140053217
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14007cbf0
jmp 0x1400532fc
mov rcx, qword [0x1400d0b80]
test rcx, rcx
je 0x1400532fc
inc dword [0x1400d0348]
mov dword [0x1400d034c], 0xaede7346
mov dword [0x1400d0344], 0xc8
mov dword [0x1400d030c], ebx
mov dword [0x1400d0310], r8d
movups xmm0, xmmword [0x1400d0308]
movaps xmmword [0x1400d0350], xmm0
movups xmm1, xmmword [0x1400d0318]
movaps xmmword [0x1400d0360], xmm1
movups xmm0, xmmword [0x1400d0328]
movaps xmmword [0x1400d0370], xmm0
movsd xmm1, qword [0x1400d0338]
movsd qword [0x1400d0380], xmm1
mov qword [0x1400d030c], rdi
mov dword [rsp + 0x28], reloc.WS2_32.dll_recv
lea rax, [0x1400d0b70]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 0x48
lea rdx, [0x1400d0340]
call qword [sym.imp.WS2_32.dll_sendto]
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 0x400
lea rdx, [0x1400d0760]
mov rcx, qword [0x1400d0b80]
call qword [sym.imp.WS2_32.dll_recvfrom]
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.14007c870
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret