Function at 0x14027f6c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov rax, qword [0x14050c9a8]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x20], rcx
test rcx, rcx
sete cl
test rdx, rdx
sete al
or al, cl
test r9, r9
sete cl
setne dl
mov r8d, ecx
and r8b, al
xor al, 1
mov r9d, edx
and r9b, al
or r9b, r8b
xor r9b, dl
and r9b, cl
and cl, al
xor al, dl
and al, dl
or al, cl
or al, r9b
test rbx, rbx
sete cl
setne dl
xor r15d, r15d
test cl, al
jne 0x14027fdbc
and dl, al
jne 0x14027fdbc
xor al, 1
and cl, al
jne 0x14027fdbc
movsxd r12, dword [0x1403fd91c]
movabs r13, 0x2ea41f95af95cc92
mov eax, dword [0x14051ea9c]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x14027f77f
mov esi, dword [0x1403fd914]
mov eax, dword [0x14051eaa0]
cmp eax, 0x35
jle 0x14027f787
mov eax, dword [0x1403fd914]
jmp 0x14027f76e
movabs rcx, 0xe6785b8f4a1de478
cmp rbx, 0x10
mov qword [rsp + 0x30], rbx
jae 0x14027f7ea
mov eax, 0x10
sub rax, rbx
mov rcx, qword [0x14051d5b0]
mov rdx, rcx
xor rdx, rax
and rax, rcx
lea r15, [rdx + rax*2]
mov rax, qword [rsp + 0x20]
lea rdx, [rax + rbx]
add rdx, 0x50
lea rcx, [rsp + 0x50]
mov r8, r15
call fcn.1403d0ac0
lea rcx, [rsp + r15]
add rcx, 0x50
mov rdx, r14
mov r8, rbx
call fcn.1403d0ac0
jmp 0x14027f8d8
mov qword [rsp + 0x28], r12
movabs rbp, 0xc4e1db463a6cdc38
movups xmm0, xmmword [rbx + r14 - 0x10]
movaps xmmword [rsp + 0x50], xmm0
mov r13, rbx
shr r13, 4
mov rax, qword [rsp + 0x20]
lea r15, [rax + 0x50]
add rdi, 0x10
add r14, 0x10
lea r12, [rsp + 0x40]
mov rbx, rcx
sub rbx, rbp
nop word [rax + rax]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx + 0x20]
mov rdx, r15
mov r8, r12
call qword [case.0x1400f5c95.0]
movups xmm0, xmmword [r14 - 0x10]
movups xmmword [r15], xmm0
mov eax, dword [r14 - 0x10]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [rsp + 0x40]
xor ecx, eax
mov dword [rdi - 0x10], ecx
mov eax, dword [rsp + 0x44]
xor eax, dword [r14 - 0xc]
mov dword [rdi - 0xc], eax
mov eax, dword [r14 - 8]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [rsp + 0x48]
xor ecx, eax
mov dword [rdi - 8], ecx
mov eax, dword [r14 - 4]
mov ecx, dword [rsp + 0x4c]
mov edx, ecx
xor edx, eax
or eax, ecx
and eax, edx
mov dword [rdi - 4], eax
mov rax, qword [0x1404ee3e0]
movabs rcx, 0xe6785b8f4a1de478
add r13, rcx
add r13, rax
add rax, rbx
add rax, rbp
inc rax
cmp r13, rax
je 0x14027f8c4
add rdi, 0x10
add r14, 0x10
jmp 0x14027f830
mov rbx, qword [rsp + 0x30]
mov r12, qword [rsp + 0x28]
movabs r13, 0x2ea41f95af95cc92
mov r10, rbx
not r10
mov eax, r10d
and eax, 0xf
mov rcx, rbx
and rcx, 0xfffffffffffffff0
or rcx, rax
mov r15, r10
and r15, 0xfffffffffffffff0
or r15, rcx
movzx eax, byte [0x14051cf08]
mov ecx, dword [0x1404ee2b4]
mov edx, dword [0x1404ee3d8]
mov r8d, edx
xor r8d, 0x899af3c2
and edx, 0x99af3c2
lea edx, [r8 + rdx*2]
mov r8d, ecx
not r8d
mov r9d, r8d
xor r9d, ecx
and r9d, edx
xor r9d, ecx
mov edx, ecx
and edx, 1
lea edx, [r9 + rdx*2]
mov dword [0x1404ee2b4], edx
mov ebp, edx
not ebp
mov r9d, ecx
xor r9d, edx
and ecx, ebp
and edx, r8d
or edx, ecx
and ebp, r8d
or ebp, r9d
not ebp
or ebp, edx
not ebp
or ebp, r9d
xor ebp, 0xffffffff
mov qword [rsp + 0x38], r10
mov byte [rsp + 0x28], al
je 0x14027f976
xor r12d, r12d
jmp 0x14027fadc
lea rcx, [0x1403fd91c]
add rcx, r13
movabs rax, 0x6cc18dc64d0d20e4
sub r12, rax
add rcx, rax
add rcx, r12
sub rcx, r13
nop word cs:[rax + rax]
mov edx, dword [0x14051ea9c]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x14027f9bf
mov edx, dword [0x14051eaa0]
cmp edx, 0xc
jle 0x14027f9d6
mov eax, dword [0x14051ea9c]
mov edx, 1
sub edx, eax
imul edx, eax
test dl, 1
jne 0x14027f9a0
jmp 0x14027f9b4
xor edx, edx
mov r12d, 0
test esi, esi
jle 0x14027fadc
mov r9d, 0x899af3c2
lea r10, [fcn.14027f6c0]
lea r11d, [r10 + r10]
add r11d, 0x2d00
xor ebx, ebx
xor r12d, r12d
nop word cs:[rax + rax]
movsxd r13, ebx
mov ebx, dword [0x14051eaa0]
mov eax, dword [0x1404ee3d8]
mov r8d, 0xcb5157ca
add eax, r8d
mov r8d, eax
xor r8d, 0xbe499c57
and eax, 0x3e499c57
lea eax, [r8 + rax*2]
cmp ebx, eax
jge 0x14027fa80
nop
mov eax, dword [0x14051eaa0]
cmp eax, 0x38
jge 0x14027fa80
lea rax, [rcx + r13]
xor r12b, byte [rax]
mov ebx, r13d
xor ebx, 1
and r13d, 1
add r13d, r13d
nop
test dl, dl
jne 0x14027fa68
test dl, dl
je 0x14027fac0
mov eax, dword [0x1404ee3d8]
add eax, r9d
test r11d, eax
jne 0x14027fa60
jmp 0x14027fa64
mov eax, dword [0x1404ee3d8]
lea r8d, [rax - 0x76650c3e]
lea ebx, [r10 + r10]
add ebx, 0x1aa0
and ebx, r8d
mov r8d, eax
xor r8d, 0x899af3c1
and eax, 0x99af3c1
lea eax, [r8 + rax*2]
cmp ebx, eax
jne 0x14027fa80
jmp 0x14027fa40
add ebx, r13d
nop word cs:[rax + rax]
test dl, dl
jne 0x14027fad0
cmp ebx, esi
jl 0x14027fa10
not r15
mov eax, dword [0x14051eaa0]
mov ecx, 0x899af3e3
nop word [rax + rax]
mov eax, dword [0x14051eaa0]
mov edx, dword [0x1404ee3d8]
add edx, ecx
cmp eax, edx
jge 0x14027faf0
test r15, r15
setne al
sete cl
movzx r8d, byte [rsp + 0x28]
mov edx, r8d
not dl
and dl, al
xor cl, r8b
or dl, cl
xor dl, 1
mov eax, edx
and al, cl
test al, 1
mov rsi, qword [rsp + 0x30]
movabs rbx, 0xe6785b8f4a1de478
jne 0x14027fd2a
xor dl, cl
test dl, 1
jne 0x14027fd2a
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx + 0x20]
lea rdx, [rcx + 0x50]
lea r8, [rsp + 0x40]
call qword [case.0x1400f5c95.0]
mov rdx, qword [0x1404ee3e0]
movabs rcx, 0x7f359e9e3c4761ee
lea rax, [rbx + rcx]
movabs r8, 0xa9a73a891210570d
add rax, r8
add rax, rdx
sub rax, rcx
sub rax, r8
mov r9, qword [rsp + 0x38]
mov rcx, r9
xor rcx, rax
not rax
mov r8, rsi
and r8, rax
or r8, rcx
not r8
xor rax, r9
and rax, rsi
or rax, r8
mov ecx, eax
not ecx
xor rax, 0xfffffffffffffffc
and ecx, 3
or rax, rcx
not rax
or rax, rcx
mov ecx, eax
not ecx
and ecx, 3
mov r8, rax
and r8, 0xfffffffffffffffc
or r8, rcx
mov rcx, rax
xor rcx, 3
and eax, 3
or rax, rcx
not rax
or rax, r8
mov rcx, rax
not rcx
add rdx, rbx
add rdx, 5
cmp r15, rdx
jae 0x14027fbfd
xor edx, edx
jmp 0x14027fcd2
sub r15, rcx
xor edx, edx
nop word cs:[rax + rax]
movzx r8d, byte [r14 + rdx]
movzx r9d, byte [rsp + rdx + 0x40]
mov r10d, r9d
not r10b
mov r11d, r10d
xor r11b, r8b
and r10b, r8b
not r8b
and r8b, r9b
or r11b, r8b
not r11b
or r10b, r8b
and r10b, r9b
or r10b, r11b
mov byte [rdi + rdx], r10b
mov r8, qword [0x1404ee3e0]
add r8, rbx
add r8, 2
or r8, rdx
movzx r9d, byte [rsp + r8 + 0x40]
xor r9b, byte [r14 + r8]
mov byte [rdi + r8], r9b
mov r8, rdx
xor r8, 0xfffffffffffffffd
and r8, rdx
mov r9d, edx
not r9d
and r9d, 2
mov r10, rdx
and r10, 0xfffffffffffffffd
or r10, r9
or r10, r8
movzx r8d, byte [r14 + r10]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rsp + r10 + 0x40]
xor r9b, r8b
mov byte [rdi + r10], r9b
mov r8, rdx
or r8, 3
movzx r9d, byte [r14 + r8]
movzx r10d, byte [rsp + r8 + 0x40]
not r10b
not r9b
mov r11d, r10d
xor r11b, r9b
or r9b, r10b
and r9b, r11b
mov byte [rdi + r8], r9b
add rdx, 4
cmp rdx, r15
jne 0x14027fc10
test rcx, rcx
je 0x14027fd2a
add rdi, rdx
lea rcx, [rsp + rdx]
add rcx, 0x40
add r14, rdx
mov rdx, 0xfffffffffffffffe
sub rdx, rax
xor eax, eax
nop word cs:[rax + rax]
movzx r8d, byte [r14 + rax]
movzx r9d, byte [rcx + rax]
not r8b
mov r10d, r8d
or r10b, r9b
not r10b
and r8b, r9b
or r8b, r10b
mov byte [rdi + rax], r8b
cmp rdx, rax
je 0x14027fd2a
inc rax
jmp 0x14027fd00
movaps xmm0, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x20]
movups xmmword [rax + 0x50], xmm0
test ebp, ebp
setne al
movzx ecx, byte [0x1403fd910]
sub cl, r12b
lea edx, [rax - 1]
add cl, 0xd2
mov r8d, ecx
xor r8b, 0x71
and cl, 0x71
add cl, cl
add cl, r8b
lea r8d, [rcx - 0x43]
xor r8b, dl
mov dl, 0x42
sub dl, cl
neg al
mov ecx, dword [0x14051ea9c]
mov ecx, edx
not cl
xor dl, al
not al
and al, cl
or al, dl
not al
or al, r8b
not al
nop word cs:[rax + rax]
movzx ecx, byte [0x1404ee3dc]
add cl, 0xeb
cmp al, cl
setne cl
or cl, byte [0x14051cf08]
mov edx, dword [0x14051eaa0]
cmp edx, 0x55
jg 0x14027fd90
and cl, 1
mov byte [0x14051cf08], cl
mov r15, rsi
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1403a8ad0
mov rax, r15
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret