Function at 0x14004d7c0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rdx
cmp rdx, 0x10
ja 0x14004d026
cmp r11, 9
jb 0x14004d1df
movabs r8, 0x6782737bea4239b9
xor r8, qword [rcx]
movabs rax, 0xaf56bc3b0996523a
xor rax, qword [rcx + r11 - 8]
add r11, rax
mul r8
bswap r8
add r11, r8
xor rdx, rax
add rdx, r11
jmp 0x14004d199
cmp r11, 0x80
ja 0x14004d1bc
movabs r9, 0x9e3779b185ebca87
imul r9, r11
cmp r11, 0x21
jb 0x14004d14b
cmp r11, 0x41
jb 0x14004d0f9
cmp r11, 0x61
jb 0x14004d0a7
movdqu xmm0, xmmword [rcx + 0x30]
pxor xmm0, xmmword [0x1400de0c0]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
xor rdx, rax
add r9, rdx
movdqu xmm0, xmmword [rcx + r11 - 0x40]
pxor xmm0, xmmword [0x1400de0d0]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
xor rdx, rax
add r9, rdx
movdqu xmm0, xmmword [rcx + 0x20]
pxor xmm0, xmmword [0x1400de0e0]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
mov r10, rdx
xor r10, rax
add r10, r9
movdqu xmm0, xmmword [rcx + r11 - 0x30]
pxor xmm0, xmmword [0x1400de0f0]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
mov r9, rdx
xor r9, rax
add r9, r10
movdqu xmm0, xmmword [rcx + 0x10]
pxor xmm0, xmmword [0x1400de100]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
mov r10, rdx
xor r10, rax
add r10, r9
movdqu xmm0, xmmword [rcx + r11 - 0x20]
pxor xmm0, xmmword [0x1400de110]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
mov r9, rdx
xor r9, rax
add r9, r10
movdqu xmm0, xmmword [rcx]
pxor xmm0, xmmword [0x1400de120]
movq rdx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rdx
mov r10, rdx
xor r10, rax
add r10, r9
movdqu xmm0, xmmword [rcx + r11 - 0x10]
pxor xmm0, xmmword [0x1400de130]
movq rcx, xmm0
pshufd xmm0, xmm0, 0xee
movq rax, xmm0
mul rcx
xor rdx, rax
add rdx, r10
mov rax, rdx
shr rax, 0x25
xor rax, rdx
movabs rcx, 0x165667919e3779f9
imul rcx, rax
mov rax, rcx
shr rax, 0x20
xor rax, rcx
ret
cmp r11, 0xf0
ja 0x14004d1d7
lea r8, [0x1400de000]
mov rdx, r11
xor r9d, r9d
jmp 0x14004d7c0
mov rdx, r11
jmp 0x14004d2b0
cmp r11, 4
jb 0x14004d23e
mov eax, dword [rcx + r11 - 4]
mov ecx, dword [rcx]
shl rcx, 0x20
or rcx, rax
movabs rax, 0xc73ab174c5ecd5a2
xor rax, rcx
mov rcx, rax
rol rcx, 0x31
mov rdx, rax
rol rdx, 0x18
xor rdx, rcx
xor rdx, rax
movabs rax, 0x9fb21c651e98df25
imul rdx, rax
mov rcx, rdx
shr rcx, 0x23
add rcx, r11
xor rcx, rdx
imul rcx, rax
mov rax, rcx
shr rax, 0x1c
xor rax, rcx
ret
test r11, r11
je 0x14004d29a
movzx eax, byte [rcx]
mov rdx, r11
shr rdx, 1
movzx edx, byte [rcx + rdx]
movzx ecx, byte [r11 + rcx - 1]
shl rax, 0x10
shl rdx, 0x18
shl r11d, 8
or r11, rax
or r11, rdx
or r11, rcx
mov eax, 0x87275a9b
xor rax, r11
movabs rcx, 0xc2b2ae3d27d4eb4f
imul rcx, rax
mov rax, rcx
shr rax, 0x1d
xor rax, rcx
movabs rcx, 0x165667b19e3779f9
jmp 0x14004d1ad
movabs rax, 0x2d06800538d394c2
ret
push rsi
sub rsp, 0xa0
movdqa xmmword [rsp + 0x90], xmm15
movdqa xmmword [rsp + 0x80], xmm14
movdqa xmmword [rsp + 0x70], xmm13
movdqa xmmword [rsp + 0x60], xmm12
movdqa xmmword [rsp + 0x50], xmm11
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
lea rax, [rdx - 1]
cmp rax, 0x400
jae 0x14004d332
movdqa xmm3, xmmword [0x1400de140]
movdqa xmm2, xmmword [0x1400de150]
movdqa xmm1, xmmword [0x1400de160]
movdqa xmm0, xmmword [0x1400de170]
jmp 0x14004d510
mov r8, rax
shr r8, 0xa
movdqa xmm3, xmmword [0x1400de140]
movdqa xmm2, xmmword [0x1400de150]
movdqa xmm1, xmmword [0x1400de160]
movdqa xmm0, xmmword [0x1400de170]
xor r9d, r9d
lea r10, [0x1400de000]
movdqa xmm5, xmmword [0x1400de190]
movdqa xmm7, xmmword [0x1400de1b0]
movdqa xmm8, xmmword [0x1400de1c0]
mov r11, rcx
nop
xor esi, esi
nop word cs:[rax + rax]
prefetcht0 byte [r11 + rsi*8 + 0x140]
movdqu xmm11, xmmword [r11 + rsi*8]
movdqu xmm12, xmmword [r11 + rsi*8 + 0x10]
movdqu xmm13, xmmword [r11 + rsi*8 + 0x20]
movdqu xmm9, xmmword [r11 + rsi*8 + 0x30]
movdqu xmm14, xmmword [rsi + r10]
movdqu xmm15, xmmword [rsi + r10 + 0x10]
movdqu xmm4, xmmword [rsi + r10 + 0x20]
movdqu xmm10, xmmword [rsi + r10 + 0x30]
pxor xmm14, xmm11
pshufd xmm6, xmm14, 0xf5
pmuludq xmm6, xmm14
pshufd xmm11, xmm11, 0x4e
paddq xmm3, xmm11
paddq xmm3, xmm6
pxor xmm15, xmm12
pshufd xmm6, xmm15, 0xf5
pmuludq xmm6, xmm15
pshufd xmm11, xmm12, 0x4e
paddq xmm2, xmm11
paddq xmm2, xmm6
pxor xmm4, xmm13
pshufd xmm6, xmm4, 0xf5
pmuludq xmm6, xmm4
pshufd xmm4, xmm13, 0x4e
paddq xmm1, xmm4
paddq xmm1, xmm6
pxor xmm10, xmm9
pshufd xmm4, xmm10, 0xf5
pmuludq xmm4, xmm10
pshufd xmm6, xmm9, 0x4e
paddq xmm0, xmm6
paddq xmm0, xmm4
add rsi, 8
cmp rsi, 0x80
jne 0x14004d390
movdqa xmm4, xmm3
psrlq xmm4, 0x2f
pxor xmm4, xmm3
pxor xmm4, xmmword [0x1400de180]
pshufd xmm3, xmm4, 0x31
pmuludq xmm4, xmm5
pmuludq xmm3, xmm5
psllq xmm3, 0x20
paddq xmm3, xmm4
movdqa xmm4, xmm2
psrlq xmm4, 0x2f
pxor xmm4, xmm2
pxor xmm4, xmmword [0x1400de1a0]
pshufd xmm2, xmm4, 0x31
pmuludq xmm4, xmm5
pmuludq xmm2, xmm5
psllq xmm2, 0x20
paddq xmm2, xmm4
movdqa xmm4, xmm1
psrlq xmm4, 0x2f
pxor xmm4, xmm1
pxor xmm4, xmm7
pshufd xmm1, xmm4, 0x31
pmuludq xmm4, xmm5
pmuludq xmm1, xmm5
psllq xmm1, 0x20
paddq xmm1, xmm4
movdqa xmm4, xmm0
psrlq xmm4, 0x2f
pxor xmm4, xmm0
pxor xmm4, xmm8
pshufd xmm0, xmm4, 0x31
pmuludq xmm4, xmm5
pmuludq xmm0, xmm5
psllq xmm0, 0x20
paddq xmm0, xmm4
inc r9
add r11, 0x400
cmp r9, r8
jne 0x14004d380
mov r8d, eax
and r8d, 0x3ff
cmp r8, 0x40
jae 0x14004d535
movdqa xmm5, xmm0
movdqa xmm4, xmm1
movdqa xmm6, xmm2
movdqa xmm7, xmm3
jmp 0x14004d621
and rax, 0xfffffffffffffc00
shr r8, 6
add rax, rcx
shl r8, 3
xor r9d, r9d
lea r10, [0x1400de000]
prefetcht0 byte [rax + r9*8 + 0x140]
movdqu xmm4, xmmword [rax + r9*8]
movdqu xmm6, xmmword [rax + r9*8 + 0x10]
movdqu xmm9, xmmword [rax + r9*8 + 0x20]
movdqu xmm5, xmmword [rax + r9*8 + 0x30]
movdqu xmm7, xmmword [r9 + r10]
movdqu xmm10, xmmword [r9 + r10 + 0x10]
movdqu xmm11, xmmword [r9 + r10 + 0x20]
movdqu xmm8, xmmword [r9 + r10 + 0x30]
pxor xmm7, xmm4
pshufd xmm12, xmm7, 0xf5
pmuludq xmm12, xmm7
pshufd xmm7, xmm4, 0x4e
paddq xmm7, xmm3
paddq xmm7, xmm12
pxor xmm10, xmm6
pshufd xmm3, xmm10, 0xf5
pmuludq xmm3, xmm10
pshufd xmm6, xmm6, 0x4e
paddq xmm6, xmm2
paddq xmm6, xmm3
pxor xmm11, xmm9
pshufd xmm2, xmm11, 0xf5
pmuludq xmm2, xmm11
pshufd xmm4, xmm9, 0x4e
paddq xmm4, xmm1
paddq xmm4, xmm2
pxor xmm8, xmm5
pshufd xmm1, xmm8, 0xf5
pmuludq xmm1, xmm8
pshufd xmm5, xmm5, 0x4e
paddq xmm5, xmm0
paddq xmm5, xmm1
add r9, 8
movdqa xmm0, xmm5
movdqa xmm1, xmm4
movdqa xmm2, xmm6
movdqa xmm3, xmm7
cmp r8, r9
jne 0x14004d550
movdqu xmm0, xmmword [rcx + rdx - 0x40]
movdqu xmm1, xmmword [rcx + rdx - 0x30]
movdqu xmm9, xmmword [rcx + rdx - 0x20]
movdqu xmm8, xmmword [rcx + rdx - 0x10]
pshufd xmm2, xmm0, 0x4e
pxor xmm0, xmmword [0x1400de1d0]
pshufd xmm3, xmm0, 0xf5
pmuludq xmm3, xmm0
paddq xmm3, xmm2
paddq xmm3, xmm7
pshufd xmm0, xmm1, 0x4e
pxor xmm1, xmmword [0x1400de1e0]
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
paddq xmm2, xmm0
paddq xmm2, xmm6
pshufd xmm0, xmm9, 0x4e
pxor xmm9, xmmword [0x1400de1f0]
pshufd xmm1, xmm9, 0xf5
pmuludq xmm1, xmm9
paddq xmm1, xmm0
pshufd xmm6, xmm8, 0x4e
pxor xmm8, xmmword [0x1400de200]
paddq xmm1, xmm4
pshufd xmm0, xmm8, 0xf5
pmuludq xmm0, xmm8
paddq xmm0, xmm6
paddq xmm0, xmm5
movabs r8, 0x9e3779b185ebca87
pxor xmm3, xmmword [0x1400de210]
imul r8, rdx
movq rax, xmm3
pshufd xmm3, xmm3, 0xee
movq rcx, xmm3
mul rcx
mov rcx, rax
xor rcx, rdx
pxor xmm2, xmmword [0x1400de220]
add rcx, r8
movq rax, xmm2
pshufd xmm2, xmm2, 0xee
movq rdx, xmm2
mul rdx
mov r8, rax
xor r8, rdx
pxor xmm1, xmmword [0x1400de230]
movq rax, xmm1
pshufd xmm1, xmm1, 0xee
movq rdx, xmm1
mul rdx
mov r9, rax
xor r9, rdx
add r9, r8
pxor xmm0, xmmword [0x1400de240]
add r9, rcx
movq rax, xmm0
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
mul rcx
xor rax, rdx
add rax, r9
mov rcx, rax
shr rcx, 0x25
xor rax, rcx
movabs rcx, 0x165667919e3779f9
imul rax, rcx
mov rcx, rax
shr rcx, 0x20
xor rax, rcx
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x50]
movaps xmm12, xmmword [rsp + 0x60]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm14, xmmword [rsp + 0x80]
movaps xmm15, xmmword [rsp + 0x90]
add rsp, 0xa0
pop rsi
ret
push r14
push rsi
push rdi
push rbx
mov r10, rdx
movabs r11, 0x9e3779b185ebca87
mov rsi, qword [r8 + 8]
sub rsi, r9
xor rsi, qword [rcx + 8]
mov rax, qword [r8]
add rax, r9
xor rax, qword [rcx]
imul r11, rdx
mul rsi
mov rsi, rdx
mov rdi, qword [r8 + 0x18]
xor rsi, rax
add rsi, r11
sub rdi, r9
xor rdi, qword [rcx + 0x18]
mov rax, qword [r8 + 0x10]
add rax, r9
xor rax, qword [rcx + 0x10]
mul rdi
mov rbx, rax
mov rdi, rdx
mov r11, qword [r8 + 0x28]
sub r11, r9
xor r11, qword [rcx + 0x28]
mov rax, qword [r8 + 0x20]
add rax, r9
xor rax, qword [rcx + 0x20]
mul r11
mov r11, rdx
xor rdi, rbx
xor r11, rax
mov rbx, qword [r8 + 0x38]
sub rbx, r9
xor rbx, qword [rcx + 0x38]
mov rax, qword [r8 + 0x30]
add rax, r9
xor rax, qword [rcx + 0x30]
add r11, rdi
mul rbx
mov rdi, rdx
add r11, rsi
xor rdi, rax
mov rsi, qword [r8 + 0x48]
sub rsi, r9
xor rsi, qword [rcx + 0x48]
mov rax, qword [r8 + 0x40]
add rax, r9
xor rax, qword [rcx + 0x40]
mul rsi
mov rbx, rdx
xor rbx, rax
add rbx, rdi
mov rsi, qword [r8 + 0x58]
sub rsi, r9
xor rsi, qword [rcx + 0x58]
mov rax, qword [r8 + 0x50]
add rax, r9
xor rax, qword [rcx + 0x50]
mul rsi
mov rsi, rdx
xor rsi, rax
add rsi, rbx
add rsi, r11
mov r11, qword [r8 + 0x68]
sub r11, r9
xor r11, qword [rcx + 0x68]
mov rax, qword [r8 + 0x60]
add rax, r9
xor rax, qword [rcx + 0x60]
mul r11
mov r11, rdx
mov rdi, qword [r8 + 0x78]
sub rdi, r9
xor rdi, qword [rcx + 0x78]
mov rdx, qword [r8 + 0x70]
add rdx, r9
xor rdx, qword [rcx + 0x70]
xor r11, rax
mov rax, rdx
mul rdi
mov rdi, rdx
xor rdi, rax
add rdi, r11
mov r11, qword [r8 + 0x7f]
sub r11, r9
xor r11, qword [rcx + r10 - 8]
mov rax, qword [r8 + 0x77]
add rax, r9
xor rax, qword [rcx + r10 - 0x10]
movabs rbx, 0x165667919e3779f9
mul r11
mov r11, rdx
add rdi, rsi
xor r11, rax
mov rax, rdi
shr rax, 0x25
xor rax, rdi
imul rax, rbx
mov rsi, rax
shr rsi, 0x20
xor rsi, rax
cmp r10d, 0x90
jb 0x14004d972
shr r10d, 4
add r10, 0xfffffffffffffff8
xor edi, edi
mov r14, qword [r8 + rdi + 0xb]
sub r14, r9
xor r14, qword [rcx + rdi + 0x88]
mov rax, qword [r8 + rdi + 3]
add rax, r9
xor rax, qword [rcx + rdi + 0x80]
mul r14
xor rdx, rax
add r11, rdx
add rdi, 0x10
dec r10
jne 0x14004d940
add r11, rsi
mov rcx, r11
shr rcx, 0x25
xor rcx, r11
imul rcx, rbx
mov rax, rcx
shr rax, 0x20
xor rax, rcx
pop rbx
pop rdi
pop rsi
pop r14
ret