Function at 0x140001a60
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 r12, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
mov rdi, qword [rsp + 0xb8]
lea r13, [r8 + r9]
mov ebp, dword [rdx]
inc ebp
mov r8d, 0x1000
mov rcx, rdi
xor edx, edx
call fcn.140009db0
cmp r12, 0x14
jl 0x140001ba1
lea rax, [r15 + r12]
add rax, 0xfffffffffffffff1
mov edx, dword [r15]
nop dword [rax]
mov ebx, dword [r15 + 4]
movzx ecx, dl
inc dword [rdi + rcx*4]
movzx ecx, dh
inc dword [rdi + rcx*4 + 0x400]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
inc dword [rdi + rcx*4 + 0x800]
shr edx, 0x18
inc dword [rdi + rdx*4 + 0xc00]
mov ecx, dword [r15 + 8]
movzx edx, bl
inc dword [rdi + rdx*4]
movzx edx, bh
inc dword [rdi + rdx*4 + 0x400]
mov rdx, rbx
shr rdx, 0xe
and edx, 0x3fc
inc dword [rdi + rdx + 0x800]
shr rbx, 0x18
inc dword [rdi + rbx*4 + 0xc00]
mov ebx, dword [r15 + 0xc]
movzx edx, cl
inc dword [rdi + rdx*4]
movzx edx, ch
inc dword [rdi + rdx*4 + 0x400]
mov rdx, rcx
shr rdx, 0xe
and edx, 0x3fc
inc dword [rdi + rdx + 0x800]
shr rcx, 0x18
inc dword [rdi + rcx*4 + 0xc00]
mov edx, dword [r15 + 0x10]
movzx ecx, bl
inc dword [rdi + rcx*4]
movzx ecx, bh
inc dword [rdi + rcx*4 + 0x400]
mov rcx, rbx
shr rcx, 0xe
and ecx, 0x3fc
inc dword [rdi + rcx + 0x800]
shr rbx, 0x18
inc dword [rdi + rbx*4 + 0xc00]
lea rcx, [r15 + 0x10]
add r15, 0x14
cmp r15, rax
mov r15, rcx
jb 0x140001ac0
cmp rcx, r13
jb 0x140001ba9
jmp 0x140001c04
mov rcx, r15
cmp rcx, r13
jae 0x140001c04
mov edx, r13d
sub edx, ecx
mov rax, rcx
not rax
add rax, r13
and edx, 3
je 0x140001bd0
nop dword [rax]
movzx r8d, byte [rcx]
inc rcx
inc dword [rdi + r8*4]
dec rdx
jne 0x140001bc0
cmp rax, 3
jb 0x140001c04
nop word cs:[rax + rax]
movzx eax, byte [rcx]
inc dword [rdi + rax*4]
movzx eax, byte [rcx + 1]
inc dword [rdi + rax*4]
movzx eax, byte [rcx + 2]
inc dword [rdi + rax*4]
movzx eax, byte [rcx + 3]
inc dword [rdi + rax*4]
add rcx, 4
cmp rcx, r13
jb 0x140001be0
mov eax, dword [rsp + 0xb0]
shl rbp, 2
pxor xmm1, xmm1
xor ecx, ecx
movdqa xmm0, xmmword [0x140015160]
pxor xmm2, xmm2
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rdi + rcx*4 + 0x400]
movdqu xmm4, xmmword [rdi + rcx*4 + 0x410]
movdqu xmm5, xmmword [rdi + rcx*4 + 0x800]
paddd xmm5, xmm3
movdqu xmm3, xmmword [rdi + rcx*4 + 0x810]
paddd xmm3, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0xc00]
movdqu xmm6, xmmword [rdi + rcx*4 + 0xc10]
movdqu xmm7, xmmword [rdi + rcx*4]
paddd xmm7, xmm4
paddd xmm7, xmm5
movdqu xmm4, xmmword [rdi + rcx*4 + 0x10]
paddd xmm4, xmm6
paddd xmm4, xmm3
movdqu xmmword [rdi + rcx*4], xmm7
movdqu xmmword [rdi + 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 0x140001c30
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 dword [rax]
dec ecx
cmp dword [rdi + rcx*4], 0
je 0x140001d60
test eax, eax
je 0x140001d78
mov rax, 0xfffffffffffffff9
cmp ecx, dword [r14]
ja 0x140001d8b
mov dword [r14], ecx
mov rcx, rsi
mov rdx, rdi
mov r8, rbp
call fcn.140009e80
mov eax, ebx
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