Function at 0x180227950
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xb0
mov r10, r9
mov rdi, r8
mov r15, rdx
mov dword [rbp - 0x61], 0
test r9, r9
jns 0x180227995
mov r9b, 0x40
jmp 0x1802279ad
xor r9b, r9b
mov eax, 1
cmp rax, r10
jae 0x1802279ad
add rax, rax
inc r9b
cmp rax, r10
jb 0x1802279a2
movzx eax, r9b
imul rax, qword [rbp + 0x7f]
mov qword [rbp - 0x29], rax
mov r12, r10
sub r12, rax
mov qword [rbp - 0x31], r12
dec rax
shr rax, 5
lea rbx, [rax*4 + 4]
mov edx, 1
mov rcx, rbx
call fcn.18009de10
mov rsi, rax
mov qword [rbp - 0x21], rax
lea r13, [rax + rbx]
mov qword [rbp - 0x39], r13
mov qword [rbp - 0x11], r13
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.180283390
mov qword [rbp - 0x19], r13
mov r14, qword [rdi]
mov rcx, r12
shr rcx, 3
mov qword [rbp + 0x7f], rcx
xor r12d, r12d
test rcx, rcx
je 0x180227b88
mov rbx, r13
sub rbx, rsi
mov r13, qword [rbp + 0x67]
nop dword [rax + rax]
mov edi, 1
lea r15d, [rdi + 7]
nop dword [rax]
mov rax, qword [r13]
test byte [r12 + rax], dil
je 0x180227b61
mov r11, rbx
and r11d, 0x1f
mov r8, rbx
sub r8, r11
mov r9, r14
je 0x180227adf
mov rcx, rsi
sub r9, rsi
nop word [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x59], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x49], xmm1
movups xmm0, xmmword [r9 + rcx]
movups xmmword [rbp - 9], xmm0
movups xmm1, xmmword [r9 + rcx + 0x10]
movups xmmword [rbp + 7], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 9]
movdqu xmm0, xmmword [rbp + rax - 0x59]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x59], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x180227aa0
movups xmm0, xmmword [rbp - 0x59]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x49]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, rsi
cmp rax, r8
jne 0x180227a70
jmp 0x180227ae2
sub r9, rsi
cmp r8, rbx
je 0x180227b61
cmp r11, 8
jb 0x180227b43
lea rcx, [rsi + r8]
lea rdx, [rbx - 1]
add rdx, rsi
lea r10, [r8 + r14]
lea rax, [rbx - 1]
add rax, r14
cmp rcx, rax
ja 0x180227b0d
cmp rdx, r10
jae 0x180227b43
and r11d, 7
mov rax, rbx
sub rax, r11
nop word [rax + rax]
movq xmm1, qword [rcx + r9]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add r8, 8
lea rcx, [rcx + 8]
cmp r8, rax
jne 0x180227b20
cmp r8, rbx
je 0x180227b61
lea rcx, [rsi + r8]
mov rdx, rbx
sub rdx, r8
nop dword [rax]
movzx eax, byte [rcx + r9]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x180227b50
add r14, rbx
rol edi, 1
sub r15, 1
jne 0x180227a40
inc r12
mov rcx, qword [rbp + 0x7f]
cmp r12, rcx
jb 0x180227a30
mov r13, qword [rbp - 0x39]
mov r15, qword [rbp + 0x67]
mov r12, qword [rbp - 0x31]
mov rdi, r12
and edi, 7
jbe 0x180227cd4
mov ebx, 1
sub r13, rsi
mov rax, qword [r15]
test byte [rcx + rax], bl
je 0x180227cc1
mov r11, r13
and r11d, 0x1f
mov rdx, r13
sub rdx, r11
mov r9, r14
je 0x180227c3f
mov rcx, rsi
sub r9, rsi
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x59], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x49], xmm1
movups xmm0, xmmword [rcx + r9]
movups xmmword [rbp - 9], xmm0
movups xmm1, xmmword [rcx + r9 + 0x10]
movups xmmword [rbp + 7], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 9]
movdqu xmm0, xmmword [rbp + rax - 0x59]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x59], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x180227c00
movups xmm0, xmmword [rbp - 0x59]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x49]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, rsi
cmp rax, rdx
jne 0x180227bd0
jmp 0x180227c42
sub r9, rsi
cmp rdx, r13
je 0x180227cc1
cmp r11, 8
jb 0x180227ca3
lea rcx, [rsi + rdx]
lea r8, [rsi - 1]
add r8, r13
lea r10, [rdx + r14]
lea rax, [r13 - 1]
add rax, r14
cmp rcx, rax
ja 0x180227c6d
cmp r8, r10
jae 0x180227ca3
and r11d, 7
mov rax, r13
sub rax, r11
nop word [rax + rax]
movq xmm1, qword [rcx + r9]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, rax
jne 0x180227c80
cmp rdx, r13
je 0x180227cc1
lea rcx, [rsi + rdx]
mov r8, r13
sub r8, rdx
nop dword [rax]
movzx eax, byte [rcx + r9]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x180227cb0
add r14, r13
rol ebx, 1
sub rdi, 1
mov rcx, qword [rbp + 0x7f]
jne 0x180227ba0
mov rax, qword [rbp - 0x29]
mov qword [rsp + 0x20], rax
mov r9, r12
lea r8, [rbp - 0x21]
mov rdx, r15
mov rbx, qword [rbp + 0x5f]
mov rcx, rbx
call fcn.180227750
mov dword [rbp - 0x61], 1
mov rdx, qword [rbp + 0x77]
add rdx, 7
shr rdx, 3
mov rcx, rbx
call fcn.18009c590
nop
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180227d2b
mov rdx, qword [rbp - 0x11]
sub rdx, rcx
mov r8d, 1
call fcn.18009df10
nop
mov rax, rbx
mov rbx, qword [rsp + 0x100]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret