Function at 0x14015aaa0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0xa8
call fcn.1400babe0
sub rsp, rax
mov rax, qword [0x1402bf070]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x70], rcx
mov r14, r9
mov rcx, r9
mov qword [rsp + 0x78], r9
mov rdi, r8
mov qword [rsp + 0x60], r8
mov rbx, rdx
xor esi, esi
call fcn.1400ed3d0
mov rcx, r14
call fcn.1400ed120
mov rcx, r14
mov qword [rsp + 0x50], rax
mov r15, rax
call fcn.1400ed120
mov rcx, r14
mov qword [rsp + 0x30], rax
call fcn.1400ed120
mov rcx, r14
mov qword [rsp + 0x68], rax
mov r12, rax
call fcn.1400ed120
mov qword [rsp + 0x40], rax
mov r14, rax
test rax, rax
je 0x14015af8e
lea r8d, [rsi + 6]
mov rcx, rdi
lea rdx, [rsp + 0x80]
call fcn.14015be50
test eax, eax
je 0x14015af6e
cmp eax, 6
jg 0x14015af6e
lea r8, [rsp + 0x80]
mov rdx, rbx
mov rcx, r12
call fcn.14015a550
test eax, eax
je 0x14015af8e
mov rcx, r12
call fcn.1400e5420
test eax, eax
jne 0x14015af8e
mov rdx, rdi
mov rcx, r14
call fcn.1400e5160
test rax, rax
je 0x14015af8e
mov rcx, r12
call fcn.1400e5520
mov rcx, r14
mov ebp, eax
call fcn.1400e5520
movsxd r13, dword [rdi + 8]
mov rcx, r12
mov edx, r13d
mov dword [rsp + 0x38], eax
mov r14d, eax
call fcn.1400e5e60
test rax, rax
je 0x14015af8e
movsxd rax, dword [r12 + 8]
mov rbx, qword [r12]
cmp rax, r13
jge 0x14015abec
mov r8, r13
lea rcx, [rbx + rax*8]
sub r8, rax
xor edx, edx
shl r8, 3
call fcn.1401df9b0
mov edx, r13d
mov dword [r12 + 8], r13d
mov rcx, r15
call fcn.1400e5e60
test rax, rax
je 0x14015af8e
mov r15, qword [r15]
mov eax, 1
mov qword [r15], rax
cmp r13d, eax
jle 0x14015ac2b
lea eax, [r13 - 1]
xor edx, edx
movsxd r8, eax
lea rcx, [r15 + 8]
shl r8, 3
call fcn.1401df9b0
mov rax, qword [rsp + 0x50]
mov edx, r13d
mov rcx, qword [rsp + 0x30]
mov dword [rax + 8], r13d
call fcn.1400e5e60
test rax, rax
je 0x14015af8e
mov rdx, qword [rsp + 0x30]
mov rdi, qword [rdx]
mov qword [rsp + 0x58], rdi
test r13d, r13d
jle 0x14015ac72
mov r8, r13
xor edx, edx
shl r8, 3
mov rcx, rdi
call fcn.1401df9b0
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov dword [rdx + 8], r13d
mov r11, qword [rcx]
mov qword [rsp + 0x48], r11
test ebp, ebp
je 0x14015ad65
nop dword [rax + rax]
mov r9, qword [rbx]
test r9b, 1
jne 0x14015ad47
mov rax, qword [r15]
mov r12, rsi
mov r8, qword [rsp + 0x60]
mov r11, rax
and r11d, 1
neg r11
mov rcx, qword [r8]
mov rdx, qword [rcx]
lea ecx, [r13 - 1]
and rdx, r11
movsxd rdi, ecx
xor rax, rdx
test ecx, ecx
jle 0x14015ad30
mov rsi, rbx
lea r10, [r15 + 8]
sub rsi, r15
mov r14, 0xfffffffffffffff8
sub r14, r15
mov r12, rdi
mov rcx, qword [rsi + r10]
lea rdx, [r14 + r10]
shl rcx, 0x3f
lea r10, [r10 + 8]
shr r9, 1
or rcx, r9
shr rax, 1
mov r9, qword [rsi + r10 - 8]
mov qword [rsi + r10 - 0x10], rcx
mov rcx, qword [r8]
mov r8, qword [rdx + rcx + 8]
and r8, r11
xor r8, qword [r10 - 8]
mov rcx, r8
shl rcx, 0x3f
or rcx, rax
mov rax, r8
mov r8, qword [rsp + 0x60]
mov qword [r10 - 0x10], rcx
sub rdi, 1
jne 0x14015ace0
xor esi, esi
shr r9, 1
shr rax, 1
mov qword [rbx + r12*8], r9
mov qword [r15 + r12*8], rax
sub ebp, 1
jne 0x14015ac90
mov rdi, qword [rsp + 0x58]
mov r11, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x38]
mov r12, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
cmp ebp, 0x40
jg 0x14015ad80
mov rax, qword [rbx]
test rax, rax
je 0x14015af8e
cmp rax, 1
je 0x14015af48
cmp ebp, r14d
jge 0x14015adc9
mov eax, ebp
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x38], eax
mov ebp, r14d
mov r14d, eax
mov rbx, r11
mov rax, r12
mov r15, rdi
mov r12, rcx
mov qword [rsp + 0x40], rax
mov rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x30], rax
mov rdi, qword [rax]
mov r11, qword [rcx]
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x48], r11
mov r8, rsi
test r13d, r13d
jle 0x14015ae97
cmp r13d, 2
jb 0x14015ae97
lea eax, [r13 - 1]
movsxd rcx, eax
lea r10, [rdi + rcx*8]
lea rax, [r15 + rcx*8]
cmp r15, r10
ja 0x14015adfc
cmp rax, rdi
jae 0x14015ae97
lea rdx, [rbx + rcx*8]
cmp r15, rdx
ja 0x14015ae0e
cmp rax, rbx
jae 0x14015ae97
lea r9, [r11 + rcx*8]
cmp r15, r9
ja 0x14015ae1c
cmp rax, r11
jae 0x14015ae97
cmp rbx, r10
ja 0x14015ae26
cmp rdx, rdi
jae 0x14015ae97
cmp rbx, r9
ja 0x14015ae30
cmp rdx, r11
jae 0x14015ae97
mov ecx, r13d
and ecx, 0x80000001
jge 0x14015ae42
dec ecx
or ecx, 0xfffffffe
inc ecx
mov eax, r13d
mov rdx, rdi
sub eax, ecx
sub rdx, rbx
mov rcx, r11
movsxd r10, eax
sub rcx, rbx
mov r9, r15
sub r9, rbx
mov rax, rbx
nop
movdqu xmm0, xmmword [rax]
add r8, 2
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [r9 + rax - 0x10]
movdqu xmmword [rax - 0x10], xmm1
movdqu xmm1, xmmword [rdx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [r9 + rax - 0x10], xmm1
cmp r8, r10
jl 0x14015ae60
cmp r8, r13
jge 0x14015aede
mov r9, r11
lea rcx, [rbx + r8*8]
mov r11, r15
mov r10, rdi
sub r11, rbx
sub r9, rbx
sub r10, rbx
mov rdx, r13
sub rdx, r8
nop dword [rax + rax]
mov rax, qword [rcx + r9]
xor qword [rcx], rax
mov rax, qword [rcx + r10]
xor qword [rcx + r11], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x14015aec0
mov r11, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
cmp ebp, r14d
jne 0x14015ac83
lea eax, [rbp - 1]
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
movsxd rdi, eax
mov rax, rdi
mov rcx, qword [rbx + rdi*8]
test rcx, rcx
jne 0x14015af24
nop dword [rax]
test rax, rax
je 0x14015af24
mov rcx, qword [rbx + rax*8 - 8]
dec rax
dec edi
test rcx, rcx
je 0x14015af10
call fcn.1400e5610
mov r11, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
shl edi, 6
lea ebp, [rdi + rax]
mov rdi, qword [rsp + 0x58]
jmp 0x14015ac83
mov rcx, qword [rsp + 0x50]
call fcn.1400e5cf0
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
call fcn.1400e5160
test rax, rax
mov eax, 1
cmovne esi, eax
jmp 0x14015af8e
mov edx, 0x83
mov dword [rsp + 0x20], 0x18e
lea r9, str.crypto_bn_bn_gf2m.c
lea ecx, [rdx - 0x80]
lea r8d, [rdx - 0x19]
call fcn.1400c0d60
mov rcx, qword [rsp + 0x78]
call fcn.1400ecfe0
mov eax, esi
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1400b9f70
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret