Function at 0x140165fe0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x70
mov rax, qword [0x1402581e0]
xor rax, rsp
mov qword [rsp + 0x48], rax
lea edi, [rdx - 1]
mov ebx, r9d
mov rsi, r8
lea eax, [rdi - 0x29]
cmp r9d, eax
jle 0x14016602f
mov edx, 0x79
lea r9, [0x1402a89c8]
mov dword [rsp + 0x20], 0x2d
lea ecx, [rdx - 0x75]
lea r8d, [rdx - 0xb]
call fcn.1400d9be0
xor eax, eax
jmp 0x1401662cb
cmp edi, 0x29
jge 0x14016605b
mov edx, 0x79
lea r9, [0x1402a8a28]
mov dword [rsp + 0x20], 0x33
lea ecx, [rdx - 0x75]
lea r8d, [rdx - 1]
call fcn.1400d9be0
xor eax, eax
jmp 0x1401662cb
mov qword [rsp + 0x68], rbp
lea rbp, [rcx + 0x15]
mov qword [rsp + 0x60], r12
mov byte [rcx], 0
lea r12, [0x140228860]
mov qword [rsp + 0x58], r14
lea r14, [rcx + 1]
mov r8, rbp
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], r12
call fcn.1400fb900
test eax, eax
je 0x14016612b
mov eax, edi
lea rcx, [rbp + 0x14]
xor edx, edx
sub eax, ebx
sub eax, 0x29
movsxd r8, eax
call sub.MSVCR120.dll_memset
movsxd rax, ebx
movsxd rcx, edi
sub rcx, rax
mov r8, rbx
mov rdx, rsi
mov byte [rcx + rbp - 0x15], 1
add rcx, 0xffffffffffffffec
add rcx, rbp
call sub.MSVCR120.dll_memcpy
call fcn.1400d8c40
test rax, rax
je 0x14016612b
mov rax, qword [rax + 8]
test rax, rax
je 0x14016612b
mov ebx, setsockopt
mov rcx, r14
mov edx, ebx
call rax
test eax, eax
jle 0x14016612b
add edi, 0xffffffec
lea r8d, [rbx + 0x35]
lea rdx, [0x1402a89f8]
mov ecx, edi
call fcn.1400ecea0
mov rsi, rax
test rax, rax
jne 0x140166132
lea r9, [0x1402a8a88]
lea edx, [rbx + 0x65]
lea ecx, [rbx - 0x10]
lea r8d, [rbx + 0x2d]
mov dword [rsp + 0x20], 0x4c
call fcn.1400d9be0
xor eax, eax
jmp 0x1401662bc
mov r9d, ebx
mov r8, r14
mov edx, edi
mov rcx, rax
mov qword [rsp + 0x20], r12
call fcn.140166720
test eax, eax
js 0x14016612b
mov qword [rsp + 0x50], r15
xor r15d, r15d
mov edx, r15d
test edi, edi
jle 0x1401661c7
cmp edi, 0x20
jb 0x1401661c7
lea eax, [rdi - 1]
movsxd rcx, eax
lea rax, [rcx + rsi]
lea r8, [rcx + rbp]
cmp rbp, rax
ja 0x140166177
cmp r8, rsi
jae 0x1401661c7
mov eax, edi
and eax, 0x8000001f
jge 0x140166187
dec eax
or eax, 0xffffffe0
inc eax
mov r8d, edi
sub r8d, eax
nop dword [rax]
movsxd rax, edx
movdqu xmm0, xmmword [rax + rbp]
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + rbp], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movsxd rcx, eax
movdqu xmm1, xmmword [rcx + rsi]
movdqu xmm0, xmmword [rcx + rbp]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbp], xmm1
cmp edx, r8d
jl 0x140166190
movsxd rax, edx
movsxd rdx, edi
cmp rax, rdx
jge 0x1401661f1
mov r8, rsi
lea rcx, [rax + rbp]
sub r8, rbp
sub rdx, rax
nop
movzx eax, byte [r8 + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rdx
jne 0x1401661e0
lea rcx, [rsp + 0x30]
mov r9d, edi
mov r8, rbp
mov edx, ebx
mov qword [rsp + 0x20], r12
call fcn.140166720
test eax, eax
jns 0x140166213
xor eax, eax
jmp 0x1401662b7
lea rcx, [rsp + 0x43]
lea rax, [r14 + 0x13]
cmp r14, rcx
ja 0x140166230
lea rcx, [rsp + 0x30]
cmp rax, rcx
jae 0x14016624a
nop dword [rax + rax]
movdqu xmm1, xmmword [r14]
movdqu xmm0, xmmword [rsp + 0x30]
mov r15d, reloc.WS2_32.dll_recv
pxor xmm1, xmm0
movdqu xmmword [r14], xmm1
movsxd rax, r15d
cmp rax, rbx
jge 0x140166280
lea rdx, [rsp + 0x30]
lea rcx, [rax + r14]
sub rdx, r14
sub rbx, rax
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rbx
jne 0x140166270
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140166293
xor edx, edx
mov rcx, rsi
call rax
mov rcx, rsi
call qword [sub.MSVCR120.dll_free]
mov r8, qword [0x1402ddc88]
test r8, r8
je 0x1401662b2
mov edx, 1
xor ecx, ecx
call r8
mov eax, 1
mov r15, qword [rsp + 0x50]
mov r12, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov r14, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1401bddc0
add rsp, 0x70
pop rdi
pop rsi
pop rbx
ret