Function at 0x1400a8fd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmmword [rsp + 0x20], xmm6
mov rsi, rdx
mov rbp, rcx
mov edi, dword [rdx]
inc edi
shl rdi, 2
test r9, r9
je 0x1400a9134
mov r12, r9
mov r15, r8
mov r14, qword [rsp + 0xb8]
lea r13, [r8 + r9]
mov r8d, 0x1000
mov rcx, r14
xor edx, edx
call fcn.140124a30
cmp r12, 0x14
jl 0x1400a914f
lea rax, [r12 + r15]
add rax, 0xfffffffffffffff1
mov edx, dword [r15]
nop word [rax + rax]
mov ebx, dword [r15 + 4]
movzx ecx, dl
inc dword [r14 + rcx*4]
movzx ecx, dh
inc dword [r14 + rcx*4 + 0x400]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
inc dword [r14 + rcx*4 + 0x800]
shr edx, 0x18
inc dword [r14 + rdx*4 + 0xc00]
mov ecx, dword [r15 + 8]
movzx edx, bl
inc dword [r14 + rdx*4]
movzx edx, bh
inc dword [r14 + rdx*4 + 0x400]
mov rdx, rbx
shr rdx, 0xe
and edx, 0x3fc
inc dword [r14 + rdx + 0x800]
shr rbx, 0x18
inc dword [r14 + rbx*4 + 0xc00]
mov ebx, dword [r15 + 0xc]
movzx edx, cl
inc dword [r14 + rdx*4]
movzx edx, ch
inc dword [r14 + rdx*4 + 0x400]
mov rdx, rcx
shr rdx, 0xe
and edx, 0x3fc
inc dword [r14 + rdx + 0x800]
shr rcx, 0x18
inc dword [r14 + rcx*4 + 0xc00]
mov edx, dword [r15 + 0x10]
movzx ecx, bl
inc dword [r14 + rcx*4]
movzx ecx, bh
inc dword [r14 + rcx*4 + 0x400]
mov rcx, rbx
shr rcx, 0xe
and ecx, 0x3fc
inc dword [r14 + rcx + 0x800]
shr rbx, 0x18
inc dword [r14 + rbx*4 + 0xc00]
lea rcx, [r15 + 0x10]
add r15, 0x14
cmp r15, rax
mov r15, rcx
jb 0x1400a9040
cmp rcx, r13
jb 0x1400a9157
jmp 0x1400a91b8
xor r15d, r15d
mov rcx, rbp
xor edx, edx
mov r8, rdi
call fcn.140124a30
mov dword [rsi], 0
jmp 0x1400a934b
mov rcx, r15
cmp rcx, r13
jae 0x1400a91b8
mov edx, r13d
sub edx, ecx
mov rax, rcx
not rax
add rax, r13
and rdx, 3
je 0x1400a9180
nop dword [rax + rax]
movzx r8d, byte [rcx]
inc rcx
inc dword [r14 + r8*4]
dec rdx
jne 0x1400a9170
cmp rax, 3
jb 0x1400a91b8
nop word cs:[rax + rax]
movzx eax, byte [rcx]
inc dword [r14 + rax*4]
movzx eax, byte [rcx + 1]
inc dword [r14 + rax*4]
movzx eax, byte [rcx + 2]
inc dword [r14 + rax*4]
movzx eax, byte [rcx + 3]
inc dword [r14 + rax*4]
add rcx, 4
cmp rcx, r13
jb 0x1400a9190
mov eax, dword [rsp + 0xb0]
pxor xmm1, xmm1
xor ecx, ecx
movdqa xmm0, xmmword [0x140158300]
pxor xmm2, xmm2
nop word cs:[rax + rax]
movdqu xmm3, xmmword [r14 + rcx*4 + 0x400]
movdqu xmm4, xmmword [r14 + rcx*4 + 0x410]
movdqu xmm5, xmmword [r14 + rcx*4 + 0x800]
paddd xmm5, xmm3
movdqu xmm3, xmmword [r14 + rcx*4 + 0x810]
paddd xmm3, xmm4
movdqu xmm4, xmmword [r14 + rcx*4 + 0xc00]
movdqu xmm6, xmmword [r14 + rcx*4 + 0xc10]
movdqu xmm7, xmmword [r14 + rcx*4]
paddd xmm7, xmm4
paddd xmm7, xmm5
movdqu xmm4, xmmword [r14 + rcx*4 + 0x10]
paddd xmm4, xmm6
paddd xmm4, xmm3
movdqu xmmword [r14 + rcx*4], xmm7
movdqu xmmword [r14 + rcx*4 + 0x10], xmm4
movdqa xmm3, xmm7
pxor xmm3, xmm0
movdqa xmm5, xmm1
pxor xmm5, xmm0
pcmpgtd xmm3, xmm5
pand xmm7, xmm3
pandn xmm3, xmm1
movdqa xmm1, xmm3
por xmm1, xmm7
movdqa xmm3, xmm4
pxor xmm3, xmm0
movdqa xmm5, xmm2
pxor xmm5, xmm0
pcmpgtd xmm3, xmm5
pand xmm4, xmm3
pandn xmm3, xmm2
movdqa xmm2, xmm3
por xmm2, xmm4
add rcx, 8
cmp rcx, 0x100
jne 0x1400a91e0
movdqa xmm3, xmm2
pxor xmm3, xmm0
movdqa xmm4, xmm1
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
pand xmm1, xmm4
pandn xmm4, xmm2
por xmm4, xmm1
pshufd xmm1, xmm4, 0xee
movdqa xmm2, xmm4
pxor xmm2, xmm0
movdqa xmm3, xmm1
pxor xmm3, xmm0
pcmpgtd xmm2, xmm3
pand xmm4, xmm2
pandn xmm2, xmm1
por xmm2, xmm4
pshufd xmm1, xmm2, 0x55
movdqa xmm3, xmm2
pxor xmm3, xmm0
pxor xmm0, xmm1
pcmpgtd xmm3, xmm0
pand xmm2, xmm3
pandn xmm3, xmm1
por xmm3, xmm2
movd ebx, xmm3
mov ecx, 0x100
nop word cs:[rax + rax]
dec ecx
cmp dword [r14 + rcx*4], 0
je 0x1400a9320
test eax, eax
je 0x1400a9338
mov r15, 0xffffffffffffffd0
cmp ecx, dword [rsi]
ja 0x1400a934b
mov dword [rsi], ecx
mov rcx, rbp
mov rdx, r14
mov r8, rdi
call fcn.140124380
mov r15d, ebx
mov rax, r15
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret