Function at 0x14013ac00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
movdqa xmmword [rsp + 0xe0], xmm15
movdqa xmmword [rsp + 0xd0], xmm14
movdqa xmmword [rsp + 0xc0], xmm13
movdqa xmmword [rsp + 0xb0], xmm12
movdqa xmmword [rsp + 0xa0], xmm11
movdqa xmmword [rsp + 0x90], xmm10
movdqa xmmword [rsp + 0x80], xmm9
movdqa xmmword [rsp + 0x70], xmm8
movdqa xmmword [rsp + 0x60], xmm7
movdqa xmmword [rsp + 0x50], xmm6
mov r10, rdx
mov r14, rcx
cmp r8, 0x10
ja 0x14013ad39
cmp r8, 9
jb 0x14013adbe
mov rax, qword [r9 + 0x28]
xor rax, qword [r9 + 0x20]
mov rbp, qword [r9 + 0x38]
xor rbp, qword [r9 + 0x30]
mov rcx, qword [r10 + r8 - 8]
xor rax, qword [r10]
xor rax, rcx
movabs rdx, 0x9e3779b185ebca87
mul rdx
shl r8, 0x36
add rax, r8
movabs rbx, 0xffc0000000000000
add rax, rbx
xor rbp, rcx
mov ebx, ebp
mov ecx, 0x85ebca76
imul rcx, rbx
add rcx, rbp
add rcx, rdx
mov rdx, rcx
bswap rdx
xor rax, rdx
movabs rbp, 0xc2b2ae3d27d4eb4f
mul rbp
imul rcx, rbp
add rcx, rdx
mov rbp, rax
shr rbp, 0x25
xor rbp, rax
movabs rax, 0x165667919e3779f9
imul rbp, rax
mov rdx, rbp
shr rdx, 0x20
xor rdx, rbp
mov qword [r14], rdx
mov rdx, rcx
shr rdx, 0x25
xor rdx, rcx
imul rdx, rax
mov rax, rdx
shr rax, 0x20
xor rax, rdx
mov qword [r14 + 8], rax
jmp 0x14013b691
cmp r8, 0x80
ja 0x14013ae3c
movabs r11, 0x9e3779b185ebca87
mov rbx, r8
imul rbx, r11
cmp r8, 0x21
jb 0x14013ae62
cmp r8, 0x41
jb 0x14013af93
cmp r8, 0x61
jb 0x14013b54e
mov rbp, qword [r10 + 0x30]
mov rdi, qword [r10 + 0x38]
mov rax, qword [r9 + 0x68]
xor rax, rdi
mov rsi, qword [r9 + 0x60]
xor rsi, rbp
mul rsi
xor rdx, rax
add rbx, rdx
mov rsi, qword [r10 + r8 - 0x40]
mov rax, qword [r10 + r8 - 0x38]
lea rdx, [rax + rsi]
xor rbx, rdx
xor rax, qword [r9 + 0x78]
xor rsi, qword [r9 + 0x70]
mul rsi
add rdi, rbp
xor rdi, rdx
xor rdi, rax
jmp 0x14013b550
cmp r8, 4
jb 0x14013ae69
mov rax, qword [r9 + 0x18]
mov ecx, dword [r10]
mov edx, dword [r10 + r8 - 4]
shl rdx, 0x20
or rdx, rcx
xor rax, qword [r9 + 0x10]
xor rax, rdx
movabs rcx, 0x9e3779b185ebca87
lea rcx, [rcx + r8*4]
mul rcx
lea rcx, [rdx + rax*2]
mov rdx, rcx
shr rdx, 0x25
xor rdx, rcx
shr rcx, 3
xor rcx, rax
mov rax, rcx
shr rax, 0x23
xor rax, rcx
movabs rcx, 0x9fb21c651e98df25
imul rcx, rax
mov rax, rcx
shr rax, 0x1c
xor rax, rcx
mov qword [r14], rax
movabs rax, 0x165667919e3779f9
jmp 0x14013b2fd
cmp r8, 0xf0
ja 0x14013af0e
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, r10
call fcn.14013fb70
jmp 0x14013b691
xor edi, edi
jmp 0x14013b5de
test r8, r8
je 0x14013b298
movzx eax, byte [r10]
mov rcx, r8
shr rcx, 1
movzx edx, byte [r8 + r10 - 1]
shl eax, 0x10
movzx ecx, byte [r10 + rcx]
shl ecx, 0x18
shl r8d, 8
or r8d, eax
or r8d, ecx
or r8d, edx
mov ecx, r8d
bswap ecx
rol ecx, 0xd
mov edx, dword [r9 + 4]
mov eax, dword [r9 + 0xc]
xor edx, dword [r9]
xor eax, dword [r9 + 8]
xor eax, ecx
xor edx, r8d
movabs rcx, 0xc2b2ae3d27d4eb4f
imul rdx, rcx
mov rbp, rdx
shr rbp, 0x1d
xor rbp, rdx
movabs rbx, 0x165667b19e3779f9
imul rbp, rbx
mov rdx, rbp
shr rdx, 0x20
xor rdx, rbp
mov qword [r14], rdx
imul rax, rcx
mov rcx, rax
shr rcx, 0x1d
xor rcx, rax
imul rcx, rbx
mov rax, rcx
shr rax, 0x20
xor rax, rcx
mov qword [r14 + 8], rax
jmp 0x14013b691
mov r13, qword [rsp + 0x160]
lea r11, [r13 - 0x40]
mov rdi, r11
shr rdi, 3
mov r12, rdi
shl r12, 6
lea rcx, [r8 - 1]
mov rax, rcx
or rax, r12
shr rax, 0x20
je 0x14013b310
mov rax, rcx
xor edx, edx
div r12
cmp r12, rcx
jbe 0x14013b320
movdqa xmm7, xmmword [0x1404bcc20]
movdqa xmm13, xmmword [0x1404bcc30]
movdqa xmm14, xmmword [0x1404bcc40]
movdqa xmm15, xmmword [0x1404bcc50]
cmp rdx, 0x40
mov qword [rsp + 0x28], r14
jae 0x14013af9a
movdqa xmm0, xmm13
movdqa xmm1, xmm14
movdqa xmm2, xmm15
movdqa xmm3, xmm7
jmp 0x14013b081
xor ebp, ebp
jmp 0x14013b597
imul rax, r12
shr rdx, 6
add rax, r10
xor ebp, ebp
nop word [rax + rax]
mov rcx, rbp
shl rcx, 6
prefetcht0 byte [rax + rcx + 0x140]
movdqu xmm1, xmmword [rax + rcx]
movdqu xmm2, xmmword [rax + rcx + 0x10]
movdqu xmm9, xmmword [rax + rcx + 0x20]
movdqu xmm8, xmmword [rax + rcx + 0x30]
movdqu xmm3, xmmword [r9 + rbp*8]
movdqu xmm6, xmmword [r9 + rbp*8 + 0x10]
movdqu xmm0, xmmword [r9 + rbp*8 + 0x20]
movdqu xmm5, xmmword [r9 + rbp*8 + 0x30]
pxor xmm3, xmm1
pshufd xmm4, xmm3, 0xf5
pmuludq xmm4, xmm3
pshufd xmm3, xmm1, 0x4e
paddq xmm3, xmm7
paddq xmm3, xmm4
pxor xmm6, xmm2
pshufd xmm1, xmm6, 0xf5
pmuludq xmm1, xmm6
pshufd xmm2, xmm2, 0x4e
paddq xmm2, xmm15
paddq xmm2, xmm1
pxor xmm0, xmm9
pshufd xmm4, xmm0, 0xf5
pmuludq xmm4, xmm0
pshufd xmm1, xmm9, 0x4e
paddq xmm1, xmm14
paddq xmm1, xmm4
pxor xmm5, xmm8
pshufd xmm4, xmm5, 0xf5
pmuludq xmm4, xmm5
pshufd xmm0, xmm8, 0x4e
paddq xmm0, xmm13
paddq xmm0, xmm4
inc rbp
movdqa xmm13, xmm0
movdqa xmm14, xmm1
movdqa xmm15, xmm2
movdqa xmm7, xmm3
cmp rdx, rbp
jne 0x14013afb0
movdqu xmm5, xmmword [r10 + r8 - 0x40]
movdqu xmm10, xmmword [r10 + r8 - 0x30]
movdqu xmm9, xmmword [r10 + r8 - 0x20]
movdqu xmm8, xmmword [r10 + r8 - 0x10]
movdqu xmm4, xmmword [r9 + r13 - 0x47]
movdqu xmm7, xmmword [r9 + r13 - 0x37]
movdqu xmm12, xmmword [r9 + r13 - 0x27]
movdqu xmm11, xmmword [r9 + r13 - 0x17]
pxor xmm4, xmm5
pshufd xmm6, xmm4, 0xf5
pmuludq xmm6, xmm4
pshufd xmm5, xmm5, 0x4e
paddq xmm5, xmm6
paddq xmm5, xmm3
pxor xmm7, xmm10
pshufd xmm4, xmm7, 0xf5
pmuludq xmm4, xmm7
pshufd xmm3, xmm10, 0x4e
paddq xmm3, xmm4
paddq xmm3, xmm2
pxor xmm12, xmm9
pshufd xmm4, xmm12, 0xf5
pmuludq xmm4, xmm12
pshufd xmm2, xmm9, 0x4e
paddq xmm2, xmm4
paddq xmm2, xmm1
pxor xmm11, xmm8
pshufd xmm4, xmm11, 0xf5
pmuludq xmm4, xmm11
pshufd xmm1, xmm8, 0x4e
paddq xmm1, xmm4
paddq xmm1, xmm0
movabs rcx, 0x9e3779b185ebca87
imul rcx, r8
movq r12, xmm5
pshufd xmm0, xmm5, 0xee
movq r10, xmm0
mov rax, qword [r9 + 0x13]
xor rax, r10
mov rbp, qword [r9 + 0xb]
xor rbp, r12
mul rbp
mov rbx, rdx
xor rbx, rax
add rbx, rcx
movq r13, xmm3
pshufd xmm0, xmm3, 0xee
movq r11, xmm0
mov rax, qword [r9 + 0x23]
xor rax, r11
mov rcx, qword [r9 + 0x1b]
xor rcx, r13
mul rcx
mov rcx, rdx
xor rcx, rax
add rcx, rbx
movq rbp, xmm2
pshufd xmm0, xmm2, 0xee
movq rdi, xmm0
mov rax, qword [r9 + 0x33]
xor rax, rdi
mov rsi, qword [r9 + 0x2b]
xor rsi, rbp
mul rsi
mov rsi, rdx
xor rsi, rax
add rsi, rcx
movq r15, xmm1
pshufd xmm0, xmm1, 0xee
movq rbx, xmm0
mov rax, qword [r9 + 0x43]
xor rax, rbx
mov rcx, qword [r9 + 0x3b]
xor rcx, r15
mul rcx
xor rdx, rax
add rdx, rsi
mov rax, rdx
shr rax, 0x25
xor rax, rdx
movabs rcx, 0x165667919e3779f9
imul rax, rcx
mov rcx, rax
shr rcx, 0x20
xor rcx, rax
mov r14, qword [rsp + 0x28]
mov qword [r14], rcx
movabs rsi, 0xc2b2ae3d27d4eb4f
imul rsi, r8
not rsi
mov r8, qword [rsp + 0x160]
xor r10, qword [r9 + r8 - 0x43]
xor r12, qword [r9 + r8 - 0x4b]
mov rax, r10
mul r12
mov rcx, rdx
xor rcx, rax
xor r11, qword [r9 + r8 - 0x33]
add rcx, rsi
xor r13, qword [r9 + r8 - 0x3b]
mov rax, r11
mul r13
mov rsi, rdx
xor rdi, qword [r9 + r8 - 0x23]
xor rbp, qword [r9 + r8 - 0x2b]
xor rsi, rax
mov rax, rdi
mul rbp
mov rdi, rdx
add rsi, rcx
xor rdi, rax
xor rbx, qword [r9 + r8 - 0x13]
xor r15, qword [r9 + r8 - 0x1b]
add rdi, rsi
mov rax, rbx
mul r15
xor rdx, rax
add rdx, rdi
mov rax, rdx
shr rax, 0x25
xor rax, rdx
movabs rcx, 0x165667919e3779f9
imul rax, rcx
jmp 0x14013b301
mov rax, qword [r9 + 0x48]
mov rdi, qword [r9 + 0x58]
xor rax, qword [r9 + 0x40]
mov rdx, rax
shr rdx, 0x21
xor rdx, rax
movabs rax, 0xc2b2ae3d27d4eb4f
imul rdx, rax
mov rbp, rdx
shr rbp, 0x1d
xor rbp, rdx
movabs rdx, 0x165667b19e3779f9
imul rbp, rdx
mov rbx, rbp
shr rbx, 0x20
xor rbx, rbp
xor rdi, qword [r9 + 0x50]
mov qword [r14], rbx
mov rcx, rdi
shr rcx, 0x21
xor rcx, rdi
imul rcx, rax
mov rax, rcx
shr rax, 0x1d
xor rax, rcx
imul rax, rdx
mov rcx, rax
shr rcx, 0x20
xor rcx, rax
jmp 0x14013b68d
mov eax, ecx
xor edx, edx
div r12d
cmp r12, rcx
ja 0x14013af4d
movups xmm0, xmmword [r9 + r13 - 0x40]
movaps xmmword [rsp + 0x40], xmm0
movdqu xmm0, xmmword [r9 + r13 - 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movdqu xmm10, xmmword [r9 + r13 - 0x20]
cmp rax, 2
mov r15d, 1
cmovae r15, rax
movdqu xmm11, xmmword [r9 + r13 - 0x10]
movdqa xmm7, xmmword [0x1404bcc20]
movdqa xmm15, xmmword [0x1404bcc50]
movdqa xmm14, xmmword [0x1404bcc40]
movdqa xmm13, xmmword [0x1404bcc30]
xor esi, esi
movdqa xmm12, xmmword [0x1404bcc70]
mov rbp, r10
jmp 0x14013b465
movdqa xmm0, xmm13
movdqa xmm1, xmm14
movdqa xmm2, xmm15
movdqa xmm3, xmm7
movdqa xmm4, xmm3
psrlq xmm4, 0x2f
pxor xmm4, xmmword [rsp + 0x40]
pxor xmm4, xmm3
pshufd xmm7, xmm4, 0x31
pmuludq xmm4, xmm12
pmuludq xmm7, xmm12
psllq xmm7, 0x20
paddq xmm7, xmm4
movdqa xmm3, xmm2
psrlq xmm3, 0x2f
pxor xmm3, xmmword [rsp + 0x30]
pxor xmm3, xmm2
pshufd xmm15, xmm3, 0x31
pmuludq xmm3, xmm12
pmuludq xmm15, xmm12
psllq xmm15, 0x20
paddq xmm15, xmm3
movdqa xmm2, xmm1
psrlq xmm2, 0x2f
pxor xmm2, xmm10
pxor xmm2, xmm1
pshufd xmm14, xmm2, 0x31
pmuludq xmm2, xmm12
pmuludq xmm14, xmm12
psllq xmm14, 0x20
paddq xmm14, xmm2
movdqa xmm1, xmm0
psrlq xmm1, 0x2f
pxor xmm1, xmm11
pxor xmm1, xmm0
pshufd xmm13, xmm1, 0x31
pmuludq xmm1, xmm12
pmuludq xmm13, xmm12
psllq xmm13, 0x20
paddq xmm13, xmm1
inc rsi
add rbp, r12
cmp rsi, r15
je 0x14013af70
cmp r11, 8
jb 0x14013b390
mov rbx, rbp
xor ecx, ecx
nop word cs:[rax + rax]
prefetcht0 byte [rbx + 0x140]
movdqu xmm1, xmmword [rbx]
movdqu xmm2, xmmword [rbx + 0x10]
movdqu xmm6, xmmword [rbx + 0x20]
movdqu xmm0, xmmword [rbx + 0x30]
movdqu xmm3, xmmword [r9 + rcx*8]
movdqu xmm4, xmmword [r9 + rcx*8 + 0x10]
movdqu xmm8, xmmword [r9 + rcx*8 + 0x20]
movdqu xmm5, xmmword [r9 + rcx*8 + 0x30]
pxor xmm3, xmm1
pshufd xmm9, xmm3, 0xf5
pmuludq xmm9, xmm3
pshufd xmm3, xmm1, 0x4e
paddq xmm3, xmm7
paddq xmm3, xmm9
pxor xmm4, xmm2
pshufd xmm1, xmm4, 0xf5
pmuludq xmm1, xmm4
pshufd xmm2, xmm2, 0x4e
paddq xmm2, xmm15
paddq xmm2, xmm1
pxor xmm8, xmm6
pshufd xmm4, xmm8, 0xf5
pmuludq xmm4, xmm8
pshufd xmm1, xmm6, 0x4e
paddq xmm1, xmm14
paddq xmm1, xmm4
pxor xmm5, xmm0
pshufd xmm4, xmm5, 0xf5
pmuludq xmm4, xmm5
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm13
paddq xmm0, xmm4
inc rcx
add rbx, 0x40
movdqa xmm13, xmm0
movdqa xmm14, xmm1
movdqa xmm15, xmm2
movdqa xmm7, xmm3
cmp rdi, rcx
jne 0x14013b480
jmp 0x14013b3a3
xor edi, edi
mov rsi, qword [r10 + 0x20]
mov rbp, qword [r10 + 0x28]
mov rax, qword [r9 + 0x48]
xor rax, rbp
mov rcx, qword [r9 + 0x40]
xor rcx, rsi
mul rcx
xor rdx, rax
add rdx, rbx
mov rcx, qword [r10 + r8 - 0x30]
mov rax, qword [r10 + r8 - 0x28]
lea rbx, [rax + rcx]
xor rax, qword [r9 + 0x58]
xor rbx, rdx
xor rcx, qword [r9 + 0x50]
mul rcx
xor rdx, rax
add rdx, rdi
add rbp, rsi
xor rbp, rdx
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x18]
mov rax, qword [r9 + 0x28]
xor rax, rdi
mov rcx, qword [r9 + 0x20]
xor rcx, rsi
mul rcx
xor rdx, rax
add rdx, rbx
mov rcx, qword [r10 + r8 - 0x20]
mov rax, qword [r10 + r8 - 0x18]
lea rbx, [rax + rcx]
xor rax, qword [r9 + 0x38]
xor rbx, rdx
xor rcx, qword [r9 + 0x30]
mul rcx
xor rdx, rax
add rdx, rbp
add rdi, rsi
xor rdi, rdx
mov rsi, qword [r10]
mov rbp, qword [r10 + 8]
mov rax, qword [r9 + 8]
xor rax, rbp
mov rcx, qword [r9]
xor rcx, rsi
mul rcx
xor rdx, rax
add rdx, rbx
mov rcx, qword [r10 + r8 - 0x10]
mov rax, qword [r10 + r8 - 8]
lea rbx, [rax + rcx]
xor rax, qword [r9 + 0x18]
xor rcx, qword [r9 + 0x10]
xor rbx, rdx
mul rcx
xor rdx, rax
add rdx, rdi
add rbp, rsi
xor rbp, rdx
lea rdi, [rbx + rbp]
imul rbx, r11
movabs rcx, 0x85ebca77c2b2ae63
imul rcx, rbp
movabs rdx, 0xc2b2ae3d27d4eb4f
imul rdx, r8
add rdx, rbx
add rdx, rcx
mov rax, rdi
shr rax, 0x25
xor rax, rdi
movabs rbp, 0x165667919e3779f9
imul rax, rbp
mov rcx, rax
shr rcx, 0x20
xor rcx, rax
mov qword [r14], rcx
mov rax, rdx
shr rax, 0x25
xor rax, rdx
imul rax, rbp
mov rcx, rax
shr rcx, 0x20
xor rcx, rax
neg rcx
mov qword [r14 + 8], rcx
mov rax, r14
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm11, xmmword [rsp + 0xa0]
movaps xmm12, xmmword [rsp + 0xb0]
movaps xmm13, xmmword [rsp + 0xc0]
movaps xmm14, xmmword [rsp + 0xd0]
movaps xmm15, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret