Function at 0x140246c40
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 + 0xf0]
movq xmm0, qword [rax]
mov eax, dword [rsp + 0xf8]
pshufd xmm3, xmm0, 0xe5
mov rbx, rcx
mov r15, rdx
movd esi, xmm3
mov qword [rsp + 0xd8], r9
mov r12d, r8d
movd edi, xmm0
lea r9d, [r8 - 8]
test eax, eax
je 0x140246e48
test r9d, r9d
js 0x1402471c0
mov r13d, r9d
mov dword [rsp + 0x5c], r9d
mov rbp, rcx
shr r13d, 3
mov qword [rsp + 0xc0], rcx
lea eax, [r13 + 1]
mov dword [rsp + 0x58], r13d
lea r8, [rax*8]
mov dword [rsp + 0xd0], r12d
lea rax, [rdx + r8]
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
nop
movq xmm1, qword [rbp]
mov r9, qword [rsp + 0xe8]
add r15, 8
add rbp, 8
mov r8, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x28]
pxor xmm0, xmm1
movq qword [rsp + 0x68], xmm0
call fcn.1402463f0
movq xmm0, qword [rsp + 0x68]
mov edi, dword [rsp + 0x68]
mov esi, dword [rsp + 0x6c]
pshufd xmm2, xmm0, 0xe5
movd r8d, xmm2
movd ecx, xmm0
mov eax, r8d
mov r12d, r8d
mov ebx, r8d
mov r11d, ecx
shr eax, 0x18
shr r12d, 0x10
mov byte [rsp + 0x47], r8b
movzx r8d, r8b
mov edx, eax
movzx eax, al
mov r14d, r12d
movzx r12d, r12b
shl rax, 8
shr ebx, 8
mov r10d, ecx
mov r9d, ecx
or rax, r12
mov r13d, ebx
movzx ebx, bl
shr r11d, 0x18
shl rax, 8
mov byte [rsp + 0x40], r11b
movzx r11d, r11b
shr r10d, 0x10
or rax, rbx
mov byte [rsp + 0x3c], r10b
movzx r10d, r10b
shr r9d, 8
shl rax, 8
mov byte [rsp + 0x38], r9b
movzx r9d, r9b
or rax, r8
mov byte [rsp + 0x30], cl
movzx ecx, cl
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, rcx
mov qword [r15 - 8], rax
mov rax, qword [rsp + 0x48]
cmp r15, rax
jne 0x140246ce0
mov r15d, r13d
mov r13d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov r12d, dword [rsp + 0xd0]
mov r9d, dword [rsp + 0x5c]
mov eax, r13d
mov rbx, qword [rsp + 0xc0]
neg eax
shl eax, 3
lea ecx, [r12 + rax - 0x10]
cmp ecx, 0xfffffff8
je 0x140246fd7
add rbx, r8
lea r12d, [rax + r9]
movsxd rax, r12d
add rax, rbx
movzx r8d, byte [rax - 1]
cmp r12d, 7
ja case.0x140246e42.0
lea rcx, [0x1404413b4]
mov edx, r12d
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
cmp r8d, 7
jle 0x140247150
mov r14d, r9d
mov dword [rsp + 0x3c], r9d
mov rbp, r15
shr r14d, 3
mov dword [rsp + 0xd0], r8d
lea eax, [r14 + 1]
mov dword [rsp + 0x38], r14d
lea rdx, [rax*8]
lea rax, [rsp + 0x68]
mov qword [rsp + 0xc8], r15
mov r15, qword [rsp + 0xe0]
mov qword [rsp + 0x28], rax
lea r13, [rcx + rdx]
mov qword [rsp + 0x30], rdx
nop dword [rax]
mov r14d, esi
mov rcx, qword [rsp + 0x28]
mov esi, dword [rbx + 4]
mov r12d, edi
mov edi, dword [rbx]
mov r8, r15
add rbp, 8
add rbx, 8
mov r9, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xd8]
mov dword [rsp + 0x6c], esi
mov dword [rsp + 0x68], edi
call fcn.140246530
mov ecx, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x68]
xor ecx, r14d
xor edx, r12d
mov eax, ecx
mov r14d, ecx
mov r11d, ecx
mov r10d, edx
shr eax, 0x18
shr r14d, 0x10
movzx ecx, cl
mov r9d, edx
movzx eax, al
movzx r14d, r14b
shr r11d, 8
mov r8d, edx
shl rax, 8
movzx r11d, r11b
shr r10d, 0x18
shr r9d, 0x10
or rax, r14
movzx r10d, r10b
shr r8d, 8
shl rax, 8
movzx r9d, r9b
movzx r8d, r8b
or rax, r11
shl rax, 8
or rax, rcx
movzx ecx, dl
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
mov rdx, rax
or rdx, rcx
mov qword [rbp - 8], rdx
cmp rbx, r13
jne 0x140246ea0
mov r14d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0xd0]
mov rdx, qword [rsp + 0x30]
mov r9d, dword [rsp + 0x3c]
neg r14d
mov r15, qword [rsp + 0xc8]
shl r14d, 3
lea eax, [r12 + r14 - 0x10]
cmp eax, 0xfffffff8
jne 0x140247220
mov eax, edi
mov byte [rsp + 0x30], dil
mov r14d, esi
movzx eax, ah
mov byte [rsp + 0x47], sil
shr r14d, 0x10
mov dword [rsp + 0x38], eax
mov eax, edi
shr edi, 0x18
shr eax, 0x10
mov dword [rsp + 0x40], edi
mov byte [rsp + 0x3c], al
mov eax, esi
shr esi, 0x18
movzx eax, ah
mov edx, esi
mov r15d, eax
movzx eax, dl
movzx r14d, r14b
movzx r15d, r15b
movzx edx, byte [rsp + 0x47]
shl rax, 8
mov rsi, qword [rsp + 0xf0]
or rax, r14
shl rax, 8
or rax, r15
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x40]
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 + 0x30]
shl rax, 8
or rax, rdx
mov qword [rsi], 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 esi, 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 + 0x28]
mov dword [rsp + 0x6c], esi
mov r9, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xe0]
or eax, edx
mov rdx, qword [rsp + 0xd8]
xor eax, edi
mov dword [rsp + 0x68], eax
call fcn.1402463f0
mov eax, dword [rsp + 0x68]
mov edx, dword [rsp + 0x6c]
movzx edi, ah
mov ecx, eax
mov byte [rsp + 0x30], al
shr eax, 0x18
mov dword [rsp + 0x40], eax
movzx eax, dh
mov r14d, edx
shr ecx, 0x10
mov dword [rsp + 0x38], edi
mov r15d, eax
mov rdi, qword [rsp + 0x48]
shr r14d, 0x10
mov rax, qword [rsp + 0x68]
mov byte [rsp + 0x47], dl
shr edx, 0x18
mov byte [rsp + 0x3c], cl
mov qword [rdi], rax
jmp 0x140246fd7
xor edx, edx
jmp 0x140247061
mov rcx, rax
jmp 0x14024706d
xor r8d, r8d
jmp 0x14024707a
mov rdx, rax
xor ecx, ecx
jmp 0x140247088
lea rax, [rsp + 0x68]
mov r13, rcx
mov ebx, edi
mov ebp, esi
mov qword [rsp + 0x28], rax
mov edi, dword [r13]
mov esi, dword [r13 + 4]
mov r9, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x68], edi
mov dword [rsp + 0x6c], esi
call fcn.140246530
movsxd rax, r12d
xor ebx, dword [rsp + 0x68]
xor ebp, dword [rsp + 0x6c]
add rax, r15
cmp r12d, 7
ja case.0x1402471b8.0
lea rcx, [0x1404413d4]
mov r12d, r12d
movsxd rdx, dword [rcx + r12*4]
add rdx, rcx
jmp rdx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x28], rax
jmp 0x140246e1c
mov edx, ebp
sub rax, 1
shr edx, 0x10
mov byte [rax], dl
mov edx, ebp
sub rax, 1
mov byte [rax], dh
mov byte [rax - 1], bpl
lea rdx, [rax - 1]
mov ecx, ebx
lea rax, [rdx - 1]
shr ecx, 0x18
mov byte [rdx - 1], cl
mov ecx, ebx
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
mov byte [rdx - 1], bh
lea rax, [rdx - 1]
mov byte [rax - 1], bl
jmp 0x140246fa0
add r15, rdx
lea r12d, [r14 + r9]
mov ebx, edi
mov ebp, esi
jmp 0x140247161
sub rax, 1
shl r8d, 0x10
jmp 0x140247053
mov rdx, rax
jmp 0x1402471ef
mov rdx, rax
jmp 0x140247207
xor edx, edx
jmp 0x140247095