Function at 0x1401e25f0
Capabilities:
Encode data using xor

Disassembly:
push r12
push r13
push rbx
push rbp
push rdi
push rsi
mov rax, qword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
sub rsp, 0xa0
movdqu xmmword [rsp], xmm6
movdqu xmmword [rsp + 0x10], xmm7
movdqu xmmword [rsp + 0x20], xmm8
movdqu xmmword [rsp + 0x30], xmm9
movdqu xmmword [rsp + 0x40], xmm10
movdqu xmmword [rsp + 0x50], xmm11
movdqu xmmword [rsp + 0x60], xmm12
movdqu xmmword [rsp + 0x70], xmm13
movdqu xmmword [rsp + 0x80], xmm14
movdqu xmmword [rsp + 0x90], xmm15
movsxd rdx, edx
movsxd r8, r8d
movsxd r9, r9d
movsxd r10, r10d
mov r11d, r11d
sub rdx, r8
pxor xmm0, xmm0
sub r9, 1
je 0x1401e2c3a
jl 0x1401e2c6d
mov r13d, 0x4000
movd xmm1, r11d
pshufd xmm1, xmm1, 0
movdqa xmm7, xmm1
pslld xmm7, 2
pslldq xmm1, 4
paddd xmm7, xmm1
movdqa xmm2, xmm1
pslldq xmm2, 4
paddd xmm1, xmm2
paddd xmm7, xmm2
pslldq xmm2, 4
paddd xmm1, xmm2
paddd xmm7, xmm2
pcmpeqw xmm2, xmm2
psrld xmm2, 0x1f
pslld xmm2, 0xf
paddd xmm1, xmm2
paddd xmm7, xmm2
movdqa xmm3, xmm1
movdqa xmm2, xmm7
psrld xmm3, 0x10
psrld xmm2, 0x10
packssdw xmm3, xmm2
packuswb xmm3, xmm3
movdqa xmm2, xmm3
pcmpeqw xmm9, xmm9
psubb xmm2, xmm9
punpcklbw xmm3, xmm2
pslld xmm1, 0x10
pslld xmm7, 0x10
psrad xmm1, 0x10
psrad xmm7, 0x10
packssdw xmm1, xmm7
movd xmm7, r11d
pslld xmm7, 3
movdqa xmm2, xmm7
punpcklwd xmm7, xmm7
pshufd xmm7, xmm7, 0
movdqa xmm8, xmm7
psrld xmm2, 0x10
psubw xmm2, xmm9
pxor xmm9, xmm9
pshufb xmm2, xmm9
movdqa xmm10, xmm2
movdqa xmm14, xmm3
movdqa xmm15, xmm1
cmp r11, 0x40000
ja 0x1401e2a51
cmp r11, 0x20000
ja 0x1401e28cb
mov rbp, r13
shr rbp, 0xf
imul rbp, r10
add rbp, rax
mov rsi, rbp
add rsi, r10
movd xmm2, r13d
pshuflw xmm2, xmm2, 0
psllw xmm2, 1
psrlw xmm2, 1
pshufd xmm12, xmm2, 0
pcmpeqw xmm11, xmm11
psrlw xmm11, 1
pxor xmm11, xmm12
mov r12d, 0x8000
mov rdi, r8
sub rdi, 1
movdqa xmm3, xmm14
movdqa xmm1, xmm15
movdqa xmm7, xmm3
pshufb xmm7, xmm0
psubb xmm3, xmm7
pcmpeqw xmm7, xmm7
pxor xmm7, xmm1
movdqa xmm2, xmm7
punpcklwd xmm7, xmm1
punpckhwd xmm2, xmm1
mov rbx, r12
lea r12, [r12 + r11*8]
shr rbx, 0x10
lddqu xmm5, xmmword [rbp + rbx]
pshufb xmm5, xmm3
movdqa xmm6, xmm5
punpcklbw xmm5, xmm0
punpckhbw xmm6, xmm0
movdqa xmm9, xmm7
pmulhuw xmm7, xmm11
pmulhuw xmm9, xmm12
movdqa xmm4, xmm2
pmulhuw xmm2, xmm11
pmulhuw xmm4, xmm12
pmaddwd xmm7, xmm5
pmaddwd xmm2, xmm6
lddqu xmm5, xmmword [rsi + rbx]
pshufb xmm5, xmm3
movdqa xmm6, xmm5
punpcklbw xmm5, xmm0
punpckhbw xmm6, xmm0
pmaddwd xmm9, xmm5
pmaddwd xmm4, xmm6
paddd xmm7, xmm9
paddd xmm2, xmm4
psrld xmm7, 0xe
psrld xmm2, 0xe
packssdw xmm7, xmm2
pavgw xmm7, xmm0
packuswb xmm7, xmm7
movlps qword [rcx], xmm7
add rcx, 8
movdqa xmm7, xmm1
paddw xmm1, xmm8
paddusw xmm7, xmm8
pcmpeqw xmm7, xmm1
paddb xmm3, xmm10
paddb xmm3, xmm7
sub rdi, 8
jg 0x1401e27c6
lea rcx, [rcx + rdi + 1]
imul rdi, r11
add r12, rdi
shr r12, 0x10
movzx rbx, byte [rbp + r12]
mov byte [rcx - 1], bl
add r13d, dword [rsp + 0x110]
add rcx, rdx
sub r9, 1
jg 0x1401e2771
jmp 0x1401e2c3a
mov rbp, r13
shr rbp, 0xf
imul rbp, r10
add rbp, rax
mov rsi, rbp
add rsi, r10
movd xmm2, r13d
pshuflw xmm2, xmm2, 0
psllw xmm2, 1
psrlw xmm2, 1
pshufd xmm12, xmm2, 0
pcmpeqw xmm11, xmm11
psrlw xmm11, 1
pxor xmm11, xmm12
mov r12d, 0x8000
mov rdi, r8
sub rdi, 1
movdqa xmm3, xmm14
movdqa xmm1, xmm15
movdqa xmm7, xmm3
pshufb xmm7, xmmword [0x14023b840]
psubb xmm3, xmm7
pcmpeqw xmm7, xmm7
pxor xmm7, xmm1
movdqa xmm2, xmm7
punpcklwd xmm7, xmm1
punpckhwd xmm2, xmm1
mov rbx, r12
shr rbx, 0x10
lddqu xmm4, xmmword [rbp + rbx]
lddqu xmm5, xmmword [rsi + rbx]
movdqa xmm9, xmm3
punpcklbw xmm9, xmmword [0x14023b820]
pshufb xmm4, xmm9
pshufb xmm5, xmm9
movdqa xmm9, xmm7
pmulhuw xmm7, xmm11
pmulhuw xmm9, xmm12
pmaddwd xmm7, xmm4
pmaddwd xmm9, xmm5
paddd xmm7, xmm9
lea rbx, [r12 + r11*4]
lea r12, [r12 + r11*8]
shr rbx, 0x10
lddqu xmm4, xmmword [rbp + rbx]
lddqu xmm5, xmmword [rsi + rbx]
movdqa xmm9, xmm3
punpckhbw xmm9, xmmword [0x14023b820]
pshufb xmm4, xmm9
pshufb xmm5, xmm9
movdqa xmm9, xmm2
pmulhuw xmm2, xmm11
pmulhuw xmm9, xmm12
pmaddwd xmm2, xmm4
pmaddwd xmm9, xmm5
paddd xmm2, xmm9
psrld xmm7, 0xe
psrld xmm2, 0xe
packssdw xmm7, xmm2
pavgw xmm7, xmm0
packuswb xmm7, xmm7
movlps qword [rcx], xmm7
add rcx, 8
movdqa xmm7, xmm1
paddw xmm1, xmm8
paddusw xmm7, xmm8
pcmpeqw xmm7, xmm1
paddb xmm3, xmm10
paddb xmm3, xmm7
sub rdi, 8
jg 0x1401e2920
lea rcx, [rcx + rdi + 1]
imul rdi, r11
add r12, rdi
shr r12, 0x10
movzx rbx, byte [rbp + r12]
mov byte [rcx - 1], bl
add r13d, dword [rsp + 0x110]
add rcx, rdx
sub r9, 1
jg 0x1401e28cb
jmp 0x1401e2c3a
pcmpeqw xmm7, xmm7
pxor xmm7, xmm1
movdqa xmm3, xmm7
punpcklwd xmm7, xmm1
punpckhwd xmm3, xmm1
movdqa xmm1, xmm7
movdqa xmm14, xmm1
movdqa xmm15, xmm3
pcmpeqw xmm7, xmm7
pmullw xmm7, xmm8
punpcklwd xmm7, xmm8
movdqa xmm8, xmm7
mov rbp, r13
shr rbp, 0xf
imul rbp, r10
add rbp, rax
mov rsi, rbp
add rsi, r10
movd xmm2, r13d
pshuflw xmm2, xmm2, 0
psllw xmm2, 1
psrlw xmm2, 1
pshufd xmm12, xmm2, 0
pcmpeqw xmm11, xmm11
psrlw xmm11, 1
pxor xmm11, xmm12
mov r12d, 0x8000
mov rdi, r8
sub rdi, 1
movdqa xmm1, xmm14
movdqa xmm3, xmm15
mov rbx, r12
shr rbx, 0x10
movd xmm4, dword [rbp + rbx]
movd xmm5, dword [rsi + rbx]
lea rbx, [r12 + r11]
shr rbx, 0x10
pinsrw xmm4, word [rbp + rbx], 1
pinsrw xmm5, word [rsi + rbx], 1
lea rbx, [r12 + r11*2]
lea r12, [r12 + r11*4]
shr rbx, 0x10
pinsrw xmm4, word [rbp + rbx], 2
pinsrw xmm5, word [rsi + rbx], 2
mov rbx, r12
sub rbx, r11
shr rbx, 0x10
pinsrw xmm4, word [rbp + rbx], 3
pinsrw xmm5, word [rsi + rbx], 3
punpcklbw xmm4, xmm0
punpcklbw xmm5, xmm0
movdqa xmm7, xmm1
movdqa xmm9, xmm7
pmulhuw xmm7, xmm11
pmulhuw xmm9, xmm12
pmaddwd xmm7, xmm4
pmaddwd xmm9, xmm5
paddd xmm7, xmm9
mov rbx, r12
shr rbx, 0x10
movd xmm4, dword [rbp + rbx]
movd xmm5, dword [rsi + rbx]
lea rbx, [r12 + r11]
shr rbx, 0x10
pinsrw xmm4, word [rbp + rbx], 1
pinsrw xmm5, word [rsi + rbx], 1
lea rbx, [r12 + r11*2]
lea r12, [r12 + r11*4]
shr rbx, 0x10
pinsrw xmm4, word [rbp + rbx], 2
pinsrw xmm5, word [rsi + rbx], 2
mov rbx, r12
sub rbx, r11
shr rbx, 0x10
pinsrw xmm4, word [rbp + rbx], 3
pinsrw xmm5, word [rsi + rbx], 3
punpcklbw xmm4, xmm0
punpcklbw xmm5, xmm0
movdqa xmm2, xmm3
movdqa xmm9, xmm2
pmulhuw xmm2, xmm11
pmulhuw xmm9, xmm12
pmaddwd xmm2, xmm4
pmaddwd xmm9, xmm5
paddd xmm2, xmm9
psrld xmm7, 0xe
psrld xmm2, 0xe
packssdw xmm7, xmm2
pavgw xmm7, xmm0
packuswb xmm7, xmm7
movlps qword [rcx], xmm7
add rcx, 8
paddw xmm1, xmm8
paddw xmm3, xmm8
sub rdi, 8
jg 0x1401e2adb
lea rcx, [rcx + rdi + 1]
imul rdi, r11
add r12, rdi
shr r12, 0x10
movzx rbx, byte [rbp + r12]
mov byte [rcx - 1], bl
add r13d, dword [rsp + 0x110]
add rcx, rdx
sub r9, 1
jg 0x1401e2a86
mov rbp, r13
shr rbp, 0xf
imul rbp, r10
add rbp, rax
mov r12d, 0x8000
mov rdi, r8
mov rbx, r12
shr rbx, 0x10
movzx rbx, byte [rbp + rbx]
mov byte [rcx], bl
add rcx, 1
add r12, r11
sub rdi, 1
jg 0x1401e2c51
movdqu xmm15, xmmword [rsp + 0x90]
movdqu xmm14, xmmword [rsp + 0x80]
movdqu xmm13, xmmword [rsp + 0x70]
movdqu xmm12, xmmword [rsp + 0x60]
movdqu xmm11, xmmword [rsp + 0x50]
movdqu xmm10, xmmword [rsp + 0x40]
movdqu xmm9, xmmword [rsp + 0x30]
movdqu xmm8, xmmword [rsp + 0x20]
movdqu xmm7, xmmword [rsp + 0x10]
movdqu xmm6, xmmword [rsp]
add rsp, 0xa0
pop rsi
pop rdi
pop rbp
pop rbx
pop r13
pop r12
ret