Function at 0x14007f040
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbx
sub rsp, 0x280
mov rbx, r8
mov r11, rcx
test r8b, 1
jne 0x14007fb57
mov r10d, dword [rdx + 0x30]
mov r9d, r10d
mov qword [rax + 0x18], rdi
not r9d
movaps xmmword [rax - 0x18], xmm6
xor edi, edi
movaps xmmword [rax - 0x28], xmm7
cmp r9d, 3
movaps xmmword [rax - 0x38], xmm8
mov r8d, edi
movaps xmmword [rax - 0x48], xmm9
setb r8b
movaps xmmword [rax - 0x58], xmm10
cmp r9d, 2
movaps xmmword [rax - 0x68], xmm11
mov ecx, edi
movdqa xmm11, xmmword [0x1400c4c40]
setb cl
movaps xmmword [rax - 0x78], xmm12
cmp r9d, 1
movaps xmmword [rax - 0x88], xmm13
movaps xmmword [rax - 0x98], xmm14
movaps xmmword [rax - 0xa8], xmm15
mov eax, edi
setb al
movd xmm10, edi
movd xmm1, r8d
movd xmm2, ecx
punpckldq xmm2, xmm1
movd xmm0, eax
punpckldq xmm10, xmm0
movd xmm0, dword [rdx]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x150], xmm0
movdqa xmm15, xmm0
movd xmm0, dword [rdx + 4]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x160], xmm0
movdqa xmm7, xmm0
movd xmm0, dword [rdx + 8]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmm9, xmm0
movd xmm0, dword [rdx + 0xc]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x170], xmm0
movdqa xmm8, xmm0
movd xmm0, dword [rdx + 0x10]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x180], xmm0
movdqa xmm12, xmm0
movd xmm0, dword [rdx + 0x14]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmm14, xmm0
movd xmm0, dword [rdx + 0x18]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x190], xmm0
movdqa xmm13, xmm0
movd xmm0, dword [rdx + 0x1c]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x1a0], xmm0
movdqa xmmword [rsp + 0x30], xmm0
movd xmm0, dword [rdx + 0x20]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x1b0], xmm0
movdqa xmm1, xmm0
movd xmm0, dword [rdx + 0x24]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x1c0], xmm0
movdqa xmmword [rsp + 0x40], xmm0
movd xmm0, dword [rdx + 0x28]
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x1d0], xmm0
movdqa xmm3, xmm0
movd xmm0, dword [rdx + 0x2c]
pshufd xmm0, xmm0, 0
punpcklqdq xmm10, xmm2
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0x130], xmm10
shr rbx, 1
movd xmm2, dword [rdx + 0x34]
movd xmm5, dword [rdx + 0x3c]
mov rdi, qword [rsp + 0x2a0]
pshufd xmm2, xmm2, 0
movdqa xmm4, xmm2
pshufd xmm5, xmm5, 0
movdqa xmmword [rsp + 0x100], xmm2
paddd xmm4, xmm10
movd xmm2, dword [rdx + 0x38]
movdqa xmm6, xmm5
pshufd xmm2, xmm2, 0
movd xmm0, r10d
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0xf0], xmm0
paddd xmm0, xmm11
movdqa xmmword [rsp + 0x110], xmm2
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x120], xmm4
movdqa xmmword [rsp + 0x140], xmm5
movdqa xmmword [rsp + 0x70], xmm5
je 0x14007f83c
movdqa xmm11, xmmword [rsp + 0x30]
movdqa xmm10, xmm0
nop
movdqa xmm0, xmmword [rsp + 0x120]
paddd xmm15, xmm12
movdqa xmm2, xmmword [rsp + 0xa0]
xorps xmm10, xmm15
movdqa xmm4, xmm14
movdqa xmm6, xmm11
paddd xmm4, xmm7
paddd xmm6, xmm8
movdqa xmm7, xmmword [rsp + 0x70]
xorps xmm0, xmm4
movdqa xmm8, xmm0
xorps xmm7, xmm6
psrld xmm0, 0x10
movdqa xmm5, xmm13
movdqa xmmword [rsp + 0x70], xmm7
paddd xmm5, xmm9
xorps xmm2, xmm5
pslld xmm8, 0x10
orps xmm8, xmm0
movdqa xmm9, xmm2
movdqa xmm0, xmmword [rsp + 0x70]
movdqa xmm7, xmm10
psrld xmm2, 0x10
psrld xmm10, 0x10
pslld xmm7, 0x10
orps xmm7, xmm10
pslld xmm9, 0x10
movdqa xmm10, xmm0
orps xmm9, xmm2
psrld xmm0, 0x10
movdqa xmm2, xmm9
paddd xmm2, xmm3
pslld xmm10, 0x10
orps xmm10, xmm0
movdqa xmmword [rsp + 0x70], xmm2
xorps xmm2, xmm13
movdqa xmm0, xmm7
paddd xmm0, xmm1
movdqa xmm13, xmm2
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmm8
paddd xmm1, xmmword [rsp + 0x40]
xorps xmm0, xmm12
movdqa xmmword [rsp + 0x50], xmm1
movdqa xmm3, xmm10
paddd xmm3, xmmword [rsp + 0x90]
xorps xmm1, xmm14
movdqa xmm12, xmm1
pslld xmm2, 0xc
pslld xmm1, 0xc
movdqa xmmword [rsp + 0x40], xmm3
xorps xmm3, xmm11
movdqa xmm11, xmm0
psrld xmm12, 0x14
pslld xmm0, 0xc
movdqa xmm14, xmm3
orps xmm12, xmm1
psrld xmm11, 0x14
orps xmm11, xmm0
psrld xmm13, 0x14
orps xmm13, xmm2
psrld xmm14, 0x14
pslld xmm3, 0xc
movdqa xmm0, xmm11
paddd xmm0, xmm15
movdqa xmm1, xmm12
paddd xmm1, xmm4
xorps xmm7, xmm0
movdqa xmm15, xmm7
movdqa xmmword [rsp + 0x80], xmm1
orps xmm14, xmm3
psrld xmm15, 0x18
movdqa xmm4, xmm13
pslld xmm7, 8
movdqa xmm2, xmm14
paddd xmm4, xmm5
paddd xmm2, xmm6
xorps xmm9, xmm4
movdqa xmmword [rsp + 0x60], xmm2
xorps xmm8, xmm1
xorps xmm10, xmm2
movdqa xmm6, xmmword [rsp + 0x40]
movdqa xmm3, xmm8
movdqa xmm2, xmmword [rsp + 0x70]
orps xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0x30]
movdqa xmm1, xmm10
paddd xmm7, xmm15
pslld xmm8, 8
xorps xmm11, xmm7
psrld xmm3, 0x18
orps xmm3, xmm8
psrld xmm1, 0x18
movdqa xmm8, xmmword [rsp + 0x50]
movdqa xmm5, xmm9
paddd xmm8, xmm3
psrld xmm5, 0x18
xorps xmm12, xmm8
pslld xmm10, 8
orps xmm1, xmm10
movdqa xmmword [rsp + 0x30], xmm7
paddd xmm6, xmm1
movdqa xmmword [rsp + 0x50], xmm8
xorps xmm14, xmm6
movdqa xmmword [rsp + 0x40], xmm6
movdqa xmm6, xmm11
pslld xmm9, 8
orps xmm5, xmm9
psrld xmm6, 0x19
paddd xmm2, xmm5
pslld xmm11, 7
orps xmm6, xmm11
movdqa xmmword [rsp + 0x70], xmm2
movdqa xmm11, xmmword [rsp + 0x80]
xorps xmm13, xmm2
movdqa xmmword [rsp + 0xa0], xmm6
movdqa xmm7, xmm12
movdqa xmm8, xmm14
psrld xmm7, 0x19
movdqa xmm2, xmm13
pslld xmm12, 7
orps xmm7, xmm12
psrld xmm8, 0x19
pslld xmm14, 7
movdqa xmm9, xmm7
paddd xmm9, xmm0
psrld xmm2, 0x19
orps xmm8, xmm14
pslld xmm13, 7
movdqa xmm10, xmm8
movdqa xmm0, xmm9
xorps xmm0, xmm1
paddd xmm10, xmm4
movdqa xmm4, xmmword [rsp + 0x60]
orps xmm2, xmm13
paddd xmm4, xmm6
paddd xmm11, xmm2
xorps xmm5, xmm4
movdqa xmmword [rsp + 0x60], xmm4
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0xb0], xmm5
psrld xmm0, 0x10
xorps xmm15, xmm11
movdqa xmm5, xmm15
pslld xmm6, 0x10
orps xmm6, xmm0
pslld xmm5, 0x10
movdqa xmm0, xmmword [rsp + 0xb0]
movdqa xmm1, xmm10
xorps xmm1, xmm3
psrld xmm15, 0x10
movdqa xmm4, xmm0
movdqa xmmword [rsp + 0x80], xmm11
movdqa xmm3, xmm1
pslld xmm4, 0x10
pslld xmm3, 0x10
orps xmm5, xmm15
psrld xmm1, 0x10
movdqa xmm11, xmm6
psrld xmm0, 0x10
orps xmm3, xmm1
orps xmm4, xmm0
paddd xmm11, xmmword [rsp + 0x70]
movdqa xmm14, xmm4
paddd xmm14, xmmword [rsp + 0x50]
movdqa xmm13, xmm3
paddd xmm13, xmmword [rsp + 0x30]
xorps xmm7, xmm11
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm15, xmm7
xorps xmm1, xmm14
pslld xmm7, 0xc
xorps xmm8, xmm13
psrld xmm15, 0x14
orps xmm15, xmm7
movdqa xmm12, xmm5
paddd xmm12, xmmword [rsp + 0x40]
movdqa xmm0, xmm12
xorps xmm0, xmm2
movdqa xmm2, xmmword [rsp + 0x80]
movdqa xmm7, xmm0
pslld xmm0, 0xc
psrld xmm7, 0x14
orps xmm7, xmm0
movdqa xmm0, xmm8
psrld xmm0, 0x14
paddd xmm2, xmm7
pslld xmm8, 0xc
orps xmm0, xmm8
movdqa xmmword [rsp + 0x80], xmm2
movdqa xmm8, xmm1
movdqa xmmword [rsp + 0x50], xmm0
pslld xmm1, 0xc
psrld xmm8, 0x14
orps xmm8, xmm1
movdqa xmm1, xmm15
paddd xmm1, xmm9
movdqa xmm9, xmm0
paddd xmm9, xmm10
movdqa xmmword [rsp + 0xb0], xmm1
movdqa xmm10, xmmword [rsp + 0x60]
movdqa xmm0, xmm1
xorps xmm0, xmm6
movdqa xmm1, xmm2
xorps xmm1, xmm5
paddd xmm10, xmm8
movdqa xmmword [rsp + 0x60], xmm10
movdqa xmm2, xmm9
xorps xmm2, xmm3
movdqa xmm3, xmm10
xorps xmm3, xmm4
movdqa xmm10, xmm1
movdqa xmm4, xmm0
pslld xmm1, 8
pslld xmm0, 8
psrld xmm4, 0x18
orps xmm4, xmm0
psrld xmm10, 0x18
movdqa xmm6, xmm4
movdqa xmmword [rsp + 0x70], xmm4
movdqa xmm0, xmm3
movdqa xmm4, xmm2
psrld xmm0, 0x18
orps xmm10, xmm1
pslld xmm3, 8
orps xmm0, xmm3
pslld xmm2, 8
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmm3, xmm6
psrld xmm4, 0x18
paddd xmm3, xmm11
orps xmm4, xmm2
xorps xmm15, xmm3
movdqa xmm2, xmm0
movdqa xmmword [rsp + 0x120], xmm4
movdqa xmm5, xmm2
movdqa xmm0, xmm10
paddd xmm5, xmm14
paddd xmm0, xmm12
movdqa xmm1, xmm4
movdqa xmmword [rsp + 0x40], xmm5
movdqa xmmword [rsp + 0x90], xmm0
paddd xmm1, xmm13
xorps xmm7, xmm0
movdqa xmm0, xmmword [rsp + 0x50]
xorps xmm8, xmm5
movdqa xmm14, xmm15
pslld xmm15, 7
movdqa xmm13, xmm7
pslld xmm7, 7
movdqa xmm12, xmm8
pslld xmm8, 7
xorps xmm0, xmm1
psrld xmm14, 0x19
movdqa xmm11, xmm0
psrld xmm13, 0x19
orps xmm14, xmm15
movdqa xmm15, xmmword [rsp + 0xb0]
orps xmm13, xmm7
movdqa xmm7, xmmword [rsp + 0x80]
psrld xmm12, 0x19
psrld xmm11, 0x19
orps xmm12, xmm8
movdqa xmm8, xmmword [rsp + 0x60]
pslld xmm0, 7
orps xmm11, xmm0
sub rbx, 1
jne 0x14007f2b0
movdqa xmm5, xmmword [rsp + 0x140]
movdqa xmmword [rsp + 0x50], xmm10
movdqa xmm0, xmmword [rsp + 0x50]
movdqa xmm10, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x30], xmm11
movdqa xmm11, xmmword [0x1400c4c40]
paddd xmm8, xmmword [rsp + 0x170]
paddd xmm6, xmm5
paddd xmm1, xmmword [rsp + 0x1b0]
paddd xmm7, xmmword [rsp + 0x160]
movdqa xmm5, xmm1
paddd xmm3, xmmword [rsp + 0x1d0]
paddd xmm9, xmmword [rsp + 0xc0]
paddd xmm10, xmmword [rsp + 0x100]
paddd xmm14, xmmword [rsp + 0xd0]
paddd xmm10, xmm4
paddd xmm11, xmmword [rsp + 0xf0]
movdqa xmm4, xmm3
paddd xmm2, xmmword [rsp + 0x110]
paddd xmm11, xmm0
paddd xmm15, xmmword [rsp + 0x150]
paddd xmm12, xmmword [rsp + 0x180]
paddd xmm13, xmmword [rsp + 0x190]
movdqa xmmword [rsp + 0x60], xmm8
movdqa xmm8, xmmword [rsp + 0x30]
paddd xmm8, xmmword [rsp + 0x1a0]
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmm8, xmmword [rsp + 0x40]
paddd xmm8, xmmword [rsp + 0x1c0]
movdqa xmmword [rsp + 0x40], xmm8
punpckhdq xmm1, xmmword [rsp + 0x40]
movdqa xmm8, xmmword [rsp + 0x90]
paddd xmm8, xmmword [rsp + 0xe0]
punpckldq xmm5, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0xf0], xmm1
movdqa xmmword [rsp + 0xc0], xmm9
movdqa xmm9, xmm15
punpckldq xmm9, xmm7
movdqa xmmword [rsp + 0xd0], xmm14
movdqa xmm0, xmm9
movdqa xmm14, xmmword [rsp + 0xc0]
movdqa xmmword [rsp + 0x90], xmm8
movdqa xmm8, xmm14
punpckhdq xmm3, xmmword [rsp + 0x90]
punpckldq xmm8, xmmword [rsp + 0x60]
punpckldq xmm4, xmmword [rsp + 0x90]
punpckhdq xmm14, xmmword [rsp + 0x60]
punpcklqdq xmm0, xmm8
punpckhdq xmm15, xmm7
movdqa xmm7, xmm12
punpckldq xmm7, xmmword [rsp + 0xd0]
punpckhdq xmm12, xmmword [rsp + 0xd0]
movdqa xmm1, xmm7
movdqa xmmword [rsp + 0x110], xmm6
movdqa xmm6, xmm13
punpckldq xmm6, xmmword [rsp + 0x30]
punpckhdq xmm13, xmmword [rsp + 0x30]
punpcklqdq xmm1, xmm6
movdqu xmmword [r11], xmm0
movdqu xmmword [r11 + 0x10], xmm1
movdqa xmmword [rsp + 0xe0], xmm3
movdqa xmm0, xmm5
punpcklqdq xmm0, xmm4
movdqa xmm3, xmm11
punpckldq xmm3, xmm10
movdqa xmmword [rsp + 0x100], xmm2
movdqa xmm1, xmm3
punpckldq xmm2, xmmword [rsp + 0x110]
punpcklqdq xmm1, xmm2
movdqu xmmword [r11 + 0x20], xmm0
punpckhdq xmm11, xmm10
movdqa xmm0, xmm15
movdqa xmm10, xmmword [rsp + 0x100]
punpckhdq xmm10, xmmword [rsp + 0x110]
movdqu xmmword [r11 + 0x30], xmm1
punpcklqdq xmm0, xmm14
movdqa xmm1, xmm12
punpckhqdq xmm9, xmm8
punpckhqdq xmm7, xmm6
punpckhqdq xmm5, xmm4
punpckhqdq xmm3, xmm2
movdqu xmmword [r11 + 0x80], xmm0
movdqu xmmword [r11 + 0x40], xmm9
movdqu xmmword [r11 + 0x50], xmm7
movdqu xmmword [r11 + 0x60], xmm5
movdqu xmmword [r11 + 0x70], xmm3
punpcklqdq xmm1, xmm13
movdqa xmm2, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x240]
movdqa xmm0, xmm2
punpcklqdq xmm0, xmmword [rsp + 0xe0]
punpckhqdq xmm2, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0x250]
movaps xmm7, xmmword [rsp + 0x260]
movaps xmm6, xmmword [rsp + 0x270]
movdqu xmmword [r11 + 0x90], xmm1
movdqa xmm1, xmm11
punpckhqdq xmm15, xmm14
movaps xmm14, xmmword [rsp + 0x1f0]
punpckhqdq xmm12, xmm13
movaps xmm13, xmmword [rsp + 0x200]
punpckhqdq xmm11, xmm10
movdqu xmmword [r11 + 0xc0], xmm15
movaps xmm15, xmmword [rsp + 0x1e0]
movdqu xmmword [r11 + 0xd0], xmm12
movaps xmm12, xmmword [rsp + 0x210]
movdqu xmmword [r11 + 0xf0], xmm11
movaps xmm11, xmmword [rsp + 0x220]
punpcklqdq xmm1, xmm10
movaps xmm10, xmmword [rsp + 0x230]
movdqu xmmword [r11 + 0xa0], xmm0
movdqu xmmword [r11 + 0xb0], xmm1
movdqu xmmword [r11 + 0xe0], xmm2
add dword [rdx + 0x30], 4
cmp dword [rdx + 0x30], 4
jae 0x14007fb4e
inc dword [rdx + 0x34]
add rsp, 0x280
pop rbx
ret
lea r9, str.src_lib_stream_chacha_chacha_simd32_chacha_simd32.cpp
mov dword [rsp + 0x20], 0xf
lea r8, str.chacha_simd32_x4
lea rdx, str.Valid_rounds
lea rcx, str.rounds___2__0
call fcn.14000e220
int3