Function at 0x1404e86c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movdqa xmmword [rsp + 0x50], xmm6
mov qword [rsp + 0x30], rcx
mov rax, qword [rcx + 0x270]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x10], rax
mov edi, dword [rdx]
mov r12d, dword [rdx + 4]
mov r13d, dword [rdx + 8]
movsxd r14, r13d
mov ecx, dword [rdx + 0xc]
mov r11d, dword [rdx + 0x10]
movsxd rbx, r11d
mov r10d, dword [rdx + 0x14]
cmp r12d, edi
mov dword [rsp + 4], r13d
mov qword [rsp + 8], rcx
mov r8, r10
mov qword [rsp + 0x28], r12
jle 0x1404e87b0
movsxd rax, edi
lea esi, [rcx + 1]
lea ebp, [r12 + 1]
mov r9, r14
shl r9, 6
lea r9, [r9 + rbx*2]
sub r10d, ebx
inc r10d
jmp 0x1404e8755
inc rax
cmp ebp, eax
mov r13d, dword [rsp + 4]
mov rcx, qword [rsp + 8]
je 0x1404e8cf7
cmp r13d, ecx
jg 0x1404e8740
mov r15, qword [rsp + 0x10]
mov r15, qword [r15 + rax*8]
add r15, r9
mov r12, r14
jmp 0x1404e877c
inc r12
add r15, 0x40
cmp esi, r12d
je 0x1404e8740
cmp r11d, r8d
jg 0x1404e8770
xor r13d, r13d
nop word cs:[rax + rax]
cmp word [r15 + r13*2], 0
jne 0x1404e87a2
inc r13
cmp r10d, r13d
jne 0x1404e8790
jmp 0x1404e8770
mov dword [rdx], eax
mov edi, eax
mov r12, qword [rsp + 0x28]
mov r13d, dword [rsp + 4]
cmp r12d, edi
jle 0x1404e884d
movsxd rax, r12d
mov rcx, qword [rsp + 8]
lea esi, [rcx + 1]
movsxd rbp, edi
mov r9, r14
shl r9, 6
lea r9, [r9 + rbx*2]
mov r10d, r8d
sub r10d, r11d
inc r10d
jmp 0x1404e87fa
lea r15, [rax - 1]
cmp rax, rbp
mov rax, r15
mov r13d, dword [rsp + 4]
mov rcx, qword [rsp + 8]
jle 0x1404e8d0a
cmp r13d, ecx
jg 0x1404e87e0
mov r15, qword [rsp + 0x10]
mov r15, qword [r15 + rax*8]
add r15, r9
mov r12, r14
jmp 0x1404e881c
inc r12
add r15, 0x40
cmp esi, r12d
je 0x1404e87e0
cmp r11d, r8d
jg 0x1404e8810
xor r13d, r13d
nop word cs:[rax + rax]
cmp word [r15 + r13*2], 0
jne 0x1404e8842
inc r13
cmp r10d, r13d
jne 0x1404e8830
jmp 0x1404e8810
mov dword [rdx + 4], eax
mov r12d, eax
mov r13d, dword [rsp + 4]
mov rcx, qword [rsp + 8]
cmp ecx, r13d
mov rbp, r12
jle 0x1404e88dc
movsxd rax, edi
lea esi, [r12 + 1]
inc ecx
mov r9, r14
shl r9, 6
lea r9, [r9 + rbx*2]
mov r10d, r8d
sub r10d, r11d
inc r10d
jmp 0x1404e8893
inc r14
add r9, 0x40
cmp ecx, r14d
mov r12, rbp
je 0x1404e8d14
cmp r12d, edi
jl 0x1404e8880
mov r15, rax
jmp 0x1404e88a8
inc r15
cmp esi, r15d
je 0x1404e8880
cmp r11d, r8d
jg 0x1404e88a0
mov r12, qword [rsp + 0x10]
mov r12, qword [r12 + r15*8]
add r12, r9
xor r13d, r13d
nop dword [rax]
cmp word [r12 + r13*2], 0
jne 0x1404e88d2
inc r13
cmp r10d, r13d
jne 0x1404e88c0
jmp 0x1404e88a0
mov dword [rdx + 8], r14d
mov r13d, r14d
mov r12, rbp
mov rcx, qword [rsp + 8]
cmp ecx, r13d
mov dword [rsp + 4], r13d
jle 0x1404e898f
movsxd rax, ecx
movsxd rcx, edi
mov qword [rsp + 0x18], rcx
lea ecx, [r12 + 1]
movsxd r9, r13d
mov r10, rax
shl r10, 6
lea r10, [r10 + rbx*2]
mov r14d, r8d
sub r14d, r11d
inc r14d
mov rsi, qword [rsp + 0x10]
jmp 0x1404e8937
lea r15, [rax - 1]
add r10, 0xffffffffffffffc0
cmp rax, r9
mov rax, r15
mov r12, rbp
jle 0x1404e8d1e
cmp r12d, edi
jl 0x1404e8920
mov r15, qword [rsp + 0x18]
jmp 0x1404e8958
inc r15
cmp ecx, r15d
je 0x1404e8920
cmp r11d, r8d
jg 0x1404e8950
mov r12, qword [rsi + r15*8]
add r12, r10
xor r13d, r13d
nop word [rax + rax]
cmp word [r12 + r13*2], 0
jne 0x1404e8982
inc r13
cmp r14d, r13d
jne 0x1404e8970
jmp 0x1404e8950
mov dword [rdx + 0xc], eax
mov ecx, eax
mov r12, rbp
mov r13d, dword [rsp + 4]
mov r9, r8
cmp r9d, r11d
mov qword [rsp + 0x20], rdx
jle 0x1404e8a2c
movsxd rax, r13d
movsxd rdx, edi
mov qword [rsp + 0x18], rdx
lea edx, [r12 + 1]
inc r9d
mov r10d, ecx
sub r10d, r13d
inc r10d
shl rax, 6
mov rsi, qword [rsp + 0x10]
jmp 0x1404e89dc
inc rbx
cmp r9d, ebx
je 0x1404e8d2d
cmp r12d, edi
jl 0x1404e89d0
mov r14, qword [rsp + 0x18]
jmp 0x1404e89f8
inc r14
cmp edx, r14d
je 0x1404e89d0
cmp ecx, r13d
jl 0x1404e89f0
mov r15, qword [rsi + r14*8]
add r15, rax
lea r15, [r15 + rbx*2]
mov ebp, r10d
nop dword [rax + rax]
cmp word [r15], 0
jne 0x1404e8a21
add r15, 0x40
dec ebp
jne 0x1404e8a10
jmp 0x1404e89f0
mov rdx, qword [rsp + 0x20]
mov dword [rdx + 0x10], ebx
mov r11d, ebx
movsxd rbx, r11d
mov r14, r8
cmp r14d, r11d
mov qword [rsp + 8], rcx
jle 0x1404e8acc
movsxd rax, r14d
movsxd rdx, r13d
movsxd r9, edi
mov qword [rsp + 0x18], r9
lea r9d, [r12 + 1]
mov r10d, ecx
sub r10d, r13d
inc r10d
shl rdx, 6
mov rsi, qword [rsp + 0x10]
jmp 0x1404e8a80
lea r14, [rax - 1]
cmp rax, rbx
mov rax, r14
jle 0x1404e8d37
cmp r12d, edi
jl 0x1404e8a70
mov r14, qword [rsp + 0x18]
jmp 0x1404e8a98
inc r14
cmp r9d, r14d
je 0x1404e8a70
cmp ecx, r13d
jl 0x1404e8a90
mov r15, qword [rsi + r14*8]
add r15, rdx
lea r15, [r15 + rax*2]
mov ebp, r10d
nop dword [rax + rax]
cmp word [r15], 0
jne 0x1404e8ac1
add r15, 0x40
dec ebp
jne 0x1404e8ab0
jmp 0x1404e8a90
mov rdx, qword [rsp + 0x20]
mov dword [rdx + 0x14], eax
mov r14d, eax
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 0x40]
lea rcx, [0x14064ef30]
movsxd rcx, dword [rcx + rax*4]
lea rsi, [0x14064ef20]
mov r8d, r12d
sub r8d, edi
imul r8d, dword [rsi + rcx*4]
shl r8d, 3
mov rcx, qword [rsp + 8]
mov r9d, ecx
sub r9d, r13d
lea rcx, [0x14064ef80]
movsxd rcx, dword [rcx + rax*4]
imul r9d, dword [rsi + rcx*4]
shl r9d, 2
mov ecx, r14d
sub ecx, r11d
lea r10, [0x14064efd0]
movsxd rax, dword [r10 + rax*4]
mov eax, dword [rsi + rax*4]
imul eax, ecx
shl eax, 3
imul r8d, r8d
imul r9d, r9d
add r9d, r8d
imul eax, eax
add eax, r9d
xor esi, esi
mov dword [rdx + 0x18], eax
cmp r12d, edi
jge 0x1404e8b68
mov rax, qword [rsp + 0x20]
mov dword [rax + 0x1c], esi
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r14
movsxd rdi, edi
movsxd r8, r13d
mov rax, qword [rsp + 8]
lea ebp, [rax + 1]
inc r12d
mov qword [rsp + 0x28], r12
lea r12, [rcx + 1]
mov qword [rsp + 0x30], r12
and r12, 0xfffffffffffffff8
lea rax, [r12 + r12]
mov qword [rsp + 0x18], rax
lea eax, [r11 + r12]
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0x48], r8
mov rax, r8
shl rax, 6
lea rax, [rax + rbx*2]
add rax, 8
mov qword [rsp + 0x40], rax
lea r8d, [r14 + 1]
xor esi, esi
pxor xmm0, xmm0
pcmpeqd xmm1, xmm1
movdqa xmm2, xmmword [0x14059b990]
jmp 0x1404e8be2
inc rdi
cmp dword [rsp + 0x28], edi
mov r13d, dword [rsp + 4]
je 0x1404e8b4a
cmp dword [rsp + 8], r13d
jl 0x1404e8bd0
mov rax, qword [rsp + 0x10]
mov r10, qword [rax + rdi*8]
mov rax, qword [rsp + 0x40]
lea r9, [r10 + rax]
mov r14, qword [rsp + 0x48]
jmp 0x1404e8c1c
inc r14
add r9, 0x40
cmp ebp, r14d
je 0x1404e8bd0
cmp edx, r11d
jl 0x1404e8c10
mov rax, r14
shl rax, 6
add rax, r10
lea r13, [rax + rbx*2]
cmp ecx, 7
jae 0x1404e8c40
mov eax, r11d
jmp 0x1404e8cca
mov r15, rdx
add r13, qword [rsp + 0x18]
movd xmm4, esi
pxor xmm3, xmm3
xor edx, edx
nop word cs:[rax + rax]
movq xmm5, qword [r9 + rdx*2 - 8]
movq xmm6, qword [r9 + rdx*2]
pcmpeqw xmm5, xmm0
pxor xmm5, xmm1
punpcklwd xmm5, xmm5
pand xmm5, xmm2
paddd xmm4, xmm5
pcmpeqw xmm6, xmm0
pxor xmm6, xmm1
punpcklwd xmm6, xmm6
pand xmm6, xmm2
paddd xmm3, xmm6
add rdx, 8
cmp r12, rdx
jne 0x1404e8c60
paddd xmm3, xmm4
pshufd xmm4, xmm3, 0xee
paddd xmm4, xmm3
pshufd xmm3, xmm4, 0x55
paddd xmm3, xmm4
movd esi, xmm3
mov eax, dword [rsp + 0x3c]
cmp qword [rsp + 0x30], r12
mov rdx, r15
je 0x1404e8c10
mov r15d, r8d
sub r15d, eax
xor eax, eax
nop word cs:[rax + rax]
cmp word [r13 + rax*2], 1
sbb esi, 0xffffffff
inc rax
cmp r15d, eax
jne 0x1404e8ce0
jmp 0x1404e8c10
mov r12, qword [rsp + 0x28]
cmp r12d, edi
jg 0x1404e87b9
jmp 0x1404e884d
mov r12, qword [rsp + 0x28]
jmp 0x1404e884d
mov r13d, dword [rsp + 4]
jmp 0x1404e88dc
mov r13d, dword [rsp + 4]
mov rcx, qword [rsp + 8]
jmp 0x1404e898f
mov rdx, qword [rsp + 0x20]
jmp 0x1404e8a2c
mov rdx, qword [rsp + 0x20]
mov r14, r8
jmp 0x1404e8acc