Function at 0x140117030
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r12
push rdi
push rsi
mov rsi, rcx
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x20
mov r9, qword [rcx + 0xc8]
test r8, r8
je 0x140117304
mov rbx, rdx
mov rdi, r8
mov r12d, 0x88
mov rax, r12
sub rax, r9
cmp rax, rdi
cmova rax, rdi
test rax, rax
je 0x1401172e9
lea rdx, [rsi + r9]
lea r10, [rbx + 1]
mov r8, rdx
lea rcx, [rax - 1]
sub r8, r10
cmp r8, 0xe
jbe 0x140117340
cmp rcx, 6
jbe 0x140117340
cmp rcx, 0xe
jbe 0x14011735c
movdqu xmm0, xmmword [rdx]
movdqu xmm2, xmmword [rbx]
mov rcx, rax
shr rcx, 4
pxor xmm0, xmm2
movups xmmword [rdx], xmm0
cmp rcx, 1
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x10]
movdqu xmm3, xmmword [rbx + 0x10]
pxor xmm0, xmm3
movups xmmword [rdx + 0x10], xmm0
cmp rcx, 2
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x20]
movdqu xmm4, xmmword [rbx + 0x20]
pxor xmm0, xmm4
movups xmmword [rdx + 0x20], xmm0
cmp rcx, 3
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x30]
movdqu xmm5, xmmword [rbx + 0x30]
pxor xmm0, xmm5
movups xmmword [rdx + 0x30], xmm0
cmp rcx, 4
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x40]
movdqu xmm5, xmmword [rbx + 0x40]
pxor xmm0, xmm5
movups xmmword [rdx + 0x40], xmm0
cmp rcx, 5
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x50]
movdqu xmm4, xmmword [rbx + 0x50]
pxor xmm0, xmm4
movups xmmword [rdx + 0x50], xmm0
cmp rcx, 6
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x60]
movdqu xmm3, xmmword [rbx + 0x60]
pxor xmm0, xmm3
movups xmmword [rdx + 0x60], xmm0
cmp rcx, 7
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x70]
movdqu xmm2, xmmword [rbx + 0x70]
pxor xmm0, xmm2
movups xmmword [rdx + 0x70], xmm0
cmp rcx, 8
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x80]
movdqu xmm5, xmmword [rbx + 0x80]
pxor xmm0, xmm5
movups xmmword [rdx + 0x80], xmm0
cmp rcx, 9
je 0x140117210
movdqu xmm0, xmmword [rdx + 0x90]
movdqu xmm4, xmmword [rbx + 0x90]
pxor xmm0, xmm4
movups xmmword [rdx + 0x90], xmm0
cmp rcx, 0xa
je 0x140117210
movdqu xmm0, xmmword [rdx + 0xa0]
movdqu xmm3, xmmword [rbx + 0xa0]
pxor xmm0, xmm3
movups xmmword [rdx + 0xa0], xmm0
cmp rcx, 0xb
je 0x140117210
movdqu xmm0, xmmword [rdx + 0xb0]
movdqu xmm2, xmmword [rbx + 0xb0]
pxor xmm0, xmm2
movups xmmword [rdx + 0xb0], xmm0
nop dword [rax + rax]
mov rdx, rax
and rdx, 0xfffffffffffffff0
test al, 0xf
je 0x1401172e9
mov r8, rax
sub r8, rdx
lea rcx, [r8 - 1]
cmp rcx, 6
jbe 0x14011725a
lea rcx, [rdx + r9]
movq xmm0, qword [rbx + rdx]
add rcx, rsi
movq xmm1, qword [rcx]
pxor xmm0, xmm1
movq qword [rcx], xmm0
mov rcx, r8
and rcx, 0xfffffffffffffff8
add rdx, rcx
cmp r8, rcx
je 0x1401172e9
lea rcx, [r9 + rdx]
movzx r8d, byte [rbx + rdx]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 1]
cmp rax, rcx
jbe 0x1401172e9
add rcx, r9
movzx r8d, byte [rbx + rdx + 1]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 2]
cmp rax, rcx
jbe 0x1401172e9
add rcx, r9
movzx r8d, byte [rbx + rdx + 2]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 3]
cmp rax, rcx
jbe 0x1401172e9
add rcx, r9
movzx r8d, byte [rbx + rdx + 3]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 4]
cmp rax, rcx
jbe 0x1401172e9
add rcx, r9
movzx r8d, byte [rbx + rdx + 4]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 5]
cmp rax, rcx
jbe 0x1401172e9
add rcx, r9
movzx r8d, byte [rbx + rdx + 5]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 6]
cmp rax, rcx
jbe 0x1401172e9
add rcx, r9
movzx edx, byte [rbx + rdx + 6]
xor byte [rsi + rcx], dl
add r9, rax
add rbx, rax
sub rdi, rax
cmp r9, 0x88
je 0x140117320
test rdi, rdi
jne 0x140117060
mov qword [rsi + 0xc8], r9
lea rsp, [rbp - 0x20]
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rcx, rsi
call fcn.1401628e0
xor r9d, r9d
test rdi, rdi
jne 0x140117060
jmp 0x140117304
xor ecx, ecx
nop word [rax + rax]
movzx r8d, byte [rbx + rcx]
xor byte [rdx + rcx], r8b
add rcx, 1
cmp rax, rcx
jne 0x140117348
jmp 0x1401172e9
mov r8, rax
xor edx, edx
jmp 0x14011722f