Function at 0x1400273c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
push rdi
push r14
sub rsp, 0x48
mov r11d, dword [rsp + 0x90]
mov r10, rcx
mov ecx, r9d
mov edi, edx
call fcn.14000a4c0
mov r14d, eax
test eax, eax
js 0x140027782
mov qword [rsp + 0x60], rbx
mov edx, 0xff
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x40], r12
lea r12d, [r11 - 1]
and r12d, 7
mov qword [rsp + 0x38], r13
mov ecx, r12d
mov qword [rsp + 0x30], r15
shl edx, cl
test byte [r10], dl
jne 0x14002775f
test r12d, r12d
lea ecx, [rdi - 1]
lea rbx, [r10 + 1]
cmovne ecx, edi
cmovne rbx, r10
mov esi, ecx
sub esi, eax
sub esi, 1
jns 0x140027449
mov eax, 0xffffff16
jmp 0x140027764
mov ebp, dword [rsp + 0x88]
cmp ebp, 0xffffffff
jne 0x14002746d
mov ebp, r14d
cmp r11d, 0x400
jne 0x14002747f
cmp r14d, 0x40
jne 0x14002747f
lea ebp, [r14 - 2]
jmp 0x14002747f
cmp ebp, r14d
jg 0x14002759f
cmp ebp, 0xffffffff
jl 0x14002759f
lea eax, [rbp + 1]
cmp esi, eax
jl 0x14002759f
lea eax, [rcx - 1]
cmp byte [rax + rbx], 0xbc
jne 0x14002775f
mov rax, qword [0x14036e0a0]
movsxd r13, esi
mov rcx, r13
test rax, rax
je 0x1400274ad
call rax
jmp 0x1400274b2
call fcn.14009bf18
mov rdi, rax
test rax, rax
jne 0x1400274c2
lea eax, [rdi - 0x7d]
jmp 0x140027764
mov ecx, dword [rsp + 0x80]
lea rdx, [rbx + r13]
sub ecx, 1
je 0x1400274fe
sub ecx, 1
je 0x1400274f7
sub ecx, 1
je 0x1400274f0
cmp ecx, 0x17
je 0x1400274e9
mov r15d, 0xffffff53
jmp 0x140027519
mov ecx, 4
jmp 0x140027503
mov ecx, 8
jmp 0x140027503
mov ecx, 7
jmp 0x140027503
mov ecx, 6
mov r9, rdi
mov dword [rsp + 0x20], esi
mov r8d, r14d
call fcn.1400264f0
mov r15d, eax
test eax, eax
je 0x14002753f
mov rax, qword [0x14036e090]
mov rcx, rdi
test rax, rax
je 0x140027532
call rax
mov eax, r15d
jmp 0x140027764
call fcn.14009bf04
mov eax, r15d
jmp 0x140027764
mov eax, 1
xor edx, edx
mov ecx, r12d
mov r9, rdi
shl al, cl
sub r9, rbx
dec al
and byte [rdi], al
and byte [rbx], al
mov eax, esi
sub eax, ebp
dec eax
movsxd r8, eax
test eax, eax
jle 0x140027580
mov rcx, rbx
movzx eax, byte [rcx]
cmp byte [r9 + rcx], al
jne 0x1400275a9
inc rcx
inc edx
mov rax, rcx
sub rax, rbx
cmp rax, r8
jl 0x140027567
movsxd rcx, edx
movzx eax, byte [rbx + rcx]
xor al, 1
cmp byte [rcx + rdi], al
je 0x1400275c7
mov rax, qword [0x14036e090]
mov rcx, rdi
test rax, rax
je 0x1400275b8
call rax
mov eax, 0xffffff06
jmp 0x140027764
mov rax, qword [0x14036e090]
mov rcx, rdi
test rax, rax
jne 0x14002759d
call fcn.14009bf04
mov eax, 0xffffff06
jmp 0x140027764
lea eax, [rdx + 1]
mov r8d, esi
sub r8d, eax
mov r10d, eax
mov rdx, r9
cmp eax, esi
jge 0x140027704
cmp r8d, 8
jb 0x140027704
movsxd rdx, eax
lea eax, [rsi - 1]
movsxd rcx, eax
lea r11, [rbx + rdx]
lea rax, [rcx + rdi]
lea r15, [rbx + rcx]
lea r12, [rdx + rdi]
cmp r11, rax
ja 0x140027612
mov rdx, r9
cmp r15, r12
jae 0x140027704
cmp r8d, 0x40
jb 0x1400276bb
mov ecx, r8d
and ecx, 0x8000003f
jge 0x14002762e
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, esi
sub eax, ecx
mov rdx, rdi
movsxd r15, eax
sub rdx, rbx
lea rcx, [r11 + 0x10]
mov r9, 0xfffffffffffffff0
sub r9, rbx
nop dword [rax]
movdqu xmm0, xmmword [rcx - 0x10]
add r10d, 0x40
movdqu xmm1, xmmword [rdx + rcx - 0x10]
movdqu xmm2, xmmword [rdx + rcx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [r9 + rcx]
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rdx + rcx - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm1, xmmword [rdx + rcx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x20], xmm1
cmp rax, r15
jl 0x140027650
mov eax, r8d
and al, 0x3f
cmp al, 8
jb 0x140027704
jmp 0x1400276c1
mov rdx, rdi
sub rdx, rbx
and r8d, 0x80000007
jge 0x1400276d4
dec r8d
or r8d, 0xfffffff8
inc r8d
sub esi, r8d
movsxd rcx, r10d
add rcx, rbx
movsxd r8, esi
movq xmm0, qword [rcx]
add r10d, 8
movq xmm1, qword [rdx + rcx]
pxor xmm1, xmm0
movq qword [rcx], xmm1
add rcx, 8
mov rax, rcx
sub rax, rbx
cmp rax, r8
jl 0x1400276e0
movsxd rax, r10d
cmp rax, r13
jge 0x140027730
mov r8, r13
lea rcx, [rbx + rax]
sub r8, rax
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x140027720
mov rax, qword [0x14036e090]
mov rcx, rdi
test rax, rax
je 0x140027743
call rax
jmp 0x140027748
call fcn.14009bf04
movsxd rax, ebp
sub rbx, rax
mov rax, qword [rsp + 0x70]
add rbx, r13
mov qword [rax], rbx
lea eax, [r14 + rbp]
jmp 0x140027764
mov eax, 0xffffff3f
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x30]
add rsp, 0x48
pop r14
pop rdi
ret