Function at 0x140246650
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rax, qword [rsp + 0xe0]
movq xmm0, qword [rax]
mov eax, dword [rsp + 0xe8]
pshufd xmm3, xmm0, 0xe5
mov rdi, rcx
mov rsi, rdx
movd ebp, xmm3
mov qword [rsp + 0xd8], r9
mov r11d, r8d
movd ebx, xmm0
lea r10d, [r8 - 8]
test eax, eax
je 0x140246850
test r10d, r10d
js 0x140246ba0
mov r13d, r10d
mov dword [rsp + 0x5c], r10d
mov r12, rdx
shr r13d, 3
mov qword [rsp + 0xc8], rdx
lea eax, [r13 + 1]
mov dword [rsp + 0x58], r13d
lea r8, [rax*8]
mov dword [rsp + 0xd0], r11d
lea rax, [rcx + r8]
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x40], rax
nop
movq xmm1, qword [rdi]
mov rcx, qword [rsp + 0x40]
mov r8d, 1
add r12, 8
mov rdx, qword [rsp + 0xd8]
add rdi, 8
pxor xmm0, xmm1
movq qword [rsp + 0x68], xmm0
call fcn.140244ff0
movq xmm0, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x68]
mov ebp, dword [rsp + 0x6c]
pshufd xmm2, xmm0, 0xe5
movd ecx, xmm2
mov r10d, ebx
mov r9d, ebx
mov eax, ecx
mov esi, ecx
mov r11d, ecx
mov r13d, ecx
shr eax, 0x18
shr esi, 0x10
movzx ecx, cl
mov r8d, ebx
mov edx, eax
movzx eax, al
mov r14d, esi
movzx esi, sil
shl rax, 8
shr r11d, 8
mov byte [rsp + 0x28], bl
shr r10d, 0x18
or rax, rsi
mov r15d, r11d
movzx r11d, r11b
shl rax, 8
mov byte [rsp + 0x3c], r10b
movzx r10d, r10b
shr r9d, 0x10
or rax, r11
mov byte [rsp + 0x38], r9b
movzx r9d, r9b
shr r8d, 8
shl rax, 8
mov byte [rsp + 0x34], r8b
movzx r8d, r8b
or rax, rcx
movzx ecx, bl
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
mov qword [r12 - 8], rax
mov rax, qword [rsp + 0x48]
cmp rdi, rax
jne 0x1402466f0
mov edi, r13d
mov r13d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov r11d, dword [rsp + 0xd0]
mov r10d, dword [rsp + 0x5c]
mov eax, r13d
mov rsi, qword [rsp + 0xc8]
neg eax
shl eax, 3
lea ecx, [r11 + rax - 0x10]
cmp ecx, 0xfffffff8
je 0x1402469c4
add rsi, r8
lea r11d, [rax + r10]
mov rdi, qword [rsp + 0x48]
movsxd rax, r11d
add rdi, rax
movzx r8d, byte [rdi - 1]
mov rax, rdi
cmp r11d, 7
ja case.0x140246847.0
lea rcx, [0x140441374]
mov edx, r11d
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
cmp r8d, 7
jle 0x140246b30
mov r14d, r10d
mov dword [rsp + 0x38], r10d
mov r13, rcx
shr r14d, 3
mov qword [rsp + 0xc0], rcx
lea eax, [r14 + 1]
mov dword [rsp + 0xd0], r8d
lea r15, [rax*8]
lea rax, [rsp + 0x68]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], rax
lea r12, [rdx + r15]
mov r14, rax
mov qword [rsp + 0x28], r15
mov r15d, ebp
mov rdx, qword [rsp + 0xd8]
mov edi, ebx
xor r8d, r8d
mov ebx, dword [r13]
mov ebp, dword [r13 + 4]
mov rcx, r14
add rsi, 8
add r13, 8
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebp
call fcn.140244ff0
mov ecx, dword [rsp + 0x6c]
xor edi, dword [rsp + 0x68]
mov r10d, edi
mov r9d, edi
mov r8d, edi
movzx edx, dil
shr r10d, 0x18
xor ecx, r15d
shr r9d, 0x10
mov eax, ecx
mov r15d, ecx
mov r11d, ecx
movzx ecx, cl
shr eax, 0x18
shr r15d, 0x10
movzx r10d, r10b
movzx r9d, r9b
shr r11d, 8
movzx eax, al
movzx r15d, r15b
shr r8d, 8
shl rax, 8
movzx r11d, r11b
movzx r8d, r8b
or rax, r15
shl rax, 8
or rax, r11
shl rax, 8
or rax, rcx
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rdx
mov qword [rsi - 8], rax
cmp rsi, r12
jne 0x1402468a0
mov r14d, dword [rsp + 0x34]
mov r11d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x28]
mov r10d, dword [rsp + 0x38]
neg r14d
mov rdi, qword [rsp + 0xc0]
shl r14d, 3
lea eax, [r11 + r14 - 0x10]
cmp eax, 0xfffffff8
jne 0x140246c00
movzx eax, bh
mov byte [rsp + 0x28], bl
mov r14d, ebp
mov edi, ebp
mov dword [rsp + 0x34], eax
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
mov dword [rsp + 0x3c], ebx
shr r14d, 0x10
mov byte [rsp + 0x38], al
mov eax, ebp
shr ebp, 0x18
movzx eax, ah
mov edx, ebp
mov r15d, eax
movzx eax, dl
movzx r14d, r14b
movzx r15d, r15b
movzx edx, dil
shl rax, 8
mov rbx, qword [rsp + 0xe0]
or rax, r14
shl rax, 8
or rax, r15
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x3c]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x38]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x34]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x28]
shl rax, 8
or rax, rdx
mov qword [rbx], rax
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 8
or edx, r8d
lea rcx, [rax - 1]
movzx eax, byte [rax - 1]
or eax, edx
xor ebp, eax
movzx r8d, byte [rcx - 1]
lea rax, [rcx - 1]
shl r8d, 0x18
movzx ecx, byte [rax - 1]
lea rdx, [rax - 1]
shl ecx, 0x10
or ecx, r8d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 8
or edx, ecx
movzx eax, byte [rax - 1]
mov rcx, qword [rsp + 0x40]
mov r8d, 1
mov dword [rsp + 0x6c], ebp
or eax, edx
mov rdx, qword [rsp + 0xd8]
xor eax, ebx
mov dword [rsp + 0x68], eax
call fcn.140244ff0
mov eax, dword [rsp + 0x68]
mov edx, eax
movzx edi, ah
mov byte [rsp + 0x28], al
shr eax, 0x18
shr edx, 0x10
mov dword [rsp + 0x3c], eax
mov byte [rsp + 0x38], dl
mov edx, dword [rsp + 0x6c]
mov dword [rsp + 0x34], edi
movzx eax, dh
mov r14d, edx
mov edi, edx
shr edx, 0x18
mov r15d, eax
mov rax, qword [rsp + 0x68]
shr r14d, 0x10
mov qword [rsi], rax
jmp 0x1402469c4
xor edx, edx
jmp 0x140246a49
mov rcx, rdi
jmp 0x140246a55
xor r8d, r8d
jmp 0x140246a62
mov rdx, rdi
xor ecx, ecx
jmp 0x140246a70
lea rax, [rsp + 0x68]
mov r13d, ebx
mov r12, rdx
mov esi, ebp
mov qword [rsp + 0x40], rax
mov ebx, dword [rdi]
mov ebp, dword [rdi + 4]
xor r8d, r8d
mov dword [rsp + 0xd0], r11d
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebp
call fcn.140244ff0
xor r13d, dword [rsp + 0x68]
xor esi, dword [rsp + 0x6c]
movsxd rax, dword [rsp + 0xd0]
mov r11, rax
add rax, r12
cmp r11d, 7
ja case.0x140246b9a.0
lea rcx, [0x140441394]
mov r11d, r11d
movsxd rdx, dword [rcx + r11*4]
add rdx, rcx
jmp rdx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
jmp 0x140246819
mov edx, esi
sub rax, 1
shr edx, 0x10
mov byte [rax], dl
mov edx, esi
sub rax, 1
mov byte [rax], dh
mov byte [rax - 1], sil
lea rdx, [rax - 1]
mov ecx, r13d
lea rax, [rdx - 1]
shr ecx, 0x18
mov byte [rdx - 1], cl
mov ecx, r13d
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
mov ecx, r13d
lea rax, [rdx - 1]
mov byte [rdx - 1], ch
mov byte [rax - 1], r13b
jmp 0x140246993
add rdi, r15
lea r11d, [r14 + r10]
mov r13d, ebx
mov esi, ebp
jmp 0x140246b42
sub rax, 1
shl r8d, 0x10
jmp 0x140246a3b
mov rdx, rax
jmp 0x140246bcf
mov rdx, rax
jmp 0x140246be9
xor edx, edx
jmp 0x140246a7d