Function at 0x1400294f0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push r14
sub rsp, 0x78
mov rbp, r8
mov r14, rcx
test r8b, 1
jne 0x140029880
shr rbp, 1
mov ecx, dword [rdx + 0x14]
mov r10d, dword [rdx + 0x20]
mov r9d, dword [rdx + 0x30]
mov r8d, dword [rdx + 0x34]
mov r11d, dword [rdx + 0x38]
mov qword [rax + 0x10], rbx
mov ebx, dword [rdx + 0x24]
mov qword [rax - 0x18], rsi
mov esi, dword [rdx + 0x10]
mov qword [rax - 0x20], rdi
mov edi, dword [rdx + 0x18]
mov qword [rax - 0x28], r12
mov r12d, dword [rdx + 4]
mov qword [rax - 0x30], r13
mov r13d, dword [rdx + 8]
mov dword [rsp + 0x38], ecx
mov ecx, dword [rdx + 0x1c]
mov qword [rax - 0x38], r15
mov r15d, dword [rdx]
mov eax, dword [rdx + 0xc]
mov dword [rsp + 0x3c], edi
mov edi, dword [rdx + 0x2c]
mov dword [rsp + 0x30], ecx
mov ecx, dword [rdx + 0x28]
mov edx, dword [rdx + 0x3c]
mov dword [rsp + 0xa0], ecx
mov dword [rsp + 0xa8], edi
je 0x140029838
mov r14d, eax
nop dword [rax]
nop word [rax + rax]
add r15d, esi
xor r9d, r15d
mov eax, r9d
shl r9d, 0x10
shr eax, 0x10
or eax, r9d
mov r9d, dword [rsp + 0x38]
add r10d, eax
add r12d, r9d
xor esi, r10d
xor r8d, r12d
mov ecx, esi
shl esi, 0xc
shr ecx, 0x14
or ecx, esi
add r15d, ecx
xor eax, r15d
mov edi, eax
shl eax, 8
shr edi, 0x18
or edi, eax
mov eax, r8d
shr eax, 0x10
add r10d, edi
xor ecx, r10d
shl r8d, 0x10
or eax, r8d
mov dword [rsp + 0x40], r10d
mov r8d, dword [rsp + 0xa0]
add ebx, eax
mov esi, ecx
mov dword [rsp + 0x34], ebx
shl ecx, 7
xor r9d, ebx
shr esi, 0x19
or esi, ecx
mov ecx, r9d
shr ecx, 0x14
shl r9d, 0xc
or ecx, r9d
mov r9d, dword [rsp + 0x3c]
add r12d, ecx
add r13d, r9d
xor eax, r12d
xor r11d, r13d
mov ebx, eax
shl eax, 8
shr ebx, 0x18
or ebx, eax
mov eax, dword [rsp + 0x34]
add eax, ebx
xor ecx, eax
mov dword [rsp + 0x34], eax
mov r10d, ecx
mov eax, r11d
shl ecx, 7
shl r11d, 0x10
shr eax, 0x10
or eax, r11d
shr r10d, 0x19
or r10d, ecx
add r8d, eax
xor r9d, r8d
mov ecx, r9d
shl r9d, 0xc
shr ecx, 0x14
or ecx, r9d
add r13d, ecx
xor eax, r13d
mov r11d, eax
shl eax, 8
shr r11d, 0x18
or r11d, eax
add r8d, r11d
xor ecx, r8d
mov dword [rsp + 0xa0], r8d
mov r9d, ecx
shl ecx, 7
shr r9d, 0x19
or r9d, ecx
add r14d, dword [rsp + 0x30]
mov r8d, dword [rsp + 0xa8]
xor edx, r14d
mov eax, edx
add r12d, r9d
shl edx, 0x10
xor edi, r12d
shr eax, 0x10
add r15d, r10d
or eax, edx
mov edx, dword [rsp + 0x30]
add r8d, eax
xor edx, r8d
mov ecx, edx
shl edx, 0xc
shr ecx, 0x14
or ecx, edx
add r14d, ecx
xor eax, r14d
mov edx, eax
shl eax, 8
shr edx, 0x18
or edx, eax
mov eax, dword [rsp + 0xa0]
add r8d, edx
xor edx, r15d
xor ecx, r8d
mov dword [rsp + 0xa8], r8d
mov r8d, ecx
shl ecx, 7
shr r8d, 0x19
or r8d, ecx
mov ecx, edx
shr ecx, 0x10
add r13d, r8d
shl edx, 0x10
xor ebx, r13d
or ecx, edx
add eax, ecx
xor r10d, eax
mov dword [rsp + 0xa0], eax
mov eax, r10d
shl r10d, 0xc
shr eax, 0x14
or eax, r10d
add r15d, eax
xor ecx, r15d
mov edx, ecx
shl ecx, 8
shr edx, 0x18
or edx, ecx
mov ecx, dword [rsp + 0xa0]
add ecx, edx
mov dword [rsp + 0xa0], ecx
xor ecx, eax
ror ecx, 0x19
mov dword [rsp + 0x38], ecx
mov ecx, edi
shl edi, 0x10
shr ecx, 0x10
or ecx, edi
mov edi, dword [rsp + 0xa8]
add edi, ecx
xor r9d, edi
mov eax, r9d
shl r9d, 0xc
shr eax, 0x14
or eax, r9d
add r12d, eax
xor ecx, r12d
mov r9d, ecx
shl ecx, 8
shr r9d, 0x18
or r9d, ecx
mov ecx, ebx
add edi, r9d
shr ecx, 0x10
mov dword [rsp + 0xa8], edi
xor edi, eax
ror edi, 0x19
mov dword [rsp + 0x3c], edi
shl ebx, 0x10
mov r10d, dword [rsp + 0x40]
or ecx, ebx
mov ebx, dword [rsp + 0x34]
add r10d, ecx
add r14d, esi
xor r8d, r10d
xor r11d, r14d
mov eax, r8d
shr eax, 0x14
shl r8d, 0xc
or eax, r8d
add r13d, eax
xor ecx, r13d
mov r8d, ecx
shl ecx, 8
shr r8d, 0x18
or r8d, ecx
add r10d, r8d
mov ecx, r10d
xor ecx, eax
ror ecx, 0x19
mov dword [rsp + 0x30], ecx
mov ecx, r11d
shl r11d, 0x10
shr ecx, 0x10
or ecx, r11d
add ebx, ecx
xor esi, ebx
mov eax, esi
shl esi, 0xc
shr eax, 0x14
or eax, esi
add r14d, eax
xor ecx, r14d
mov r11d, ecx
shl ecx, 8
shr r11d, 0x18
or r11d, ecx
add ebx, r11d
mov esi, ebx
xor esi, eax
ror esi, 0x19
sub rbp, 1
jne 0x140029590
mov dword [rsp + 0x34], r14d
mov eax, dword [rsp + 0x34]
mov r14, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x98]
mov dword [r14], r15d
mov r15, qword [rsp + 0x50]
mov dword [r14 + 4], r12d
mov r12, qword [rsp + 0x60]
mov dword [r14 + 8], r13d
mov r13, qword [rsp + 0x58]
mov dword [r14 + 0xc], eax
mov dword [r14 + 0x10], r9d
mov dword [r14 + 0x14], r8d
mov dword [r14 + 0x18], r11d
mov dword [r14 + 0x1c], edx
add rsp, 0x78
pop r14
pop rbp
ret
lea r9, str.src_lib_stream_chacha_chacha.cpp
mov dword [rsp + 0x20], 0x27
lea r8, str.hchacha
lea rdx, str.Valid_rounds
lea rcx, str.rounds___2__0
call fcn.14000e220
int3