Function at 0x5aee40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
cmp qword [rsp + 0xc0], 0
mov ebx, dword [rsp + 0xc8]
mov rax, r9
mov r13, rcx
mov rcx, r9
mov rdi, rdx
cmovne rax, qword [rsp + 0xc0]
mov qword [rsp + 0xb0], r8
mov r12, r9
mov qword [rsp + 0xc0], rax
call fcn.00573950
mov esi, eax
test eax, eax
js 0x5aefd4
cmp ebx, 0xffffffff
je 0x5af280
cmp ebx, 0xfffffffe
je 0x5aefe8
cmp ebx, 0xfffffffd
jl 0x5af290
mov rcx, qword [r13 + 0x18]
call fcn.0052ce70
mov rcx, r13
sub eax, 1
and eax, 7
mov dword [rsp + 0x44], eax
mov r15d, eax
call fcn.005a8700
mov ebp, eax
test r15d, r15d
jne 0x5aeee1
mov byte [rdi], 0
sub ebp, 1
add rdi, 1
lea eax, [rsi + 1]
cmp eax, ebp
jge 0x5aefb0
mov eax, ebp
sub eax, esi
mov dword [rsp + 0x38], eax
cmp ebx, 0xfffffffd
je 0x5af270
sub eax, 1
movsxd r15, ebx
cmp eax, ebx
jle 0x5af2b0
test ebx, ebx
jle 0x5af268
mov r8d, 0xc5
lea rdx, str.crypto_rsa_rsa_pss.c
mov rcx, r15
call fcn.00580440
mov r13, rax
test rax, rax
je 0x5af2e8
mov edx, ebx
mov rcx, rax
call fcn.005a29d0
test eax, eax
jle 0x5af258
call fcn.005603f0
xor r14d, r14d
mov r10, rax
test rax, rax
je 0x5aef79
xor r8d, r8d
mov rdx, r12
mov rcx, rax
mov qword [rsp + 0x48], rax
call fcn.005604f0
mov r10, qword [rsp + 0x48]
test eax, eax
mov r14d, eax
jne 0x5aeff8
mov rcx, r10
call fcn.00560410
mov r9d, 0xf7
mov rdx, r15
mov rcx, r13
lea r8, str.crypto_rsa_rsa_pss.c
call fcn.00580830
mov eax, r14d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0xb9
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x6e
mov edx, 0x98
mov ecx, 4
call fcn.0055dd20
movsxd r15, ebx
xor r10d, r10d
xor r13d, r13d
xor r14d, r14d
jmp 0x5aef79
mov ebx, 0xfffffffd
jmp 0x5aeeb2
mov rcx, r10
mov r8d, 8
lea rdx, [0x00919558]
call fcn.00560890
mov r10, qword [rsp + 0x48]
test eax, eax
mov r14d, eax
je 0x5aef79
mov rdx, qword [rsp + 0xb0]
mov rcx, r10
movsxd r8, esi
call fcn.00560890
mov r10, qword [rsp + 0x48]
test eax, eax
mov r14d, eax
je 0x5aef79
test ebx, ebx
je 0x5af067
mov rcx, r10
mov r8, r15
mov rdx, r13
mov qword [rsp + 0x48], r10
call fcn.00560890
mov r10, qword [rsp + 0x48]
test eax, eax
mov r14d, eax
je 0x5aef79
mov r12d, dword [rsp + 0x38]
xor r8d, r8d
mov rcx, r10
mov qword [rsp + 0x38], r10
sub r12d, 1
movsxd r14, r12d
lea rdx, [rdi + r14]
mov qword [rsp + 0x48], rdx
call fcn.00560940
mov r10, qword [rsp + 0x38]
test eax, eax
mov r14d, eax
je 0x5aef79
mov rdx, qword [rsp + 0x48]
mov r9d, esi
mov rcx, rdi
mov qword [rsp + 0x38], r10
mov rax, qword [rsp + 0xc0]
xor r14d, r14d
mov r8, rdx
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.0069a980
mov r10, qword [rsp + 0x38]
test eax, eax
mov edx, eax
jne 0x5aef79
mov eax, ebp
sub eax, ebx
sub eax, esi
cdqe
lea r9, [rdi + rax - 2]
xor byte [r9], 1
test ebx, ebx
jle 0x5af228
sub rax, 1
lea r14, [r13 + 1]
lea rcx, [r9 + 1]
mov esi, ebx
lea r8, [rdi + rax]
lea r11d, [rbx - 1]
mov r12, r8
sub r12, r14
cmp r12, 0xe
jbe 0x5af317
cmp r11d, 6
jbe 0x5af317
cmp r11d, 0xe
jbe 0x5af337
mov r9d, ebx
xor edx, edx
shr r9d, 4
shl r9, 4
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r8 + rdx]
movdqu xmm2, xmmword [r13 + rdx]
pxor xmm0, xmm2
movups xmmword [r8 + rdx], xmm0
add rdx, 0x10
cmp rdx, r9
jne 0x5af140
mov edx, ebx
and edx, 0xfffffff0
mov r8d, edx
add rcx, r8
cmp ebx, edx
je 0x5af228
mov esi, ebx
sub r11d, edx
sub esi, edx
cmp r11d, 6
jbe 0x5af1a9
add rax, r8
movq xmm0, qword [r13 + r8]
add rax, rdi
movq xmm1, qword [rax]
pxor xmm0, xmm1
movq qword [rax], xmm0
mov eax, esi
and eax, 0xfffffff8
mov r8d, eax
add edx, eax
add rcx, r8
cmp esi, eax
je 0x5af228
movsxd rax, edx
movzx eax, byte [r13 + rax]
xor byte [rcx], al
lea eax, [rdx + 1]
cmp eax, ebx
jge 0x5af228
cdqe
movzx eax, byte [r13 + rax]
xor byte [rcx + 1], al
lea eax, [rdx + 2]
cmp eax, ebx
jge 0x5af228
cdqe
movzx eax, byte [r13 + rax]
xor byte [rcx + 2], al
lea eax, [rdx + 3]
cmp ebx, eax
jle 0x5af228
cdqe
movzx eax, byte [r13 + rax]
xor byte [rcx + 3], al
lea eax, [rdx + 4]
cmp ebx, eax
jle 0x5af228
cdqe
movzx eax, byte [r13 + rax]
xor byte [rcx + 4], al
lea eax, [rdx + 5]
cmp ebx, eax
jle 0x5af228
cdqe
add edx, 6
movzx eax, byte [r13 + rax]
xor byte [rcx + 5], al
cmp ebx, edx
jle 0x5af228
movsxd rdx, edx
movzx eax, byte [r13 + rdx]
xor byte [rcx + 6], al
nop dword [rax]
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x5af242
mov ecx, 8
mov eax, 0xff
sub ecx, dword [rsp + 0x44]
sar eax, cl
and byte [rdi], al
movsxd rbp, ebp
mov r14d, 1
mov byte [rdi + rbp - 1], 0xbc
jmp 0x5aef79
xor r10d, r10d
xor r14d, r14d
jmp 0x5aef79
xor r13d, r13d
jmp 0x5aef46
lea ebx, [rax - 2]
movsxd r15, ebx
jmp 0x5aef0b
mov ebx, eax
jmp 0x5aeeb2
mov dword [rsp + 0x20], 0xae
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x88
jmp 0x5aefc5
mov edx, 0x98
mov ecx, 4
xor r13d, r13d
xor r14d, r14d
mov dword [rsp + 0x20], 0xc0
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x6e
call fcn.0055dd20
xor r10d, r10d
jmp 0x5aef79
mov dword [rsp + 0x20], 0xc7
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x41
xor r14d, r14d
mov edx, 0x98
mov ecx, 4
call fcn.0055dd20
xor r10d, r10d
jmp 0x5aef79
lea ecx, [rbx + 1]
mov eax, 1
movzx edx, byte [r13 + rax - 1]
xor byte [r9 + rax], dl
add rax, 1
cmp rax, rcx
jne 0x5af31f
jmp 0x5af228
xor r8d, r8d
jmp 0x5af17f