Function at 0x1400aa340
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1b8
mov rax, qword [0x140114e78]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
mov r13, qword [rcx + 8]
mov r11, rcx
mov r14, qword [rcx + 0x70]
mov rbx, rdx
mov r10d, dword [rcx + 0x34]
mov edi, 1
mov qword [rsp + 0x68], rdx
mov rsi, r8
mov eax, dword [r11 + 0x18]
mov ebp, ebx
sub ebp, r13d
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x2c], ebp
mov r12d, 3
mov qword [rsp + 0x98], r9
mov r9d, ebx
lea rdx, [rax + r13]
mov qword [rsp + 0x50], r8
mov r8, qword [rcx + 0x38]
sub r9d, r13d
mov rcx, qword [rcx + 0x10]
add rax, rcx
mov qword [rsp + 0x80], rcx
mov ecx, dword [r11 + 0x100]
mov qword [rsp + 0x88], rax
mov eax, ebp
mov qword [rsp + 0x90], rdx
mov edx, edi
shl edx, cl
mov ecx, dword [r11 + 0x1c]
sub ebp, edx
sub eax, ecx
mov qword [rsp + 0x48], r14
cmp eax, edx
mov qword [rsp + 0x60], r8
mov eax, dword [r11 + 0x10c]
cmovbe ebp, ecx
mov dword [rsp + 0x28], r10d
cmp dword [r11 + 0x28], 0
mov qword [rsp + 0x38], r13
cmovne ebp, ecx
mov dword [rsp + 0x24], r9d
mov ecx, 6
mov dword [rsp + 0x58], ebp
cmp eax, ecx
mov dword [rsp + 0x40], 0x3f
cmovb ecx, eax
mov rax, qword [r11 + 0x60]
shl edi, cl
xor r15d, r15d
lea ecx, [r12 + 0x35]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x44], edi
cmp dword [r11 + 0x12c], r15d
jne 0x1400aa746
mov r10d, dword [r11 + 0x2c]
mov eax, r9d
sub eax, r10d
mov rbp, r8
mov r8d, dword [rsp + 0x28]
mov rdx, r13
movabs r13, 0xcf1bbcdcbb000000
cmp eax, 0x180
jbe 0x1400aa61b
mov r8, qword [rsp + 0x38]
lea edx, [r10 + 0x60]
mov qword [rsp + 0x78], r8
cmp r10d, edx
jae 0x1400aa55e
mov rbx, qword [rsp + 0x48]
lea r14, [r8 + 8]
mov r12, qword [rsp + 0x60]
mov esi, ecx
sub esi, dword [rsp + 0x28]
mov ebp, r10d
add r14, r10
mov edi, edx
nop
mov rdx, qword [r14]
mov ecx, esi
imul rdx, r13
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [rbx + rax*4]
prefetcht0 byte [rbx + rax*4 + 0x40]
prefetcht0 byte [r12 + rax]
prefetcht0 byte [r12 + rax + 0x20]
mov rax, rbp
lea r14, [r14 + 1]
and eax, 7
mov r9d, dword [r11 + rax*4 + 0x40]
mov r8d, r9d
mov dword [r11 + rax*4 + 0x40], edx
mov eax, r15d
shr r8, 2
and r8d, 0x3fffffc0
movzx ecx, byte [r8 + r12]
lea rdx, [r8 + r12]
dec ecx
and ecx, 0x3f
cmove eax, dword [rsp + 0x40]
inc rbp
add ecx, eax
mov byte [rdx], cl
mov eax, ecx
add rax, r8
mov byte [rdx + rcx], r9b
mov dword [rbx + rax*4], r10d
inc r10d
cmp r10d, edi
jb 0x1400aa4b0
mov rax, qword [r11 + 8]
mov r12d, 3
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x50]
mov edi, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x24]
lea ecx, [r12 + 0x35]
mov qword [rsp + 0x78], rax
mov edx, dword [r11 + 0x34]
lea r10d, [r9 - 0x20]
mov r9, qword [rsp + 0x38]
lea rax, [rbx + 1]
mov r14, qword [r11 + 0x70]
mov rbp, qword [r11 + 0x38]
mov dword [rsp + 0x30], edx
mov edx, eax
sub edx, dword [rsp + 0x38]
sub edx, r10d
mov r8d, r10d
inc edx
add r9, r8
cmp r9, rax
mov eax, 8
cmova edx, r15d
cmp edx, eax
cmova edx, eax
lea eax, [r10 + rdx]
cmp r10d, eax
jae 0x1400aa608
sub ecx, dword [rsp + 0x30]
mov esi, edx
nop dword [rax]
mov rdx, qword [r9]
imul rdx, r13
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [r14 + rax*4 + 0x40]
prefetcht0 byte [rax + rbp]
prefetcht0 byte [rax + rbp + 0x20]
mov rax, r8
lea r9, [r9 + 1]
and eax, 7
inc r8
mov dword [r11 + rax*4 + 0x40], edx
sub rsi, 1
jne 0x1400aa5b0
mov r14, qword [r11 + 0x70]
mov rbp, qword [r11 + 0x38]
mov rdx, qword [r11 + 8]
mov rsi, qword [rsp + 0x50]
jmp 0x1400aa60d
mov rdx, qword [rsp + 0x78]
mov r8d, dword [r11 + 0x34]
mov ecx, 0x38
mov r9d, dword [rsp + 0x24]
cmp r10d, r9d
jae 0x1400aa6e2
mov ebx, dword [rsp + 0x24]
lea r12, [r10 + 8]
mov edi, ecx
mov esi, r10d
sub edi, r8d
add r12, rdx
nop word [rax + rax]
mov rdx, qword [r12]
mov ecx, edi
imul rdx, r13
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [r14 + rax*4 + 0x40]
prefetcht0 byte [rax + rbp]
prefetcht0 byte [rax + rbp + 0x20]
mov rax, rsi
lea r12, [r12 + 1]
and eax, 7
mov r9d, dword [r11 + rax*4 + 0x40]
mov r8d, r9d
mov dword [r11 + rax*4 + 0x40], edx
mov eax, r15d
shr r8, 2
and r8d, 0x3fffffc0
movzx ecx, byte [r8 + rbp]
lea rdx, [r8 + rbp]
dec ecx
and ecx, 0x3f
cmove eax, dword [rsp + 0x40]
inc rsi
add ecx, eax
mov byte [rdx], cl
mov eax, ecx
add rax, r8
mov byte [rdx + rcx], r9b
mov dword [r14 + rax*4], r10d
inc r10d
cmp r10d, ebx
jb 0x1400aa640
mov rbx, qword [rsp + 0x68]
mov r12d, 3
mov rsi, qword [rsp + 0x50]
mov edi, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x24]
mov rax, qword [rsp + 0x38]
mov ecx, 0x38
sub ecx, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
mov r14, qword [rsp + 0x48]
mov dword [r11 + 0x2c], r9d
mov rdx, qword [r8 + rax + 8]
imul rdx, r13
xor rdx, qword [rsp + 0x70]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [r14 + rax*4 + 0x40]
mov rcx, qword [rsp + 0x60]
prefetcht0 byte [rax + rcx]
prefetcht0 byte [rax + rcx + 0x20]
and r8d, 7
mov ebp, dword [r11 + r8*4 + 0x40]
mov dword [r11 + r8*4 + 0x40], edx
mov r8, rcx
jmp 0x1400aa768
mov rbp, qword [rbx]
movabs r13, 0xcf1bbcdcbb000000
imul rbp, r13
sub ecx, r10d
xor rbp, rax
mov eax, dword [rsp + 0x2c]
shr rbp, cl
mov dword [r11 + 0x2c], eax
add dword [r11 + 0x68], ebp
mov eax, ebp
shr rax, 2
mov r13, r15
and eax, 0x3fffffc0
movdqu xmm0, xmmword [rax + r8]
lea rcx, [r14 + rax*4]
movzx r14d, byte [rax + r8]
mov qword [rsp + 0x48], rcx
lea rcx, [rax + r8]
mov rdx, qword [rsp + 0x48]
movsx eax, bpl
mov qword [rsp + 0x70], rcx
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
movdqa xmm1, xmm2
pcmpeqb xmm1, xmm0
movdqu xmm0, xmmword [rcx + 0x10]
pmovmskb r9d, xmm1
movdqu xmm1, xmmword [rcx + 0x20]
pcmpeqb xmm0, xmm2
pmovmskb r8d, xmm0
pcmpeqb xmm1, xmm2
movdqu xmm0, xmmword [rcx + 0x30]
movzx ecx, r14b
pmovmskb eax, xmm1
and cl, 0x3f
pcmpeqb xmm0, xmm2
pmovmskb r10d, xmm0
shl r10, 0x10
or r10, rax
movsxd rax, r8d
shl r10, 0x10
or r10, rax
movsxd rax, r9d
shl r10, 0x10
or r10, rax
ror r10, cl
test r10, r10
je 0x1400aa86f
mov rsi, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x80]
test edi, edi
je 0x1400aa865
bsf rcx, r10
add ecx, r14d
and ecx, 0x3f
mov ecx, dword [rdx + rcx*4]
je 0x1400aa85c
cmp ecx, r8d
jb 0x1400aa865
cmp ecx, r9d
jb 0x1400aa84b
prefetcht0 byte [rcx + rsi]
jmp 0x1400aa84f
prefetcht0 byte [rcx + rbx]
mov dword [rsp + r13*4 + 0xa0], ecx
inc r13
dec edi
lea rax, [r10 - 1]
and r10, rax
ja 0x1400aa828
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x50]
lea ecx, [r14 - 1]
mov eax, r15d
and ecx, 0x3f
mov r8d, 0x3f
cmove eax, r8d
add ecx, eax
mov rax, qword [rsp + 0x70]
mov byte [rax], cl
mov byte [rcx + rax], bpl
mov eax, dword [r11 + 0x2c]
mov dword [rdx + rcx*4], eax
inc dword [r11 + 0x2c]
test r13, r13
je 0x1400aaa21
mov ecx, dword [rsp + 0x20]
nop dword [rax + rax]
mov r14d, dword [rsp + r15*4 + 0xa0]
mov eax, r14d
cmp r14d, ecx
jb 0x1400aa97c
mov rdx, qword [rsp + 0x38]
add rdx, rax
mov eax, dword [r12 + rbx - 3]
cmp dword [rdx + r12 - 3], eax
jne 0x1400aaa11
lea r8, [rsi - 7]
mov rax, rbx
cmp rbx, r8
jae 0x1400aa925
mov rcx, qword [rdx]
xor rcx, qword [rbx]
je 0x1400aa8fd
bsf rcx, rcx
shr rcx, 3
jmp 0x1400aa9eb
add rax, 8
add rdx, 8
cmp rax, r8
jae 0x1400aa925
nop word [rax + rax]
mov rcx, qword [rax]
xor rcx, qword [rdx]
jne 0x1400aa96c
add rax, 8
add rdx, 8
cmp rax, r8
jb 0x1400aa910
lea rcx, [rsi - 3]
cmp rax, rcx
jae 0x1400aa93c
mov ecx, dword [rax]
cmp dword [rdx], ecx
jne 0x1400aa93c
add rax, 4
add rdx, 4
lea rcx, [rsi - 1]
cmp rax, rcx
jae 0x1400aa955
movzx ecx, word [rax]
cmp word [rdx], cx
jne 0x1400aa955
add rax, 2
add rdx, 2
cmp rax, rsi
jae 0x1400aa964
movzx ecx, byte [rax]
cmp byte [rdx], cl
jne 0x1400aa964
inc rax
mov rcx, rax
sub rcx, rbx
jmp 0x1400aa9eb
bsf rcx, rcx
shr rcx, 3
sub rcx, rbx
add rcx, rax
jmp 0x1400aa9eb
mov r11, qword [rsp + 0x80]
add r11, rax
mov eax, dword [rbx]
cmp dword [r11], eax
jne 0x1400aaa15
mov rcx, qword [rsp + 0x88]
lea rbp, [rbx + 4]
add r11, 4
mov rax, rbp
sub rax, r11
mov r8, rsi
add rcx, rax
mov rdx, r11
cmp rcx, rsi
cmovb r8, rcx
mov rcx, rbp
call fcn.140092810
mov rdi, rax
add rax, r11
cmp rax, qword [rsp + 0x88]
jne 0x1400aa9e7
mov rdx, qword [rsp + 0x90]
lea rcx, [rdi + rbp]
mov r8, rsi
call fcn.140092810
add rdi, rax
lea rcx, [rdi + 4]
cmp rcx, r12
jbe 0x1400aaa11
mov eax, dword [rsp + 0x2c]
mov r12, rcx
mov rdx, qword [rsp + 0x98]
sub eax, r14d
add eax, 3
mov qword [rdx], rax
lea rax, [rcx + rbx]
cmp rax, rsi
je 0x1400aaa21
mov ecx, dword [rsp + 0x20]
inc r15
cmp r15, r13
jb 0x1400aa8b0
mov rax, r12
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.1400db3a0
add rsp, 0x1b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret