Function at 0x14006315c
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 r12, qword [rcx + 8]
mov r11, rcx
mov rax, qword [rcx + 0x70]
mov ebp, edx
mov qword [rsp + 0x60], rax
sub ebp, r12d
mov rax, qword [rcx + 0x38]
mov r15, rdx
mov r10, qword [r11 + 0xf8]
mov qword [rsp + 0x20], rax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x44], eax
add rax, r12
mov qword [rsp + 0xa8], rax
mov eax, ebp
sub eax, dword [r11 + 0x1c]
mov qword [rsp + 0x30], rdx
mov edx, 1
mov qword [rsp + 0x58], r8
mov r8d, dword [rcx + 0x34]
mov ecx, dword [rcx + 0x100]
shl edx, cl
mov ecx, ebp
sub ecx, edx
mov qword [rsp + 0x70], r9
mov r9, qword [r11 + 0x60]
cmp eax, edx
mov eax, dword [r11 + 0x10c]
cmovbe ecx, dword [r11 + 0x1c]
xor edi, edi
cmp dword [r11 + 0x28], edi
mov dword [rsp + 0x2c], r8d
cmovne ecx, dword [r11 + 0x1c]
mov dword [rsp + 0x40], ecx
lea r13d, [rdi + 1]
lea ecx, [rdi + 4]
mov qword [rsp + 0x50], r12
cmp eax, ecx
mov qword [rsp + 0x78], r9
lea esi, [rdi + 0x18]
mov qword [rsp + 0x80], r10
cmovb ecx, eax
lea r14d, [rdi + 3]
imul edx, dword [r15], 0x9e3779b1
mov rax, qword [r10 + 0x70]
shl r13d, cl
mov ecx, esi
sub ecx, dword [r10 + 0x34]
mov dword [rsp + 0x28], r13d
mov ebx, edx
shr rbx, cl
mov ecx, ebx
mov qword [rsp + 0x98], rbx
mov rbx, qword [r10 + 0x38]
shr rcx, 4
and ecx, 0xffffff0
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rbx
lea rax, [rax + rcx*4]
mov qword [rsp + 0xa0], rax
prefetcht0 byte [rax]
prefetcht0 byte [rbx + rcx]
cmp dword [r11 + 0x12c], edi
jne 0x140063520
mov ebx, dword [r11 + 0x2c]
mov eax, ebp
sub eax, ebx
cmp eax, 0x180
jbe 0x14006340a
lea eax, [rbx + 0x60]
cmp ebx, eax
jae 0x14006336c
mov rdi, qword [rsp + 0x20]
lea r14, [r12 + 8]
mov r12, qword [rsp + 0x60]
mov r15d, esi
sub r15d, r8d
mov esi, ebx
add r14, rbx
mov r13d, eax
mov eax, dword [r11 + 0x60]
mov rcx, r15
imul edx, dword [r14], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov ecx, 0xffffff0
mov eax, edx
shr rax, 4
and rax, rcx
prefetcht0 byte [r12 + rax*4]
prefetcht0 byte [rax + rdi]
mov rax, rsi
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 rsi
not ecx
inc r14
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [rdx + r8], r10b
mov dword [r12 + rax*4], ebx
inc ebx
cmp ebx, r13d
jb 0x1400632d7
mov r14, qword [rsp + 0x48]
xor edi, edi
mov r15, qword [rsp + 0x30]
mov r13d, dword [rsp + 0x28]
mov r12, qword [rsp + 0x50]
lea esi, [rdi + 0x18]
mov rcx, qword [r11 + 0x70]
lea ebx, [rbp - 0x20]
mov qword [rsp + 0x38], rcx
lea r9, [rbx + r12]
mov rcx, qword [r11 + 0x38]
lea rax, [r15 + 1]
mov qword [rsp + 0x68], rcx
mov r8d, ebx
cmp r9, rax
jbe 0x140063395
mov eax, edi
jmp 0x1400633a5
sub eax, r12d
mov ecx, 8
sub eax, ebx
inc eax
cmp eax, ecx
ja 0x1400633a7
mov ecx, eax
lea eax, [rcx + rbx]
cmp ebx, eax
jae 0x14006340a
sub esi, dword [r11 + 0x34]
mov r13, qword [rsp + 0x38]
mov r14, qword [rsp + 0x68]
mov r10d, ecx
mov eax, dword [r11 + 0x60]
mov rcx, rsi
imul edx, dword [r9], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r13 + rax*4]
prefetcht0 byte [rax + r14]
mov rax, r8
inc r9
and eax, 7
inc r8
mov dword [r11 + rax*4 + 0x40], edx
sub r10, 1
jne 0x1400633bf
mov r14, qword [rsp + 0x48]
mov r13d, dword [rsp + 0x28]
mov rcx, qword [r11 + 0x38]
mov rax, qword [r11 + 0x70]
mov qword [rsp + 0x38], rcx
mov rcx, qword [r11 + 8]
cmp ebx, ebp
jae 0x1400634cf
mov r13, qword [rsp + 0x38]
lea r12, [rcx + 8]
mov r15d, 0x18
mov esi, ebx
sub r15d, dword [r11 + 0x34]
mov r14, rax
add r12, rsi
mov eax, dword [r11 + 0x60]
mov rcx, r15
imul edx, dword [r12], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov ecx, 0xffffff0
mov eax, edx
shr rax, 4
and rax, rcx
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [rax + r13]
mov rax, rsi
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 + r13]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc rsi
not ecx
inc r12
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [r8 + rdx], r10b
mov dword [r14 + rax*4], ebx
inc ebx
cmp ebx, ebp
jb 0x14006343e
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x30]
mov r13d, dword [rsp + 0x28]
mov r12, qword [rsp + 0x50]
mov eax, dword [rsp + 0x78]
mov ecx, 0x18
sub ecx, dword [rsp + 0x2c]
mov dword [r11 + 0x2c], ebp
imul edx, dword [rbp + r12 + 8], 0x9e3779b1
mov r8d, ebp
xor rdx, rax
shr rdx, cl
mov rcx, qword [rsp + 0x60]
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 0x14006353e
mov r10, qword [rsp + 0x20]
mov ecx, esi
mov r9d, r9d
sub ecx, r8d
mov eax, edx
xor r9, rax
mov dword [r11 + 0x2c], ebp
shr r9, cl
mov rcx, qword [rsp + 0x60]
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 0x1400635fd
mov r14, qword [rsp + 0x20]
mov edx, r8d
mov r8, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x40]
test r13d, r13d
je 0x1400635f3
bsf rcx, r10
add ecx, edx
and ecx, 0xf
je 0x1400635ea
mov ecx, dword [r14 + rcx*4]
cmp ecx, r15d
jb 0x1400635f3
prefetcht0 byte [rcx + r8]
mov dword [rsp + rbx*4 + 0xb0], ecx
inc rbx
dec r13d
lea rax, [r10 - 1]
and r10, rax
ja 0x1400635bf
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x30]
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 0x140063692
mov r11, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x70]
mov edx, dword [rsp + rsi*4 + 0xb0]
mov eax, dword [r14 + r15 - 3]
add rdx, rdi
cmp dword [rdx + r14 - 3], eax
jne 0x140063688
mov r8, r11
mov rcx, r15
call fcn.14009ec70
mov r8, rax
cmp rax, r14
jbe 0x140063688
mov r14, rax
mov eax, ebp
sub eax, dword [rsp + rsi*4 + 0xb0]
add eax, 3
mov qword [r12], rax
lea rax, [r14 + r15]
cmp rax, r11
je 0x140063690
inc rsi
cmp rsi, rbx
jb 0x140063643
xor edi, edi
mov rcx, qword [rsp + 0x88]
mov rsi, rdi
mov rdx, qword [rsp + 0x90]
mov r11, qword [rsp + 0x80]
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 + 0x30], rax
neg ecx
and ecx, 0xf
mov qword [rsp + 0x20], rbx
mov r12d, ebx
sub r12d, eax
movsx eax, byte [rsp + 0x98]
add r12d, dword [rsp + 0x44]
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 0x14006380b
mov rdx, qword [rsp + 0xa0]
test r13d, r13d
je 0x140063758
bsf rcx, r9
add ecx, r10d
and ecx, 0xf
je 0x14006374f
mov ecx, dword [rdx + rcx*4]
cmp ecx, dword [r11 + 0x18]
jb 0x140063758
prefetcht0 byte [rcx + rbx]
mov dword [rsp + rsi*4 + 0xb0], ecx
inc rsi
dec r13d
lea rax, [r9 - 1]
and r9, rax
ja 0x140063724
test rsi, rsi
je 0x14006380b
mov r11d, dword [rsp + rdi*4 + 0xb0]
mov eax, dword [r15]
add r11, rbx
cmp dword [r11], eax
jne 0x1400637ff
mov r8, qword [rsp + 0x58]
lea r13, [r15 + 4]
mov rcx, qword [rsp + 0x30]
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 + 0x58]
cmp rax, qword [rsp + 0x30]
jne 0x1400637ce
mov rdx, qword [rsp + 0xa8]
lea rcx, [rbx + r13]
mov r8, r11
call fcn.14009ec70
add rbx, rax
add rbx, 4
cmp rbx, r14
jbe 0x1400637fa
mov rax, qword [rsp + 0x70]
mov ecx, ebp
sub ecx, dword [rsp + rdi*4 + 0xb0]
mov r14, rbx
sub ecx, r12d
add ecx, 3
mov qword [rax], rcx
lea rcx, [rbx + r15]
cmp rcx, r11
je 0x14006380b
mov rbx, qword [rsp + 0x20]
inc rdi
cmp rdi, rsi
jb 0x140063761
mov rax, r14
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