Function at 0x140016f60
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
mov r13, r8
push r12
mov r12, rcx
push rdi
push rsi
push rbx
sub rsp, 0x70
and rsp, 0xffffffffffffffe0
sub rsp, 0x150
movups xmmword [rsp + 0x150], xmm6
lea rax, [rsp + 0xd0]
movups xmmword [rsp + 0x160], xmm7
mov r8, rax
movups xmmword [rsp + 0x170], xmm8
movups xmmword [rsp + 0x180], xmm9
movups xmmword [rsp + 0x190], xmm10
movups xmmword [rsp + 0x1a0], xmm11
movups xmmword [rsp + 0x1b0], xmm12
mov rcx, qword [rbp + 0x50]
mov qword [rbp + 0x18], rdx
mov rdx, qword [rbp + 0x48]
mov qword [rbp + 0x28], r9
mov qword [rsp + 0x38], rax
call sym.aegis128l_init
cmp qword [rbp + 0x40], 0x1f
jbe 0x140017b40
mov r15d, 0x20
mov qword [rbp + 0x10], r12
mov r14, qword [rbp + 0x38]
lea rdi, [rsp + 0x60]
mov r12, r15
mov r15, qword [rbp + 0x40]
lea rsi, [rsp + 0x40]
lea rbx, [rsp + 0x50]
nop dword [rax]
movdqu xmm7, xmmword [r14]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0x130]
movdqu xmm6, xmmword [r14 + 0x10]
add r14, 0x20
movdqu xmm8, xmmword [rsp + 0x140]
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 + 0x120]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0x130]
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x140], xmm2
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0x110]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm2, xmmword [rsp + 0x120]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x130], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0x100]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0x110]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x120], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xf0]
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmm3, xmmword [rsp + 0x100]
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x110], xmm1
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0xe0]
movdqu xmm4, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x100], xmm4
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm3, xmmword [rsp + 0xd0]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0xf0], xmm2
call sym.softaes_block_encrypt
mov rdx, rbx
mov r8, rsi
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xd0]
movdqu xmm5, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xe0], xmm5
call sym.softaes_block_encrypt
movdqu xmm0, xmmword [rsp + 0x60]
mov rdx, r12
pxor xmm6, xmmword [rsp + 0x110]
add r12, 0x20
pxor xmm0, xmm7
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0xd0], xmm0
cmp r15, r12
jae 0x140017018
mov r12, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x40]
and ecx, 0x1f
jne 0x1400175b0
mov r8, r13
and r8d, 0x1f
test r12, r12
je 0x1400177f3
cmp r13, 0x1f
jbe 0x140017b47
mov qword [rsp + 0x30], r8
mov r14, qword [rbp + 0x18]
mov r15d, 0x20
lea rdi, [rsp + 0x60]
lea rsi, [rsp + 0x40]
lea rbx, [rsp + 0x50]
nop
movdqu xmm11, xmmword [r14]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm7, xmmword [rsp + 0xf0]
movdqu xmm8, xmmword [r14 + 0x10]
add r14, 0x20
movdqu xmm9, xmmword [rsp + 0x120]
movdqu xmm6, xmmword [rsp + 0x130]
movdqu xmm12, xmmword [rsp + 0xe0]
movdqu xmm2, xmmword [rsp + 0x130]
movdqu xmm10, xmmword [rsp + 0x140]
pxor xmm9, xmm7
pand xmm7, xmmword [rsp + 0x100]
pxor xmm12, xmm6
pand xmm6, xmmword [rsp + 0x140]
movdqu xmm0, xmm7
pxor xmm0, xmm11
pxor xmm0, xmm12
movups xmmword [r12 + r15 - 0x20], xmm0
movdqu xmm0, xmm6
pxor xmm0, xmm8
pxor xmm0, xmm9
movups xmmword [r12 + r15 - 0x10], xmm0
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm10
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0x130]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0x120]
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x140], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm3, xmmword [rsp + 0x110]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0x120]
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x130], xmm2
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0x100]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm2, xmmword [rsp + 0x110]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x120], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0xf0]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0x100]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x110], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xe0]
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmm3, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x100], xmm1
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0xd0]
movdqu xmm4, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xf0], xmm4
call sym.softaes_block_encrypt
mov rcx, rdi
mov r8, rsi
mov rdx, rbx
movdqu xmm3, xmmword [rsp + 0xd0]
movdqu xmm2, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm10
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0xe0], xmm2
call sym.softaes_block_encrypt
movdqu xmm4, xmmword [rsp + 0x60]
mov rcx, r15
pxor xmm6, xmmword [rsp + 0x110]
add r15, 0x20
pxor xmm7, xmm4
pxor xmm6, xmm9
pxor xmm7, xmm12
pxor xmm6, xmm8
pxor xmm7, xmm11
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0xd0], xmm7
cmp r13, r15
jae 0x140017250
mov r8, qword [rsp + 0x30]
test r8, r8
jne 0x140017590
mov rax, qword [rsp + 0x38]
lea rbx, [rsp + 0xb0]
mov r9, r13
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov r8, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x30]
call sym.aegis128l_mac
cmp qword [rbp + 0x30], 0x10
je 0x140017ab8
cmp qword [rbp + 0x30], 0x20
jne 0x140017b58
mov rdx, qword [rbp + 0x28]
mov rcx, rbx
call sym.crypto_verify_32
test eax, eax
mov ebx, eax
setne al
test r12, r12
je 0x140017521
test al, al
jne 0x140017578
movups xmm6, xmmword [rsp + 0x150]
mov eax, ebx
movups xmm7, xmmword [rsp + 0x160]
movups xmm8, xmmword [rsp + 0x170]
movups xmm9, xmmword [rsp + 0x180]
movups xmm10, xmmword [rsp + 0x190]
movups xmm11, xmmword [rsp + 0x1a0]
movups xmm12, xmmword [rsp + 0x1b0]
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8, r13
xor edx, edx
mov rcx, r12
call sym.memset
jmp 0x140017521
add qword [rbp + 0x18], rcx
add rcx, r12
mov r9, qword [rsp + 0x38]
mov rdx, qword [rbp + 0x18]
call sym.aegis128l_declast
jmp 0x1400174ca
pxor xmm0, xmm0
lea r8, [rsp + 0x70]
add rdx, qword [rbp + 0x38]
movups xmmword [rsp + 0x70], xmm0
mov r9, r8
mov rax, rdx
movups xmmword [rsp + 0x80], xmm0
cmp ecx, 8
jae 0x140017b18
xor edx, edx
test cl, 4
jne 0x140017b00
test cl, 2
jne 0x140017ae0
and ecx, 1
jne 0x140017ad0
lea rdi, [rsp + 0x60]
lea rsi, [rsp + 0x40]
movdqu xmm8, xmmword [rsp + 0x140]
movdqu xmm4, xmmword [rsp + 0x130]
lea rbx, [rsp + 0x50]
mov r8, rsi
mov rcx, rdi
movdqu xmm7, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x50], xmm4
mov rdx, rbx
movdqu xmm6, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x40], xmm8
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x140], xmm4
movdqu xmm4, xmmword [rsp + 0x120]
movups xmmword [rsp + 0x50], xmm4
movdqu xmm4, xmmword [rsp + 0x130]
movups xmmword [rsp + 0x40], xmm4
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0x120]
movdqu xmm4, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x130], xmm4
movdqu xmm4, xmmword [rsp + 0x110]
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x50], xmm4
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0x100]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0x110]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x120], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0x100]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x110], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0xe0]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm2, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x100], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xd0]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0xf0], xmm3
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xd0]
movdqu xmm4, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0xe0], xmm4
call sym.softaes_block_encrypt
movdqu xmm0, xmmword [rsp + 0x60]
mov r8, r13
pxor xmm6, xmmword [rsp + 0x110]
and r8d, 0x1f
pxor xmm0, xmm7
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0xd0], xmm0
test r12, r12
jne 0x140017227
cmp r13, 0x1f
jbe 0x140017b67
mov r9, qword [rbp + 0x18]
mov qword [rbp + 0x10], r12
lea rdi, [rsp + 0x60]
mov r14, r8
mov r15d, 0x20
lea rsi, [rsp + 0x40]
lea rbx, [rsp + 0x50]
mov r12, r9
movdqu xmm11, xmmword [r12]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm7, xmmword [rsp + 0xf0]
add r12, 0x20
movdqu xmm9, xmmword [rsp + 0x120]
movdqu xmm6, xmmword [rsp + 0x130]
movdqu xmm12, xmmword [rsp + 0xe0]
pxor xmm9, xmm7
movdqu xmm8, xmmword [r12 - 0x10]
pand xmm7, xmmword [rsp + 0x100]
movdqu xmm10, xmmword [rsp + 0x140]
pxor xmm12, xmm6
pand xmm6, xmmword [rsp + 0x140]
movdqu xmm5, xmmword [rsp + 0x130]
movdqu xmm0, xmm7
pxor xmm0, xmm11
movups xmmword [rsp + 0x40], xmm10
pxor xmm0, xmm12
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0x90], xmm0
movdqu xmm0, xmm6
pxor xmm0, xmm8
pxor xmm0, xmm9
movups xmmword [rsp + 0xa0], xmm0
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0x120]
movdqu xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x140], xmm1
movdqu xmm1, xmmword [rsp + 0x130]
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0x40], xmm1
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0x110]
movdqu xmm5, xmmword [rsp + 0x60]
movdqu xmm3, xmmword [rsp + 0x120]
movups xmmword [rsp + 0x50], xmm2
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x130], xmm5
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0x100]
movdqu xmm4, xmmword [rsp + 0x60]
movdqu xmm5, xmmword [rsp + 0x110]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0x120], xmm4
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm3, xmmword [rsp + 0xf0]
movdqu xmm2, xmmword [rsp + 0x60]
movdqu xmm4, xmmword [rsp + 0x100]
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x110], xmm2
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm5, xmmword [rsp + 0xe0]
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmm2, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x50], xmm5
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x100], xmm1
call sym.softaes_block_encrypt
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
movdqu xmm4, xmmword [rsp + 0xd0]
movdqu xmm3, xmmword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x50], xmm4
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0xf0], xmm3
call sym.softaes_block_encrypt
mov rdx, rbx
mov r8, rsi
mov rcx, rdi
movdqu xmm2, xmmword [rsp + 0xd0]
movdqu xmm5, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x50], xmm10
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0xe0], xmm5
call sym.softaes_block_encrypt
movdqu xmm3, xmmword [rsp + 0x60]
mov rdx, r15
pxor xmm6, xmmword [rsp + 0x110]
add r15, 0x20
pxor xmm7, xmm3
pxor xmm6, xmm9
pxor xmm7, xmm12
pxor xmm6, xmm8
pxor xmm7, xmm11
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0xd0], xmm7
cmp r13, r15
jae 0x140017820
mov r12, qword [rbp + 0x10]
mov r8, r14
test r14, r14
je 0x1400174ca
add qword [rbp + 0x18], rdx
lea rcx, [rsp + 0x90]
jmp 0x140017597
mov rdx, qword [rbp + 0x28]
mov rcx, rbx
call sym.crypto_verify_16
test eax, eax
mov ebx, eax
setne al
jmp 0x140017518
movzx eax, byte [rax + rdx]
mov byte [r9 + rdx], al
jmp 0x1400175f6
movzx r8d, word [rax + rdx]
mov word [r9 + rdx], r8w
add rdx, 2
and ecx, 1
je 0x1400175f6
jmp 0x140017ad0
mov edx, dword [rax]
mov dword [r9], edx
mov edx, 4
test cl, 2
je 0x1400175ed
jmp 0x140017ae0
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 0x140017b21
lea r9, [r8 + rax]
add rax, rdx
jmp 0x1400175d9
xor edx, edx
jmp 0x14001720a
test r8, r8
je 0x1400174ca
mov rcx, r12
jmp 0x140017597
mov eax, 1
mov ebx, 0xffffffff
jmp 0x140017518
test r8, r8
jne 0x140017aa6
jmp 0x1400174ca