Function at 0x1400cfd30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
movq xmm0, qword [rax]
mov eax, r8d
pshufd xmm3, xmm0, 0xe5
mov rsi, rcx
movd ebx, xmm3
sub eax, 8
movd ecx, xmm3
movd edi, xmm0
mov r14, r9
mov dword [rsp + 0xb0], r8d
mov r8d, dword [rsp + 0xd8]
mov qword [rsp + 0xa8], rdx
movd edx, xmm0
mov dword [rsp + 0x30], eax
test r8d, r8d
je 0x1400cff10
test eax, eax
js 0x1400d0240
shr eax, 3
mov rbx, qword [rsp + 0xa8]
lea r12, [rsp + 0x48]
mov dword [rsp + 0x20], eax
add eax, 1
shl rax, 3
mov qword [rsp + 0x28], rax
lea rdi, [rsi + rax]
nop
movq xmm1, qword [rsi]
mov r9, r13
mov r8, rbp
mov rdx, r14
mov rcx, r12
add rbx, 8
add rsi, 8
pxor xmm0, xmm1
movq qword [rsp + 0x48], xmm0
call fcn.1400cf550
movq xmm0, qword [rsp + 0x48]
pshufd xmm2, xmm0, 0xe5
movd eax, xmm2
movd r15d, xmm2
movd r11d, xmm2
shr eax, 0x18
shr r15d, 0x10
movd ecx, xmm2
movd r10d, xmm0
movzx eax, al
movzx r15d, r15b
shr r11d, 8
movd r9d, xmm0
shl rax, 8
movzx r11d, r11b
shr r10d, 0x18
movd edx, xmm0
or rax, r15
movzx r10d, r10b
shr r9d, 0x10
movd r8d, xmm0
shl rax, 8
movzx r9d, r9b
shr r8d, 8
or rax, r11
movzx r11d, cl
movzx r8d, r8b
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
movzx r8d, dl
shl rax, 8
or rax, r8
mov qword [rbx - 8], rax
cmp rdi, rsi
jne 0x1400cfdd0
mov rax, qword [rsp + 0x28]
add qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x20]
mov edi, dword [rsp + 0xb0]
neg eax
shl eax, 3
lea r9d, [rdi + rax - 0x10]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0xb0], eax
mov r8d, ecx
cmp r9d, 0xfffffff8
je 0x1400d0260
movsxd rax, dword [rsp + 0xb0]
add rax, rsi
cmp dword [rsp + 0xb0], 7
ja case.0x1400cff04.0
mov r9d, dword [rsp + 0xb0]
lea r10, [0x140384a20]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
test eax, eax
js 0x1400d0250
shr eax, 3
mov qword [rsp + 0xc0], rbp
lea r12, [rsp + 0x48]
mov dword [rsp + 0x34], eax
add eax, 1
shl rax, 3
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x38], rax
add rax, rsi
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xa8]
mov r12, rax
mov r15d, ebx
mov r8, qword [rsp + 0xc0]
mov ebx, dword [rsi + 4]
mov ebp, edi
mov rcx, qword [rsp + 0x28]
mov edi, dword [rsi]
mov r9, r13
mov rdx, r14
mov dword [rsp + 0x4c], ebx
add r12, 8
add rsi, 8
mov dword [rsp + 0x48], edi
call fcn.1400cf670
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
xor ecx, r15d
xor edx, ebp
mov eax, ecx
mov r15d, ecx
mov r11d, ecx
mov r9d, edx
shr eax, 0x18
shr r15d, 0x10
movzx ecx, cl
mov r8d, edx
movzx eax, al
movzx r15d, r15b
shr r11d, 8
mov r10d, edx
shl rax, 8
movzx r11d, r11b
shr r9d, 0x18
movzx edx, dl
shr r8d, 0x10
or rax, r15
movzx r9d, r9b
shr r10d, 8
shl rax, 8
movzx r8d, r8b
movzx r10d, r10b
or rax, r11
shl rax, 8
or rax, rcx
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, r10
shl rax, 8
or rax, rdx
mov qword [r12 - 8], rax
cmp qword [rsp + 0x20], rsi
jne 0x1400cff50
mov rax, qword [rsp + 0x38]
add qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x34]
mov edx, dword [rsp + 0xb0]
mov rbp, qword [rsp + 0xc0]
neg eax
shl eax, 3
lea edx, [rdx + rax - 0x10]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0xb0], eax
cmp edx, 0xfffffff8
je 0x1400d00f4
mov r12d, dword [rsi]
mov esi, dword [rsi + 4]
mov rdx, r14
lea rcx, [rsp + 0x48]
mov r9, r13
mov r8, rbp
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x4c], esi
call fcn.1400cf670
xor edi, dword [rsp + 0x48]
xor ebx, dword [rsp + 0x4c]
movsxd rdx, dword [rsp + 0xb0]
add rdx, qword [rsp + 0xa8]
cmp dword [rsp + 0xb0], 7
ja case.0x1400d00af.0
mov eax, dword [rsp + 0xb0]
lea rcx, [0x140384a40]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, ebx
sub rdx, 1
shr eax, 0x10
mov byte [rdx], al
mov byte [rdx - 1], bh
sub rdx, 1
mov byte [rdx - 1], bl
lea rax, [rdx - 1]
mov ecx, edi
lea rdx, [rax - 1]
shr ecx, 0x18
mov byte [rax - 1], cl
mov ecx, edi
lea rax, [rdx - 1]
shr ecx, 0x10
mov byte [rdx - 1], cl
mov ebx, edi
lea rdx, [rax - 1]
mov byte [rax - 1], bh
mov byte [rdx - 1], dil
mov ebx, esi
mov edi, r12d
mov eax, edi
mov ecx, ebx
movzx r9d, dil
movzx r11d, bl
movzx eax, ah
shr ecx, 0x10
movzx esi, bh
mov r10d, eax
mov eax, edi
shr edi, 0x18
mov r8d, ecx
shr eax, 0x10
mov edx, edi
shr ebx, 0x18
movzx ebx, bl
movzx ecx, r8b
movzx esi, sil
movzx edx, dl
shl rbx, 8
movzx eax, al
movzx r10d, r10b
or rbx, rcx
shl rbx, 8
or rbx, rsi
shl rbx, 8
or rbx, r11
shl rbx, 8
or rbx, rdx
shl rbx, 8
or rbx, rax
mov rax, qword [rsp + 0xd0]
shl rbx, 8
or rbx, r10
shl rbx, 8
or rbx, r9
mov qword [rax], rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
movzx r9d, byte [rax - 1]
sub rax, 1
shl r9d, 8
or r9d, r8d
movzx r8d, byte [rax - 1]
lea r10, [rax - 1]
or r8d, r9d
xor r8d, ecx
lea rax, [r10 - 1]
movzx r10d, byte [r10 - 1]
shl r10d, 0x18
movzx r9d, byte [rax - 1]
lea rcx, [rax - 1]
shl r9d, 0x10
or r9d, r10d
lea rax, [rcx - 1]
movzx ecx, byte [rcx - 1]
shl ecx, 8
or ecx, r9d
movzx eax, byte [rax - 1]
movd xmm4, r8d
or eax, ecx
xor eax, edx
movd xmm0, eax
punpckldq xmm0, xmm4
lea rcx, [rsp + 0x48]
mov r9, r13
mov r8, rbp
mov rdx, r14
movq qword [rsp + 0x48], xmm0
call fcn.1400cf550
mov ebx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
mov rdi, qword [rsp + 0xa8]
mov ecx, ebx
movzx eax, dh
movzx r9d, dl
movzx r11d, bl
shr ecx, 0x10
mov r10d, eax
mov eax, edx
movzx esi, bh
shr eax, 0x10
mov r8d, ecx
mov rcx, qword [rsp + 0x48]
shr edx, 0x18
shr ebx, 0x18
mov qword [rdi], rcx
jmp 0x1400d011c
mov r9d, eax
jmp 0x1400cfec8
mov edx, eax
jmp 0x1400d0049
movzx eax, dh
movzx r11d, cl
movzx esi, ch
shr ecx, 0x18
mov r10d, eax
mov eax, edx
movzx r9d, dl
shr r8d, 0x10
shr eax, 0x10
shr edx, 0x18
mov ebx, ecx
jmp 0x1400d011c
xor ecx, ecx
jmp 0x1400d01cd
mov rcx, rax
xor r9d, r9d
jmp 0x1400d01bf
xor r10d, r10d
jmp 0x1400d01af
mov r10, rax
jmp 0x1400d01a2
xor r9d, r9d
jmp 0x1400d0193
movzx r8d, byte [rax - 1]
sub rax, 1
shl r8d, 0x10
jmp 0x1400d0183
mov rax, rdx
jmp 0x1400d00ca
mov rax, rdx
jmp 0x1400d00e2
mov ebx, esi
mov edi, r12d
jmp 0x1400d00f4