Function at 0x140090880
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rsi, r9
mov r12, r8
mov r14, rdx
mov r15, rcx
mov rax, qword [rcx + 0x28]
cmp qword [rcx + 0x20], rax
jne 0x1400908ba
call fcn.140041540
mov rcx, qword [r15 + 0x10]
mov rax, qword [rcx]
call qword [rax]
mov r13, rax
mov rcx, qword [r15 + 0x10]
mov rdx, qword [rcx]
call qword [rdx]
mov rcx, qword [r15 + 8]
sub rcx, rax
mov qword [rbp - 0x60], rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x58], xmm0
xor eax, eax
mov qword [rbp - 0x48], rax
xor edi, edi
test r13, r13
je 0x14009092d
movabs rax, 0x7fffffffffffffff
cmp r13, rax
ja 0x140090c56
lea edx, [rdi + 1]
mov rcx, r13
call fcn.140041590
mov rdi, rax
mov qword [rbp - 0x58], rax
lea rbx, [rax + r13]
mov qword [rbp - 0x48], rbx
mov r8, r13
xor edx, edx
mov rcx, rax
call fcn.140154200
mov qword [rbp - 0x50], rbx
test rsi, rsi
je 0x140090c1f
mov rax, r13
and eax, 0x1f
mov qword [rbp + 0x40], rax
mov rbx, r13
sub rbx, rax
nop word [rax + rax]
mov r9, qword [r15 + 0x38]
test rbx, rbx
je 0x1400909e4
mov rcx, r9
mov r8, r14
sub r8, r9
mov rdx, rdi
sub rdx, r9
nop dword [rax]
movups xmm0, xmmword [r8 + rcx]
movups xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [r8 + rcx + 0x10]
movups xmmword [rbp - 0x30], xmm1
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x10], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x20]
movdqu xmm0, xmmword [rbp + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax - 0x40], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400909a0
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rdx + rcx], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rdx + rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r9
cmp rax, rbx
jne 0x140090970
mov rax, qword [rbp + 0x40]
cmp rbx, r13
je 0x140090a15
lea rcx, [rbx + r14]
sub r9, r14
mov r8, rdi
sub r8, r14
mov rdx, rax
nop dword [rax]
movzx eax, byte [r9 + rcx]
xor al, byte [rcx]
mov byte [r8 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140090a00
mov r8, r13
mov rdx, rdi
mov rcx, qword [r15 + 0x18]
call fcn.140041490
mov rcx, qword [r15 + 0x18]
lea rsi, [r12 + r13]
mov rax, qword [rcx]
lea rdx, [r14 + r13]
mov r9, qword [rbp - 0x60]
mov r8, rsi
call qword [rax + Ordinal_41]
mov rcx, qword [r15 + 0x10]
mov rax, qword [rcx]
mov r8, qword [rbp - 0x60]
mov rdx, rsi
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [r15 + 0x10]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + Ordinal_26]
test rbx, rbx
je 0x140090af0
mov rcx, rdi
mov r8, r14
sub r8, rdi
mov rdx, r12
sub rdx, rdi
nop dword [rax]
nop word [rax + rax]
movups xmm0, xmmword [r8 + rcx]
movups xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [r8 + rcx + 0x10]
movups xmmword [rbp - 0x30], xmm1
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x10], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x20]
movdqu xmm0, xmmword [rbp + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax - 0x40], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140090ab0
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rdx + rcx], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rdx + rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, rdi
cmp rax, rbx
jne 0x140090a80
mov r11, qword [rbp + 0x40]
cmp rbx, r13
je 0x140090b25
lea rcx, [rbx + r14]
mov r8, rdi
sub r8, r14
mov r9, r12
sub r9, r14
mov rdx, r11
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140090b10
mov r10, qword [r15 + 0x20]
test rbx, rbx
je 0x140090bb0
mov rcx, r10
mov r8, r12
sub r8, r10
mov rdx, rdi
sub rdx, r10
movups xmm0, xmmword [r8 + rcx]
movups xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [r8 + rcx + 0x10]
movups xmmword [rbp - 0x30], xmm1
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x10], xmm1
xor eax, eax
nop word [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x20]
movdqu xmm0, xmmword [rbp + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax - 0x40], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x140090b70
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rdx + rcx], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rdx + rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r10
cmp rax, rbx
jne 0x140090b41
cmp rbx, r13
je 0x140090be5
lea rcx, [rbx + r12]
sub r10, r12
mov r9, rdi
sub r9, r12
mov r8, r11
nop word [rax + rax]
movzx eax, byte [r10 + rcx]
xor al, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x140090bd0
mov r8, r13
mov rdx, rdi
mov rcx, qword [r15 + 0x18]
call fcn.140041490
mov rcx, qword [r15 + 0x18]
mov rax, qword [rcx]
mov r9, qword [rbp - 0x60]
mov r8, rsi
mov rdx, rsi
call qword [rax + Ordinal_41]
add r14, qword [r15 + 8]
add r12, qword [r15 + 8]
sub qword [rbp + 0x58], 1
mov rax, qword [rbp + 0x40]
jne 0x140090950
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x140090c3b
mov rdx, qword [rbp - 0x48]
sub rdx, rcx
mov r8d, 1
call fcn.140041650
nop
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14000d960
int3