Function at 0x5ae340
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rdi, qword [rsp + 0xf0]
mov qword [rsp + 0xd8], rdx
mov r13, rcx
mov r14, r8
mov rbx, r9
call fcn.005603f0
mov r12, rax
test rax, rax
je 0x5ae714
test rbx, rbx
mov rcx, r14
cmove rbx, r14
call fcn.00573950
mov ebp, eax
test eax, eax
js 0x5ae714
cmp dword [rsp + 0xf8], 0xffffffff
je 0x5ae780
cmp dword [rsp + 0xf8], 0xfffffffd
jl 0x5ae7b0
mov rcx, qword [r13 + 0x18]
mov r15d, 0xff
call fcn.0052ce70
mov rcx, r13
lea esi, [rax - 1]
call fcn.005a8700
and esi, 7
movzx edx, byte [rdi]
mov ecx, esi
shl r15d, cl
and r15d, edx
jne 0x5ae6f0
test esi, esi
jne 0x5ae3eb
add rdi, 1
sub eax, 1
lea edx, [rbp + 1]
cmp edx, eax
jge 0x5ae7d0
mov r11d, eax
sub r11d, ebp
cmp dword [rsp + 0xf8], 0xfffffffd
je 0x5ae790
lea edx, [r11 - 1]
cmp edx, dword [rsp + 0xf8]
jle 0x5ae800
cdqe
cmp byte [rdi + rax - 1], 0xbc
jne 0x5ae750
lea r10d, [r11 - 1]
mov r8d, 0x5d
mov dword [rsp + 0x34], r11d
lea rdx, str.crypto_rsa_rsa_pss.c
movsxd rcx, r10d
mov dword [rsp + 0x30], r10d
lea rax, [rdi + rcx]
mov qword [rsp + 0x38], rax
call fcn.00580440
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
test rax, rax
mov r13, rax
je 0x5ae860
mov qword [rsp + 0x20], rbx
mov r8, qword [rsp + 0x38]
mov r9d, ebp
mov edx, r10d
mov rcx, rax
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x30], r10d
call fcn.0069a980
test eax, eax
js 0x5ae71a
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
test r10d, r10d
jle 0x5ae5c7
lea rdx, [rdi + 1]
mov rax, r13
lea ecx, [r11 - 2]
sub rax, rdx
cmp rax, 0xe
jbe 0x5ae890
cmp ecx, 6
jbe 0x5ae890
mov r8d, r10d
cmp ecx, 0xe
jbe 0x5ae8e1
mov edx, r10d
xor eax, eax
shr edx, 4
shl rdx, 4
movdqu xmm0, xmmword [r13 + rax]
movdqu xmm2, xmmword [rdi + rax]
pxor xmm0, xmm2
movups xmmword [r13 + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x5ae4e0
mov edx, r10d
and edx, 0xfffffff0
mov eax, edx
cmp r10d, edx
je 0x5ae5c7
mov r8d, r10d
sub ecx, edx
sub r8d, edx
cmp ecx, 6
jbe 0x5ae544
lea rcx, [r13 + rdx]
movq xmm0, qword [rdi + rdx]
mov edx, r8d
movq xmm1, qword [rcx]
and edx, 0xfffffff8
add eax, edx
pxor xmm0, xmm1
movq qword [rcx], xmm0
cmp edx, r8d
je 0x5ae5c7
movsxd rdx, eax
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 1]
cmp r10d, edx
jle 0x5ae5c7
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 2]
cmp r10d, edx
jle 0x5ae5c7
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 3]
cmp r10d, edx
jle 0x5ae5c7
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 4]
cmp r10d, edx
jle 0x5ae5c7
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 5]
cmp r10d, edx
jle 0x5ae5c7
movsxd rdx, edx
add eax, 6
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
cmp r10d, eax
jle 0x5ae5c7
cdqe
movzx edx, byte [rdi + rax]
xor byte [r13 + rax], dl
movzx edx, byte [r13]
test esi, esi
jne 0x5ae810
test dl, dl
jne 0x5ae8ea
cmp r11d, 2
jle 0x5ae830
lea ecx, [r11 - 3]
mov eax, 1
add rcx, 2
jmp 0x5ae605
add rax, 1
cmp rax, rcx
je 0x5ae830
movzx edx, byte [r13 + rax]
mov ebx, eax
test dl, dl
je 0x5ae5f8
add ebx, 1
cmp dl, 1
jne 0x5ae830
cmp dword [rsp + 0xf8], 0xfffffffe
je 0x5ae639
mov eax, r10d
sub eax, ebx
cmp eax, dword [rsp + 0xf8]
jne 0x5ae8b8
xor r8d, r8d
mov rdx, r14
mov rcx, r12
mov dword [rsp + 0x30], r10d
call fcn.005604f0
test eax, eax
je 0x5ae717
mov r8d, 8
lea rdx, [0x00919558]
mov rcx, r12
call fcn.00560890
test eax, eax
je 0x5ae717
movsxd rsi, ebp
mov rdx, qword [rsp + 0xd8]
mov rcx, r12
mov r8, rsi
call fcn.00560890
test eax, eax
je 0x5ae717
mov r10d, dword [rsp + 0x30]
cmp r10d, ebx
je 0x5ae6b1
sub r10d, ebx
movsxd rdx, ebx
mov rcx, r12
add rdx, r13
movsxd r8, r10d
call fcn.00560890
test eax, eax
je 0x5ae717
lea r14, [rsp + 0x40]
xor r8d, r8d
mov rcx, r12
mov rdx, r14
call fcn.00560940
test eax, eax
je 0x5ae717
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov rcx, r14
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x5ae8f4
mov r15d, 1
jmp 0x5ae71a
mov dword [rsp + 0x20], 0x46
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x85
mov edx, 0x7e
mov ecx, 4
call fcn.0055dd20
xor r13d, r13d
xor r15d, r15d
mov r8d, 0x83
lea rdx, str.crypto_rsa_rsa_pss.c
mov rcx, r13
call fcn.00580410
mov rcx, r12
call fcn.00560410
mov eax, r15d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0x58
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x86
xor r13d, r13d
mov edx, 0x7e
mov ecx, 4
call fcn.0055dd20
jmp 0x5ae71a
mov dword [rsp + 0xf8], eax
jmp 0x5ae3b2
cdqe
lea ecx, [r11 - 2]
cmp byte [rdi + rax - 1], 0xbc
mov dword [rsp + 0xf8], ecx
je 0x5ae428
jmp 0x5ae750
mov dword [rsp + 0x20], 0x3f
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x88
jmp 0x5ae705
mov dword [rsp + 0x20], 0x4e
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x6d
mov edx, 0x7e
xor r13d, r13d
mov ecx, 4
call fcn.0055dd20
jmp 0x5ae71a
mov dword [rsp + 0x20], 0x54
jmp 0x5ae7d8
mov ecx, 8
mov eax, 0xff
sub ecx, esi
sar eax, cl
and edx, eax
mov byte [r13], dl
jmp 0x5ae5d4
mov r8d, 0x87
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x6a
lea r9, str.crypto_rsa_rsa_pss.c
call fcn.0055dd20
jmp 0x5ae71a
mov r8d, 0x41
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x5f
lea r9, str.crypto_rsa_rsa_pss.c
call fcn.0055dd20
jmp 0x5ae71a
xor eax, eax
nop word [rax + rax]
movzx edx, byte [rdi + rax]
xor byte [r13 + rax], dl
mov rdx, rax
add rax, 1
cmp rdx, rcx
jne 0x5ae898
jmp 0x5ae5c7
mov r8d, 0x88
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x6e
lea r9, str.crypto_rsa_rsa_pss.c
call fcn.0055dd20
jmp 0x5ae71a
xor eax, eax
xor edx, edx
jmp 0x5ae51d
mov ebx, 1
jmp 0x5ae614
mov r8d, 0x68
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x7c
lea r9, str.crypto_rsa_rsa_pss.c
call fcn.0055dd20
jmp 0x5ae71a