Function at 0x1401fe210
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]
mov esi, dword [rax]
mov ebx, dword [rax + 4]
mov eax, dword [rsp + 0xe8]
mov rdi, rcx
mov rbp, rdx
mov r14d, r8d
bswap esi
mov qword [rsp + 0xd8], r9
lea r10d, [r8 - 8]
bswap ebx
test eax, eax
je 0x1401fe410
test r10d, r10d
js 0x1401fe7a8
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 r9, [rax*8]
mov dword [rsp + 0xd0], r8d
lea rax, [rcx + r9]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
nop word cs:[rax + rax]
mov edx, dword [rdi]
mov eax, dword [rdi + 4]
add r12, 8
add rdi, 8
mov rcx, qword [rsp + 0x40]
bswap edx
xor edx, esi
bswap eax
xor eax, ebx
mov dword [rsp + 0x68], edx
mov rdx, qword [rsp + 0xd8]
mov dword [rsp + 0x6c], eax
call fcn.1401fd7c0
mov ebx, dword [rsp + 0x6c]
mov esi, dword [rsp + 0x68]
mov r13d, ebx
movzx eax, bl
mov ebp, ebx
mov r11d, ebx
shr r13d, 8
shl rax, 8
mov r10d, esi
mov r9d, esi
mov r14d, r13d
movzx r13d, r13b
shr ebp, 0x10
mov r8d, esi
or rax, r13
movzx edx, bpl
movzx ebp, bpl
shr r11d, 0x18
shl rax, 8
mov byte [rsp + 0x3c], r11b
movzx r11d, r11b
mov r15d, ebx
shr r10d, 8
or rax, rbp
movzx ebp, sil
shr r9d, 0x10
shl rax, 8
mov byte [rsp + 0x30], r10b
movzx r10d, r10b
shr r8d, 0x18
or rax, r11
mov byte [rsp + 0x2c], r9b
movzx r9d, r9b
mov ecx, r8d
shl rax, 8
movzx r8d, r8b
mov byte [rsp + 0x38], sil
or rax, rbp
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
mov qword [r12 - 8], rax
mov rax, qword [rsp + 0x48]
cmp rdi, rax
jne 0x1401fe2b0
mov r13d, dword [rsp + 0x58]
mov r12d, r14d
mov edi, ecx
mov r9, qword [rsp + 0x50]
mov r14d, dword [rsp + 0xd0]
mov r10d, dword [rsp + 0x5c]
mov eax, r13d
mov rbp, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x40]
neg eax
shl eax, 3
lea r8d, [r14 + rax - 0x10]
cmp r8d, 0xfffffff8
je 0x1401fe58f
add rbp, r9
lea r14d, [rax + r10]
mov rdi, qword [rsp + 0x48]
movsxd rax, r14d
add rdi, rax
movzx r9d, byte [rdi - 1]
mov rax, rdi
cmp r14d, 7
ja case.0x1401fe408.0
lea r8, [0x140431608]
mov edx, r14d
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
cmp r8d, 7
jle 0x1401fe750
mov r15d, r10d
mov dword [rsp + 0x38], r10d
mov r14, qword [rsp + 0xd8]
mov r12, rcx
shr r15d, 3
mov qword [rsp + 0xc0], rdi
lea rcx, [rsp + 0x68]
lea eax, [r15 + 1]
mov dword [rsp + 0x2c], r15d
lea rdx, [rax*8]
mov dword [rsp + 0xd0], r8d
mov qword [rsp + 0x30], rdx
lea r13, [rbp + rdx]
nop dword [rax]
mov r15d, esi
mov edi, ebx
mov esi, dword [r12]
mov ebx, dword [r12 + 4]
mov rdx, r14
add rbp, 8
add r12, 8
bswap esi
bswap ebx
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x6c], ebx
call fcn.1401fd7c0
mov eax, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x68]
xor eax, edi
xor edx, r15d
mov r15d, eax
mov r11d, eax
mov edi, eax
movzx eax, al
shr r15d, 8
shl rax, 8
mov r8d, edx
mov r9d, edx
shr edi, 0x10
movzx r15d, r15b
shr r11d, 0x18
mov r10d, edx
or rax, r15
movzx edi, dil
movzx r11d, r11b
movzx edx, dl
shl rax, 8
shr r10d, 8
shr r9d, 0x10
or rax, rdi
movzx r10d, r10b
shr r8d, 0x18
shl rax, 8
movzx r9d, r9b
movzx r8d, r8b
or rax, r11
shl rax, 8
or rax, rdx
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
mov qword [rbp - 8], rax
cmp rbp, r13
jne 0x1401fe468
mov r15d, dword [rsp + 0x2c]
mov r14d, dword [rsp + 0xd0]
mov rdx, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x38]
neg r15d
mov rdi, qword [rsp + 0xc0]
shl r15d, 3
lea eax, [r14 + r15 - 0x10]
cmp eax, 0xfffffff8
jne 0x1401fe808
mov eax, esi
mov byte [rsp + 0x38], sil
mov r15d, ebx
shr eax, 0x18
mov edi, eax
mov eax, esi
shr eax, 0x10
mov byte [rsp + 0x2c], al
mov eax, esi
movzx eax, ah
mov dword [rsp + 0x30], eax
mov eax, ebx
shr eax, 0x18
mov dword [rsp + 0x3c], eax
mov eax, ebx
shr eax, 0x10
movzx edx, al
movzx eax, bh
mov r12d, eax
movzx eax, r15b
movzx r15d, r12b
mov rcx, qword [rsp + 0xe0]
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 + 0x30]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x2c]
shl rax, 8
or rax, rdx
movzx edx, dil
shl rax, 8
or rax, rdx
mov qword [rcx], rax
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r9d, r9d
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 0x10
or edx, r9d
lea r8, [rax - 1]
movzx eax, byte [rax - 1]
shl eax, 0x18
or eax, edx
xor ebx, eax
movzx r9d, byte [r8 - 1]
lea rax, [r8 - 1]
movzx r8d, byte [rax - 1]
lea rdx, [rax - 1]
shl r8d, 8
or r8d, r9d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 0x10
or edx, r8d
movzx eax, byte [rax - 1]
mov dword [rsp + 0x6c], ebx
shl eax, 0x18
or eax, edx
mov rdx, qword [rsp + 0xd8]
xor eax, esi
mov dword [rsp + 0x68], eax
call fcn.1401fd7c0
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x68]
mov r11d, eax
mov r9d, eax
mov r10d, eax
mov r15d, eax
shr r11d, 8
movzx eax, al
shr r10d, 0x10
mov esi, ecx
mov r12d, r11d
shl rax, 8
movzx r11d, r11b
movzx edx, r10b
or rax, r11
movzx r10d, r10b
shr r9d, 0x18
mov ebx, ecx
shl rax, 8
mov byte [rsp + 0x3c], r9b
movzx r9d, r9b
mov r8d, ecx
mov byte [rsp + 0x38], cl
or rax, r10
movzx ecx, cl
shr r8d, 8
shl rax, 8
mov byte [rsp + 0x30], r8b
shr ebx, 0x10
or rax, r9
mov byte [rsp + 0x2c], bl
shr esi, 0x18
shl rax, 8
mov edi, esi
or rax, rcx
movzx ecx, r8b
shl rax, 8
mov r8, rax
movzx eax, bl
or r8, rcx
mov rbx, r8
shl rbx, 8
or rbx, rax
movzx eax, sil
mov rsi, rbx
shl rsi, 8
or rsi, rax
mov qword [rbp], rsi
jmp 0x1401fe58f
xor edx, edx
jmp 0x1401fe611
mov r8, rdi
jmp 0x1401fe620
xor r9d, r9d
jmp 0x1401fe629
mov rdx, rdi
xor r8d, r8d
jmp 0x1401fe639
mov r12d, esi
mov r13, rdx
lea rcx, [rsp + 0x68]
mov ebp, ebx
mov esi, dword [rdi]
mov ebx, dword [rdi + 4]
mov rdx, qword [rsp + 0xd8]
bswap esi
bswap ebx
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x6c], ebx
call fcn.1401fd7c0
movsxd rax, r14d
xor r12d, dword [rsp + 0x68]
xor ebp, dword [rsp + 0x6c]
add rax, r13
cmp r14d, 7
ja case.0x1401fe7a1.0
lea rcx, [0x140431628]
mov r14d, r14d
movsxd rdx, dword [rcx + r14*4]
add rdx, rcx
jmp rdx
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x68]
jmp 0x1401fe3da
mov ecx, ebp
sub rax, 1
mov byte [rax], ch
mov edx, ebp
sub rax, 1
shr edx, 0x10
mov byte [rax], dl
shr ebp, 0x18
lea rdx, [rax - 1]
mov byte [rax - 1], bpl
mov byte [rdx - 1], r12b
lea rax, [rdx - 1]
mov ecx, r12d
lea rdx, [rax - 1]
mov byte [rax - 1], ch
mov ecx, r12d
lea rax, [rdx - 1]
shr ecx, 0x10
mov byte [rdx - 1], cl
shr r12d, 0x18
mov byte [rax - 1], r12b
jmp 0x1401fe557
add rdi, rdx
lea r14d, [r15 + r10]
mov r12d, esi
mov ebp, ebx
jmp 0x1401fe75d
sub rax, 1
shl r9d, 8
jmp 0x1401fe603
mov rdx, rax
jmp 0x1401fe7d5
mov rdx, rax
jmp 0x1401fe7e7
xor edx, edx
jmp 0x1401fe647