Function at 0x14005ff64
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1c8
mov rax, qword [0x1400d6910]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
mov r10, qword [rcx + 8]
mov r11, rcx
mov rax, qword [rcx + 0x70]
mov r15, rdx
mov r12d, dword [rcx + 0x34]
mov r14d, edx
mov qword [rsp + 0x80], rax
sub r14d, r10d
mov rax, qword [rcx + 0x38]
mov r13, r8
mov edi, dword [r11 + 0x10c]
mov rbp, qword [r11 + 0x60]
mov qword [rsp + 0x50], rax
mov eax, dword [rcx + 0x18]
mov ecx, dword [rcx + 0x100]
mov dword [rsp + 0x24], eax
add rax, r10
mov qword [rsp + 0xa0], rax
mov eax, r14d
sub eax, dword [r11 + 0x1c]
mov qword [rsp + 0x30], rdx
mov edx, 1
shl edx, cl
mov ecx, r14d
sub ecx, edx
mov qword [rsp + 0x88], r9
mov r9, qword [r15]
cmp eax, edx
mov qword [rsp + 0x38], r8
cmovbe ecx, dword [r11 + 0x1c]
xor ebx, ebx
cmp dword [r11 + 0x28], ebx
mov r8, qword [r11 + 0xf8]
cmovne ecx, dword [r11 + 0x1c]
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 1]
lea ecx, [rbx + 4]
mov dword [rsp + 0x58], r12d
cmp edi, ecx
mov qword [rsp + 0x60], r10
lea esi, [rbx + 3]
mov dword [rsp + 0x44], r14d
cmovb ecx, edi
mov qword [rsp + 0xa8], rbp
shl eax, cl
lea ecx, [rbx + 0x42]
sub ecx, dword [r8 + 0x108]
mov dword [rsp + 0x40], eax
movabs rax, 0xcf1bbcdcbb000000
imul r9, rax
mov qword [rsp + 0x78], rsi
mov rdx, r9
mov qword [rsp + 0x68], r8
shr rdx, cl
lea rax, [rdx*4]
lea rcx, [rax*4]
mov qword [rsp + 0x98], rax
mov rax, qword [r8 + 0x70]
mov qword [rsp + 0x70], rcx
prefetcht0 byte [rcx + rax]
cmp edi, 4
jbe 0x1400600a9
lea ecx, [rdi - 4]
lea eax, [rbx + 1]
shl eax, cl
mov dword [rsp + 0x20], eax
jmp 0x1400600ad
mov dword [rsp + 0x20], ebx
cmp dword [r11 + 0x12c], ebx
jne 0x140060385
mov edi, dword [r11 + 0x2c]
mov eax, r14d
sub eax, edi
mov ebp, 0x38
cmp eax, 0x180
jbe 0x140060253
lea eax, [rdi + 0x60]
cmp edi, eax
jae 0x1400601a0
mov r14, qword [rsp + 0x80]
lea r15, [r10 + 8]
mov r12d, ebp
mov r13d, edi
sub r12d, dword [rsp + 0x58]
mov esi, eax
mov rbp, qword [rsp + 0x50]
add r15, rdi
movabs rbx, 0xcf1bbcdcbb000000
mov rdx, qword [r15]
mov ecx, r12d
imul rdx, rbx
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [rax + rbp]
mov rax, r13
and eax, 7
mov r10d, dword [r11 + rax*4 + 0x40]
mov r9d, r10d
mov dword [r11 + rax*4 + 0x40], edx
shr r9, 4
and r9d, 0xffffff0
lea r8, [r9 + rbp]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r13
not ecx
inc r15
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [rdx + r8], r10b
mov dword [r14 + rax*4], edi
inc edi
cmp edi, esi
jb 0x140060109
mov rsi, qword [rsp + 0x78]
xor ebx, ebx
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x60]
lea ebp, [rbx + 0x38]
mov rcx, qword [r11 + 0x70]
lea edi, [r14 - 0x20]
mov r9d, edi
lea rax, [r15 + 1]
add r10, r9
mov qword [rsp + 0x48], rcx
mov rcx, qword [r11 + 0x38]
mov qword [rsp + 0x90], rcx
cmp r10, rax
jbe 0x1400601cc
mov eax, ebx
jmp 0x1400601dd
sub eax, dword [rsp + 0x60]
mov ecx, 8
sub eax, edi
inc eax
cmp eax, ecx
ja 0x1400601df
mov ecx, eax
lea eax, [rcx + rdi]
cmp edi, eax
jae 0x140060253
mov r13, qword [rsp + 0x48]
mov r8d, ebp
sub r8d, dword [r11 + 0x34]
movabs r15, 0xcf1bbcdcbb000000
mov rsi, qword [rsp + 0x90]
mov r12d, ecx
mov rdx, qword [r10]
mov ecx, r8d
imul rdx, r15
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r13 + rax*4]
prefetcht0 byte [rax + rsi]
mov rax, r9
inc r10
and eax, 7
inc r9
mov dword [r11 + rax*4 + 0x40], edx
sub r12, 1
jne 0x140060207
mov rsi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rax, qword [r11 + 0x70]
mov rcx, qword [r11 + 0x38]
mov qword [rsp + 0x90], rax
mov rax, qword [r11 + 8]
cmp edi, r14d
jae 0x140060323
mov r15, qword [rsp + 0x90]
lea rsi, [rax + 8]
mov r13d, ebp
mov r12d, edi
sub r13d, dword [r11 + 0x34]
mov rbx, rcx
add rsi, r12
movabs rbp, 0xcf1bbcdcbb000000
mov rdx, qword [rsi]
mov ecx, r13d
imul rdx, rbp
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov ecx, 0xffffff0
mov eax, edx
shr rax, 4
and rax, rcx
prefetcht0 byte [r15 + rax*4]
prefetcht0 byte [rbx + rax]
mov rax, r12
and eax, 7
mov r10d, dword [r11 + rax*4 + 0x40]
mov r9d, r10d
mov dword [r11 + rax*4 + 0x40], edx
shr r9, 4
and r9, rcx
lea r8, [r9 + rbx]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r12
not ecx
inc rsi
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [r8 + rdx], r10b
mov dword [r15 + rax*4], edi
inc edi
cmp edi, r14d
jb 0x140060296
mov rsi, qword [rsp + 0x78]
xor ebx, ebx
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
lea ebp, [rbx + 0x38]
mov rax, qword [rsp + 0x60]
sub ebp, dword [rsp + 0x58]
mov cl, bpl
mov r8d, r14d
mov dword [r11 + 0x2c], r14d
mov rdx, qword [r8 + rax + 8]
movabs rax, 0xcf1bbcdcbb000000
imul rdx, rax
xor rdx, qword [rsp + 0xa8]
shr rdx, cl
mov rcx, qword [rsp + 0x80]
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [rcx + rax*4]
mov r10, qword [rsp + 0x50]
prefetcht0 byte [rax + r10]
and r8d, 7
mov r9d, dword [r11 + r8*4 + 0x40]
mov dword [r11 + r8*4 + 0x40], edx
jmp 0x1400603a4
mov r10, qword [rsp + 0x50]
mov ecx, 0x38
sub ecx, r12d
mov dword [r11 + 0x2c], r14d
xor r9, rbp
shr r9, cl
mov rcx, qword [rsp + 0x80]
add dword [r11 + 0x68], r9d
mov eax, r9d
shr rax, 4
mov rdi, rbx
and eax, 0xffffff0
mov rbp, rbx
lea rcx, [rcx + rax*4]
lea r12, [rax + r10]
mov qword [rsp + 0x50], rcx
movdqu xmm0, xmmword [r12]
movzx r8d, byte [r12]
movsx eax, r9b
and r8d, 0xf
mov ecx, r8d
neg ecx
and ecx, 0xf
movd xmm1, eax
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
movzx eax, dx
shl ax, cl
mov cl, r8b
movzx r10d, ax
movzx eax, dx
shr rax, cl
or r10, rax
jbe 0x140060473
mov r13d, dword [rsp + 0x40]
mov edx, r8d
mov r8, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x28]
test r13d, r13d
je 0x140060462
bsf rcx, r10
mov dword [rsp + 0x28], ebx
add ecx, edx
and ecx, 0xf
je 0x140060459
mov ecx, dword [r8 + rcx*4]
cmp ecx, r15d
jb 0x140060462
mov eax, ecx
add rax, qword [rsp + 0x60]
prefetcht0 byte [rax]
mov dword [rsp + rdi*4 + 0xb0], ecx
inc rdi
dec r13d
lea rax, [r10 - 1]
and r10, rax
ja 0x140060425
mov r15, qword [rsp + 0x30]
mov dword [rsp + 0x40], r13d
mov r13, qword [rsp + 0x38]
jmp 0x140060478
mov r8, qword [rsp + 0x50]
movzx edx, byte [r12]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
not ecx
and ecx, 0xf
add edx, ecx
mov byte [r12], dl
mov byte [rdx + r12], r9b
mov ecx, dword [r11 + 0x2c]
lea eax, [rcx + 1]
mov dword [r11 + 0x2c], eax
mov dword [r8 + rdx*4], ecx
test rdi, rdi
je 0x140060502
mov rbx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x88]
mov edx, dword [rsp + rbp*4 + 0xb0]
mov eax, dword [rsi + r15 - 3]
add rdx, rbx
cmp dword [rdx + rsi - 3], eax
jne 0x1400604f8
mov r8, r13
mov rcx, r15
call fcn.14009ec70
cmp rax, rsi
jbe 0x1400604f8
mov ecx, r14d
mov rsi, rax
sub ecx, dword [rsp + rbp*4 + 0xb0]
add rax, r15
add ecx, 3
mov qword [r11], rcx
cmp rax, r13
je 0x140060500
inc rbp
cmp rbp, rdi
jb 0x1400604b8
xor ebx, ebx
mov r10, qword [rsp + 0x68]
mov edx, 3
mov r14d, dword [rsp + 0x20]
mov r11d, edx
add r14d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov r8, qword [r10 + 8]
mov r9, qword [r10]
mov r12d, r8d
mov rdi, qword [r10 + 0x70]
sub r12d, r9d
add r12d, dword [rsp + 0x24]
cmp r14d, edx
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
cmovb r11d, r14d
add rcx, rdi
mov dword [rsp + 0x28], r11d
mov eax, dword [rcx]
prefetcht0 byte [rax + r8]
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x14006054d
mov rax, qword [rsp + 0x98]
mov ecx, dword [rdi + rax*4 + 0xc]
mov rax, qword [r10 + 0x80]
shr rcx, 8
prefetcht0 byte [rax + rcx*4]
mov dword [rsp + 0x20], ebx
mov ebp, ebx
test r11d, r11d
je 0x140060656
mov rax, qword [r10 + 0x70]
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
lea r11, [r8 + rax]
test eax, eax
je 0x140060750
mov eax, dword [r15]
cmp dword [r11], eax
jne 0x140060640
add r11, 4
lea rcx, [r15 + 4]
sub rcx, r11
mov r8, r13
add rcx, r9
mov rdx, r11
cmp rcx, r13
cmovb r8, rcx
lea rcx, [r15 + 4]
call fcn.14009ec70
mov r9, qword [rsp + 0x30]
mov rdi, rax
lea rcx, [rax + r11]
cmp rcx, r9
jne 0x140060604
mov rdx, qword [rsp + 0xa0]
lea rcx, [r15 + 4]
add rcx, rax
mov r8, r13
call fcn.14009ec70
mov r9, qword [rsp + 0x30]
add rdi, rax
lea rcx, [rdi + 4]
cmp rcx, rsi
jbe 0x140060636
mov eax, dword [rsp + 0x44]
mov rsi, rcx
sub eax, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x88]
sub eax, r12d
add eax, 3
mov qword [rdx], rax
lea rax, [rcx + r15]
cmp rax, r13
je 0x140060753
mov r10, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
add qword [rsp + 0x70], 4
inc ebp
mov dword [rsp + 0x20], ebp
cmp ebp, dword [rsp + 0x28]
jb 0x140060588
sub r14d, dword [rsp + 0x20]
mov edx, ebx
mov rax, qword [r10 + 0x70]
mov rcx, qword [rsp + 0x98]
movzx ebp, byte [rax + rcx*4 + 0xc]
mov edi, dword [rax + rcx*4 + 0xc]
shr edi, 8
cmp r14d, ebp
cmovbe ebp, r14d
test ebp, ebp
je 0x140060750
mov r11, qword [r10 + 0x80]
lea eax, [rdx + rdi]
mov eax, dword [r11 + rax*4]
prefetcht0 byte [rax + r8]
inc edx
cmp edx, ebp
jb 0x14006068b
mov rax, qword [r10 + 0x80]
mov eax, dword [rax + rdi*4]
mov dword [rsp + 0x24], eax
lea r11, [r8 + rax]
mov eax, dword [r15]
cmp dword [r11], eax
jne 0x14006073f
add r11, 4
lea rcx, [r15 + 4]
sub rcx, r11
mov r8, r13
add rcx, r9
mov rdx, r11
cmp rcx, r13
cmovb r8, rcx
lea rcx, [r15 + 4]
call fcn.14009ec70
mov r14, rax
lea rcx, [rax + r11]
cmp rcx, qword [rsp + 0x30]
jne 0x140060707
mov rdx, qword [rsp + 0xa0]
lea rcx, [r15 + 4]
add rcx, rax
mov r8, r13
call fcn.14009ec70
add r14, rax
add r14, 4
cmp r14, rsi
jbe 0x140060735
mov eax, dword [rsp + 0x44]
mov rsi, r14
sub eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x88]
sub eax, r12d
add eax, 3
mov qword [rcx], rax
lea rax, [r14 + r15]
cmp rax, r13
je 0x140060750
mov r10, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc edi
inc ebx
cmp ebx, ebp
jb 0x14006069d
mov rcx, rsi
mov rax, rcx
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.14001bf00
add rsp, 0x1c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret