Function at 0x140064688
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1d8
mov rax, qword [0x1400d6910]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov r12, qword [rcx + 8]
mov r11, rcx
mov rax, qword [rcx + 0x70]
mov r15, rdx
mov qword [rsp + 0x30], rax
mov ebp, edx
mov rax, qword [rcx + 0x38]
sub ebp, r12d
mov r10, qword [r11 + 0xf8]
mov qword [rsp + 0x20], rax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x4c], eax
add rax, r12
mov qword [rsp + 0xb0], rax
mov eax, ebp
sub eax, dword [r11 + 0x1c]
mov qword [rsp + 0x60], rdx
mov edx, 1
mov qword [rsp + 0x78], r9
mov r9, qword [r15]
mov qword [rsp + 0x68], r8
mov r8d, dword [rcx + 0x34]
mov ecx, dword [rcx + 0x100]
shl edx, cl
mov ecx, ebp
sub ecx, edx
mov dword [rsp + 0x2c], r8d
cmp eax, edx
mov qword [rsp + 0x50], r12
mov eax, dword [r11 + 0x10c]
cmovbe ecx, dword [r11 + 0x1c]
xor edi, edi
cmp dword [r11 + 0x28], edi
mov rdx, qword [r11 + 0x60]
cmovne ecx, dword [r11 + 0x1c]
mov dword [rsp + 0x48], ecx
lea r13d, [rdi + 1]
lea ecx, [rdi + 4]
mov dword [rsp + 0x40], ebp
cmp eax, ecx
mov qword [rsp + 0x80], rdx
lea esi, [rdi + 0x38]
mov qword [rsp + 0x88], r10
cmovb ecx, eax
lea r14d, [rdi + 3]
shl r13d, cl
movabs rax, 0xcf1bbcdcbb000000
imul r9, rax
mov rax, qword [r10 + 0x70]
mov ecx, esi
sub ecx, dword [r10 + 0x34]
mov rbx, r9
shr rbx, cl
mov ecx, ebx
mov qword [rsp + 0xa0], rbx
mov rbx, qword [r10 + 0x38]
shr rcx, 4
and ecx, 0xffffff0
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rbx
lea rax, [rax + rcx*4]
mov qword [rsp + 0xa8], rax
prefetcht0 byte [rax]
prefetcht0 byte [rbx + rcx]
cmp dword [r11 + 0x12c], edi
jne 0x140064a96
mov ebx, dword [r11 + 0x2c]
mov eax, ebp
sub eax, ebx
cmp eax, 0x180
jbe 0x14006496e
lea eax, [rbx + 0x60]
mov dword [rsp + 0x38], eax
cmp ebx, eax
jae 0x1400648bd
mov r15d, dword [rsp + 0x38]
lea r13, [r12 + 8]
mov rdi, qword [rsp + 0x20]
mov eax, esi
mov rsi, qword [rsp + 0x30]
sub eax, r8d
add r13, rbx
mov r12d, eax
mov r14d, ebx
movabs rbp, 0xcf1bbcdcbb000000
mov rdx, qword [r13]
mov ecx, r12d
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 [rsi + rax*4]
prefetcht0 byte [rax + rdi]
mov rax, r14
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 + rdi]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r14
not ecx
inc r13
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [rdx + r8], r10b
mov dword [rsi + rax*4], ebx
inc ebx
cmp ebx, r15d
jb 0x140064828
mov ebp, dword [rsp + 0x40]
xor edi, edi
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov r13d, dword [rsp + 0x28]
mov r12, qword [rsp + 0x50]
lea esi, [rdi + 0x38]
mov rcx, qword [r11 + 0x70]
lea ebx, [rbp - 0x20]
mov qword [rsp + 0x40], rcx
lea r9, [rbx + r12]
mov rcx, qword [r11 + 0x38]
lea rax, [r15 + 1]
mov qword [rsp + 0x38], rcx
mov r8d, ebx
cmp r9, rax
jbe 0x1400648e6
mov eax, edi
jmp 0x1400648f6
sub eax, r12d
mov ecx, 8
sub eax, ebx
inc eax
cmp eax, ecx
ja 0x1400648f8
mov ecx, eax
lea eax, [rcx + rbx]
cmp ebx, eax
jae 0x14006496e
mov r14, qword [rsp + 0x40]
mov r10d, esi
sub r10d, dword [r11 + 0x34]
movabs r12, 0xcf1bbcdcbb000000
mov r15, qword [rsp + 0x38]
mov r13d, ecx
mov rdx, qword [r9]
mov ecx, r10d
imul rdx, r12
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 + r15]
mov rax, r8
inc r9
and eax, 7
inc r8
mov dword [r11 + rax*4 + 0x40], edx
sub r13, 1
jne 0x14006491d
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov r13d, dword [rsp + 0x28]
mov r12, qword [rsp + 0x50]
mov rax, qword [r11 + 0x70]
mov rcx, qword [r11 + 0x38]
mov qword [rsp + 0x40], rax
mov rax, qword [r11 + 8]
cmp ebx, ebp
jae 0x140064a3c
mov r15, qword [rsp + 0x40]
lea r13, [rax + 8]
mov r14d, esi
mov r12d, ebx
sub r14d, dword [r11 + 0x34]
mov rdi, rcx
add r13, r12
movabs rsi, 0xcf1bbcdcbb000000
mov rdx, qword [r13]
mov ecx, r14d
imul rdx, rsi
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 [rdi + 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 + rdi]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r12
not ecx
inc r13
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], ebx
inc ebx
cmp ebx, ebp
jb 0x1400649aa
mov r14, qword [rsp + 0x58]
xor edi, edi
mov r15, qword [rsp + 0x60]
mov r13d, dword [rsp + 0x28]
mov r12, qword [rsp + 0x50]
lea esi, [rdi + 0x38]
sub esi, dword [rsp + 0x2c]
movabs rax, 0xcf1bbcdcbb000000
mov cl, sil
mov r8d, ebp
mov dword [r11 + 0x2c], ebp
mov rdx, qword [r8 + r12 + 8]
imul rdx, rax
xor rdx, qword [rsp + 0x80]
shr rdx, cl
mov rcx, qword [rsp + 0x30]
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [rcx + rax*4]
mov r10, qword [rsp + 0x20]
prefetcht0 byte [rax + r10]
and r8d, 7
mov r9d, dword [r11 + r8*4 + 0x40]
mov dword [r11 + r8*4 + 0x40], edx
jmp 0x140064ab0
mov r10, qword [rsp + 0x20]
sub esi, r8d
mov cl, sil
mov dword [r11 + 0x2c], ebp
xor r9, rdx
shr r9, cl
mov rcx, qword [rsp + 0x30]
add dword [r11 + 0x68], r9d
mov eax, r9d
shr rax, 4
mov rbx, rdi
and eax, 0xffffff0
mov rsi, rdi
lea rcx, [rcx + rax*4]
lea r12, [rax + r10]
mov qword [rsp + 0x20], 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 0x140064b6f
mov r14, qword [rsp + 0x20]
mov edx, r8d
mov r8, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x48]
test r13d, r13d
je 0x140064b65
bsf rcx, r10
add ecx, edx
and ecx, 0xf
je 0x140064b5c
mov ecx, dword [r14 + rcx*4]
cmp ecx, r15d
jb 0x140064b65
prefetcht0 byte [rcx + r8]
mov dword [rsp + rbx*4 + 0xc0], ecx
inc rbx
dec r13d
lea rax, [r10 - 1]
and r10, rax
ja 0x140064b31
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
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 rax, qword [rsp + 0x20]
mov dword [rax + rdx*4], ecx
test rbx, rbx
je 0x140064c04
mov r11, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x78]
mov edx, dword [rsp + rsi*4 + 0xc0]
mov eax, dword [r14 + r15 - 3]
add rdx, rdi
cmp dword [rdx + r14 - 3], eax
jne 0x140064bfa
mov r8, r11
mov rcx, r15
call fcn.14009ec70
mov r8, rax
cmp rax, r14
jbe 0x140064bfa
mov r14, rax
mov eax, ebp
sub eax, dword [rsp + rsi*4 + 0xc0]
add eax, 3
mov qword [r12], rax
lea rax, [r14 + r15]
cmp rax, r11
je 0x140064c02
inc rsi
cmp rsi, rbx
jb 0x140064bb5
xor edi, edi
mov rcx, qword [rsp + 0x90]
mov rsi, rdi
mov rdx, qword [rsp + 0x98]
mov r11, qword [rsp + 0x88]
movdqu xmm0, xmmword [rdx + rcx]
movzx r10d, byte [rdx + rcx]
mov rax, qword [r11]
and r10d, 0xf
mov rbx, qword [r11 + 8]
mov ecx, r10d
mov qword [rsp + 0x20], rax
neg ecx
and ecx, 0xf
mov qword [rsp + 0x30], rbx
mov r12d, ebx
sub r12d, eax
movsx eax, byte [rsp + 0xa0]
add r12d, dword [rsp + 0x4c]
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, r10b
movzx r9d, ax
movzx eax, dx
shr rax, cl
or r9, rax
jbe 0x140064d7d
mov rdx, qword [rsp + 0xa8]
test r13d, r13d
je 0x140064cca
bsf rcx, r9
add ecx, r10d
and ecx, 0xf
je 0x140064cc1
mov ecx, dword [rdx + rcx*4]
cmp ecx, dword [r11 + 0x18]
jb 0x140064cca
prefetcht0 byte [rcx + rbx]
mov dword [rsp + rsi*4 + 0xc0], ecx
inc rsi
dec r13d
lea rax, [r9 - 1]
and r9, rax
ja 0x140064c96
test rsi, rsi
je 0x140064d7d
mov r11d, dword [rsp + rdi*4 + 0xc0]
mov eax, dword [r15]
add r11, rbx
cmp dword [r11], eax
jne 0x140064d71
mov r8, qword [rsp + 0x68]
lea r13, [r15 + 4]
mov rcx, qword [rsp + 0x20]
add r11, 4
mov rax, r13
mov rdx, r11
sub rax, r11
add rcx, rax
cmp rcx, r8
cmovb r8, rcx
mov rcx, r13
call fcn.14009ec70
mov rbx, rax
add rax, r11
mov r11, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x20]
jne 0x140064d40
mov rdx, qword [rsp + 0xb0]
lea rcx, [rbx + r13]
mov r8, r11
call fcn.14009ec70
add rbx, rax
add rbx, 4
cmp rbx, r14
jbe 0x140064d6c
mov rax, qword [rsp + 0x78]
mov ecx, ebp
sub ecx, dword [rsp + rdi*4 + 0xc0]
mov r14, rbx
sub ecx, r12d
add ecx, 3
mov qword [rax], rcx
lea rcx, [rbx + r15]
cmp rcx, r11
je 0x140064d7d
mov rbx, qword [rsp + 0x30]
inc rdi
cmp rdi, rsi
jb 0x140064cd3
mov rax, r14
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.14001bf00
add rsp, 0x1d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret