Function at 0x140019540
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
mov r14, rcx
push r13
mov r13, rdx
push r12
mov r12, r8
push rdi
push rsi
push rbx
sub rsp, 0x20
and rsp, 0xfffffffffffffff0
sub rsp, 0x110
movups xmmword [rsp + 0x110], xmm6
lea rax, [rsp + 0xb0]
movups xmmword [rsp + 0x120], xmm8
mov rdx, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x50]
mov r8, rax
mov qword [rbp + 0x28], r9
mov qword [rsp + 0x38], rax
call sym.aegis256_init
cmp qword [rbp + 0x40], 0xf
jbe 0x140019e10
mov r15d, 0x10
mov qword [rbp + 0x18], r13
mov r13, qword [rbp + 0x40]
lea rdi, [rsp + 0x60]
mov qword [rbp + 0x20], r12
mov r12, r15
mov r15, qword [rbp + 0x38]
lea rsi, [rsp + 0x40]
lea rbx, [rsp + 0x50]
nop dword [rax]
movdqu xmm6, xmmword [r15 + r12 - 0x10]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xf0]
movdqu xmm8, xmmword [rsp + 0x100]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x40], xmm8
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm3, xmmword [rsp + 0xe0]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x100], xmm2
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xd0]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm2, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0xf0], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0xc0]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0xe0], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xb0]
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmm3, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0xd0], xmm1
call sym.softaes_block_encrypt
mov rdx, rbx
mov r8, rsi
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0xb0]
movdqu xmm4, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0xc0], xmm4
call sym.softaes_block_encrypt
movdqu xmm0, xmmword [rsp + 0x60]
mov rdx, r12
add r12, 0x10
pxor xmm0, xmm6
movups xmmword [rsp + 0xb0], xmm0
cmp r13, r12
jae 0x1400195d0
mov r13, qword [rbp + 0x18]
mov r12, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x40]
and ecx, 0xf
jne 0x1400199e0
mov r8, r12
and r8d, 0xf
test r14, r14
je 0x140019b91
cmp r12, 0xf
jbe 0x140019e17
mov qword [rsp + 0x30], r8
mov r15d, 0x10
lea rdi, [rsp + 0x60]
lea rsi, [rsp + 0x40]
lea rbx, [rsp + 0x50]
nop
movdqu xmm1, xmmword [r13 + r15 - 0x10]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm6, xmmword [rsp + 0xe0]
movdqu xmm0, xmmword [rsp + 0xf0]
pand xmm6, xmmword [rsp + 0xd0]
pxor xmm0, xmmword [rsp + 0x100]
pxor xmm6, xmmword [rsp + 0xc0]
movdqu xmm2, xmmword [rsp + 0xf0]
movdqu xmm8, xmmword [rsp + 0x100]
pxor xmm6, xmm0
pxor xmm6, xmm1
movups xmmword [r14 + r15 - 0x10], xmm6
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm8
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0xe0]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x100], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xd0]
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmm3, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0xf0], xmm1
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xd0]
movdqu xmm4, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0xe0], xmm4
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm3, xmmword [rsp + 0xb0]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0xd0], xmm2
call sym.softaes_block_encrypt
mov rcx, rdi
mov r8, rsi
mov rdx, rbx
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmm5, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0xc0], xmm5
call sym.softaes_block_encrypt
movdqu xmm1, xmmword [rsp + 0x60]
mov rcx, r15
add r15, 0x10
pxor xmm6, xmm1
movups xmmword [rsp + 0xb0], xmm6
cmp r12, r15
jae 0x140019780
mov r8, qword [rsp + 0x30]
test r8, r8
jne 0x1400199c0
mov rax, qword [rsp + 0x38]
lea rbx, [rsp + 0x90]
mov r9, r12
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov r8, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x30]
call sym.aegis256_mac
cmp qword [rbp + 0x30], 0x10
je 0x140019d80
cmp qword [rbp + 0x30], 0x20
jne 0x140019e28
mov rdx, qword [rbp + 0x28]
mov rcx, rbx
call sym.crypto_verify_32
test eax, eax
mov ebx, eax
setne al
test r14, r14
je 0x140019985
test al, al
jne 0x1400199b0
movups xmm6, xmmword [rsp + 0x110]
mov eax, ebx
movups xmm8, xmmword [rsp + 0x120]
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8, r12
xor edx, edx
mov rcx, r14
call sym.memset
jmp 0x140019985
add r13, rcx
add rcx, r14
mov r9, qword [rsp + 0x38]
mov rdx, r13
call sym.aegis256_declast
jmp 0x14001992e
lea r8, [rsp + 0x70]
pxor xmm0, xmm0
add rdx, qword [rbp + 0x38]
movups xmmword [rsp + 0x70], xmm0
mov r9, r8
mov rax, rdx
cmp ecx, 8
jae 0x140019de8
xor edx, edx
test cl, 4
jne 0x140019dd0
test cl, 2
jne 0x140019db0
and ecx, 1
jne 0x140019da0
lea rdi, [rsp + 0x60]
lea rsi, [rsp + 0x40]
movdqu xmm8, xmmword [rsp + 0x100]
movdqu xmm5, xmmword [rsp + 0xf0]
lea rbx, [rsp + 0x50]
mov r8, rsi
mov rcx, rdi
movdqu xmm6, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x50], xmm5
mov rdx, rbx
movups xmmword [rsp + 0x40], xmm8
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xf0]
movdqu xmm5, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x100], xmm5
movdqu xmm5, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x50], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm0, xmmword [rsp + 0xd0]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xf0], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm0, xmmword [rsp + 0xc0]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xe0], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xd0], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmm5, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0xc0], xmm5
call sym.softaes_block_encrypt
movdqu xmm0, xmmword [rsp + 0x60]
mov r8, r12
and r8d, 0xf
pxor xmm0, xmm6
movups xmmword [rsp + 0xb0], xmm0
test r14, r14
jne 0x14001975a
cmp r12, 0xf
jbe 0x140019e37
mov qword [rsp + 0x30], r8
mov r15d, 0x10
lea rdi, [rsp + 0x60]
lea rsi, [rsp + 0x40]
lea rbx, [rsp + 0x50]
nop dword [rax]
movdqu xmm2, xmmword [r13 + r15 - 0x10]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm6, xmmword [rsp + 0xe0]
movdqu xmm0, xmmword [rsp + 0xf0]
pand xmm6, xmmword [rsp + 0xd0]
pxor xmm0, xmmword [rsp + 0x100]
pxor xmm6, xmmword [rsp + 0xc0]
movdqu xmm3, xmmword [rsp + 0xf0]
movdqu xmm8, xmmword [rsp + 0x100]
pxor xmm6, xmm0
movups xmmword [rsp + 0x50], xmm3
pxor xmm6, xmm2
movups xmmword [rsp + 0x40], xmm8
movups xmmword [rsp + 0x80], xmm6
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xf0]
movdqu xmm4, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0x100], xmm4
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0xe0]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0xf0], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0xd0]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm3, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0xe0], xmm2
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xd0], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm3, xmmword [rsp + 0xb0]
movdqu xmm2, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0xc0], xmm2
call sym.softaes_block_encrypt
movdqu xmm4, xmmword [rsp + 0x60]
mov rax, r15
add r15, 0x10
pxor xmm6, xmm4
movups xmmword [rsp + 0xb0], xmm6
cmp r12, r15
jae 0x140019bb8
mov r8, qword [rsp + 0x30]
add r13, rax
test r8, r8
je 0x14001992e
lea rcx, [rsp + 0x80]
jmp 0x1400199c6
mov rdx, qword [rbp + 0x28]
mov rcx, rbx
call sym.crypto_verify_16
test eax, eax
mov ebx, eax
setne al
jmp 0x14001997c
movzx eax, byte [rax + rdx]
mov byte [r9 + rdx], al
jmp 0x140019a1e
movzx r8d, word [rax + rdx]
mov word [r9 + rdx], r8w
add rdx, 2
and ecx, 1
je 0x140019a1e
jmp 0x140019da0
mov edx, dword [rax]
mov dword [r9], edx
mov edx, 4
test cl, 2
je 0x140019a15
jmp 0x140019db0
mov r11d, ecx
xor eax, eax
and r11d, 0xfffffff8
mov r9d, eax
add eax, 8
mov r10, qword [rdx + r9]
mov qword [r8 + r9], r10
cmp eax, r11d
jb 0x140019df1
lea r9, [r8 + rax]
add rax, rdx
jmp 0x140019a01
xor edx, edx
jmp 0x14001973d
test r8, r8
je 0x14001992e
mov rcx, r14
jmp 0x1400199c6
mov eax, 1
mov ebx, 0xffffffff
jmp 0x14001997c
test r8, r8
jne 0x140019d6b
jmp 0x14001992e