Function at 0x1400ffe90
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x70
mov rax, qword [0x140177090]
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 0x1400ffedf
mov edx, 0x79
lea r9, [0x1401c7528]
mov dword [rsp + 0x20], 0x2d
lea ecx, [rdx - 0x75]
lea r8d, [rdx - 0xb]
call fcn.140073540
xor eax, eax
jmp 0x14010016b
cmp edi, 0x29
jge 0x1400fff0b
mov edx, 0x79
lea r9, [0x1401c7588]
mov dword [rsp + 0x20], 0x33
lea ecx, [rdx - 0x75]
lea r8d, [rdx - 1]
call fcn.140073540
xor eax, eax
jmp 0x14010016b
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x60], r12
mov byte [rcx], 0
lea rbp, [rcx + 1]
mov qword [rsp + 0x58], r14
lea r14, [rcx + 0x15]
lea r12, [0x14014a8a0]
xor r9d, r9d
xor edx, edx
mov r8, r14
xor ecx, ecx
mov qword [rsp + 0x20], r12
call fcn.140096000
test eax, eax
je 0x1400fffdc
mov eax, edi
lea rcx, [r14 + 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 + r14 - 0x15], 1
add rcx, 0xffffffffffffffec
add rcx, r14
call sub.MSVCR120.dll_memcpy
call fcn.14006f600
test rax, rax
je 0x1400fffdc
mov rax, qword [rax + 8]
test rax, rax
je 0x1400fffdc
mov ebx, socket
mov rcx, rbp
mov edx, ebx
call rax
test eax, eax
jle 0x1400fffdc
add edi, 0xffffffec
lea r8d, [rbx + 0x35]
lea rdx, [0x1401c7558]
mov ecx, edi
call fcn.1400867c0
mov rsi, rax
test rax, rax
jne 0x1400fffe3
lea r9, [0x1401c75e8]
lea edx, [rbx + 0x65]
lea ecx, [rbx - 0x10]
lea r8d, [rbx + 0x2d]
mov dword [rsp + 0x20], 0x4c
call fcn.140073540
xor eax, eax
jmp 0x14010015c
mov r9d, ebx
mov r8, rbp
mov edx, edi
mov rcx, rax
mov qword [rsp + 0x20], r12
call fcn.1401005b0
test eax, eax
js 0x1400fffdc
mov qword [rsp + 0x50], r15
xor r15d, r15d
mov edx, r15d
test edi, edi
jle 0x14010005f
cmp edi, 0x10
jb 0x14010005f
lea eax, [rdi - 1]
movsxd rcx, eax
lea rax, [rcx + rsi]
lea r8, [rcx + r14]
cmp r14, rax
ja 0x140100028
cmp r8, rsi
jae 0x14010005f
mov eax, edi
and eax, 0x8000000f
jge 0x140100038
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, edi
sub ecx, eax
nop dword [rax]
movsxd rax, edx
add edx, 0x10
movdqu xmm1, xmmword [rax + rsi]
movdqu xmm0, xmmword [rax + r14]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
cmp edx, ecx
jl 0x140100040
movsxd rax, edx
movsxd rdx, edi
cmp rax, rdx
jge 0x140100091
mov r9, rsi
lea rcx, [rax + r14]
sub r9, r14
sub rdx, rax
nop word [rax + rax]
movzx eax, byte [r9 + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rdx
jne 0x140100080
lea rcx, [rsp + 0x30]
mov r9d, edi
mov r8, r14
mov edx, ebx
mov qword [rsp + 0x20], r12
call fcn.1401005b0
test eax, eax
jns 0x1401000b3
xor eax, eax
jmp 0x140100157
lea rcx, [rsp + 0x43]
lea rax, [rbp + 0x13]
cmp rbp, rcx
ja 0x1401000d0
lea rcx, [rsp + 0x30]
cmp rax, rcx
jae 0x1401000ea
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp]
movdqu xmm0, xmmword [rsp + 0x30]
mov r15d, reloc.WS2_32.dll_recv
pxor xmm1, xmm0
movdqu xmmword [rbp], xmm1
movsxd rax, r15d
cmp rax, rbx
jge 0x140100120
lea rdx, [rsp + 0x30]
lea rcx, [rax + rbp]
sub rdx, rbp
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 0x140100110
mov rax, qword [0x1401f2970]
test rax, rax
je 0x140100133
xor edx, edx
mov rcx, rsi
call rax
mov rcx, rsi
call qword [case.0x140054204.2]
mov r8, qword [0x1401f2970]
test r8, r8
je 0x140100152
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.140129b50
add rsp, 0x70
pop rdi
pop rsi
pop rbx
ret