Function at 0x69b070
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov r13d, dword [rsp + 0x170]
mov rsi, qword [rsp + 0x190]
cmp qword [rsp + 0x188], 0
mov qword [rsp + 0x150], rcx
mov rbx, r8
mov ebp, r9d
mov dword [rsp + 0x158], edx
je 0x69b860
mov rcx, qword [rsp + 0x188]
test rsi, rsi
cmove rsi, qword [rsp + 0x188]
call fcn.00573950
mov edx, dword [rsp + 0x158]
mov r15d, eax
test edx, edx
jle 0x69b98a
test ebp, ebp
jle 0x69b98a
cmp ebp, r13d
jg 0x69b939
lea eax, [rax + 1]
mov dword [rsp + 0x60], eax
add eax, eax
cmp eax, r13d
jg 0x69b939
mov eax, r13d
mov r8d, 0x9d
lea rdx, str.crypto_rsa_rsa_oaep.c
movsxd r14, r13d
sub eax, r15d
lea edi, [rax - 1]
mov dword [rsp + 0x64], eax
movsxd rax, edi
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.00580440
mov r12, rax
test rax, rax
je 0x69b878
mov r8d, 0xa3
lea rdx, str.crypto_rsa_rsa_oaep.c
mov rcx, r14
call fcn.00580440
mov r10, rax
test rax, rax
je 0x69b8f7
movsxd r8, ebp
add r8, rbx
lea rbx, [rax + r14]
mov rdx, rbx
nop dword [rax]
mov ecx, ebp
lea eax, [rbp - 1]
sub rdx, 1
not ecx
and eax, ecx
sar eax, 0x1f
mov ecx, eax
add eax, 1
sub r8, rax
sub ebp, eax
mov eax, ebx
not ecx
sub eax, edx
and cl, byte [r8]
mov byte [rdx], cl
cmp r13d, eax
jg 0x69b170
lea eax, [r13 - 1]
test r13d, r13d
movzx ecx, cl
mov qword [rsp + 0x20], rsi
mov rbp, rax
mov rdx, 0xffffffffffffffff
mov r9d, edi
mov qword [rsp + 0x50], r10
not rbp
cmovg rdx, rbp
neg rax
lea rbp, [rsp + 0x80]
mov r11, rdx
add rdx, rbx
test r13d, r13d
mov r13d, 0
cmovg r13, rax
lea eax, [rcx - 1]
not ecx
mov qword [rsp + 0x38], rdx
and ecx, eax
movsxd rax, r15d
mov edx, r15d
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x58], rax
add rax, r13
sar ecx, 0x1f
add rbx, rax
mov dword [rsp + 0x34], ecx
mov rcx, rbp
mov r8, rbx
call fcn.0069a980
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
test eax, eax
jne 0x69b57b
test r15d, r15d
jle 0x69b3d7
lea rdx, [r14 + r11 + 2]
mov r9, rbp
lea r8d, [r15 - 1]
mov ecx, r15d
add rdx, r10
sub r9, rdx
cmp r9, 0xe
jbe 0x69b8ca
cmp r8d, 6
jbe 0x69b8ca
cmp r8d, 0xe
jbe 0x69b932
lea rax, [r14 + r11 + 1]
mov edx, r15d
add rax, r10
shr edx, 4
movdqu xmm0, xmmword [rax]
pxor xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x80], xmm0
cmp edx, 1
je 0x69b2d6
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x90], xmm0
cmp edx, 2
je 0x69b2d6
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
cmp edx, 3
je 0x69b2d6
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
mov edx, r15d
and edx, 0xfffffff0
mov eax, edx
cmp edx, r15d
je 0x69b3d7
mov ecx, r15d
sub r8d, edx
sub ecx, edx
cmp r8d, 6
jbe 0x69b324
lea r8, [rbp + rdx]
add rdx, r10
add rdx, r14
movq xmm0, qword [r8]
movq xmm1, qword [r11 + rdx + 1]
mov edx, ecx
and edx, 0xfffffff8
pxor xmm0, xmm1
add eax, edx
movq qword [r8], xmm0
cmp edx, ecx
je 0x69b3d7
mov r11, qword [rsp + 0x38]
lea r8d, [rax + 1]
movsxd rdx, eax
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r15d, r8d
jle 0x69b3d7
lea r8d, [rax + 2]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r8d, r15d
jge 0x69b3d7
lea r8d, [rax + 3]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r8d, r15d
jge 0x69b3d7
lea r8d, [rax + 4]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r8d, r15d
jge 0x69b3d7
lea r8d, [rax + 5]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r15d, r8d
jle 0x69b3d7
lea r8d, [rax + 6]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r15d, r8d
jle 0x69b3d7
add eax, 7
cdqe
movzx eax, byte [r11 + rax]
xor byte [rsp + rdx + 0x80], al
mov qword [rsp + 0x20], rsi
mov r9d, r15d
mov r8, rbp
mov edx, edi
mov rcx, r12
mov qword [rsp + 0x48], r10
call fcn.0069a980
mov r10, qword [rsp + 0x48]
test eax, eax
mov esi, eax
jne 0x69b57b
test edi, edi
jle 0x69b53e
mov eax, dword [rsp + 0x64]
mov r11, qword [rsp + 0x58]
mov rdx, r12
lea r8d, [rax - 2]
lea rax, [r14 + r13 + 1]
add rax, r11
add rax, r10
sub rdx, rax
cmp rdx, 0xe
jbe 0x69b904
cmp r8d, 6
jbe 0x69b904
mov ecx, edi
cmp r8d, 0xe
jbe 0x69b929
lea rcx, [r14 + r13]
mov edx, edi
xor eax, eax
add rcx, r11
shr edx, 4
add rcx, r10
shl rdx, 4
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm2, xmmword [r12 + rax]
pxor xmm0, xmm2
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x69b460
mov eax, edi
and eax, 0xfffffff0
mov edx, eax
cmp eax, edi
je 0x69b53e
mov ecx, edi
sub r8d, eax
sub ecx, eax
cmp r8d, 6
jbe 0x69b4cd
mov r9d, eax
mov rax, qword [rsp + 0x58]
lea r8, [r12 + r9]
add rax, r10
movq xmm1, qword [r8]
add rax, r9
add rax, r14
movq xmm0, qword [rax + r13]
mov eax, ecx
and eax, 0xfffffff8
pxor xmm0, xmm1
add edx, eax
movq qword [r8], xmm0
cmp eax, ecx
je 0x69b53e
movsxd rax, edx
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 1]
cmp edi, eax
jle 0x69b53e
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 2]
cmp eax, edi
jge 0x69b53e
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 3]
cmp edi, eax
jle 0x69b53e
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 4]
cmp edi, eax
jle 0x69b53e
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 5]
cmp edi, eax
jle 0x69b53e
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 6]
cmp edi, eax
jle 0x69b53e
cdqe
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
mov rax, qword [rsp + 0x188]
lea r13, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x28], 0
movsxd rdx, dword [rsp + 0x180]
mov rcx, qword [rsp + 0x178]
mov r8, r13
mov qword [rsp + 0x20], rax
call fcn.00560ec0
test eax, eax
jne 0x69b5f0
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x50], 0xffffffff
not eax
mov dword [rsp + 0x48], eax
mov edx, 0x40
mov rcx, rbp
call fcn.005fddf0
mov rdx, qword [rsp + 0x40]
mov r9d, 0x10b
mov rcx, r12
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.00580830
mov rcx, qword [rsp + 0x38]
mov rdx, r14
mov r9d, 0x10c
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.00580830
mov eax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x48]
and eax, dword [rsp + 0x50]
or eax, edx
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x58]
mov rdx, r13
mov rcx, r12
mov r8, rbx
call fcn.005fde50
mov r9d, eax
sub eax, 1
not r9d
and eax, r9d
mov r9d, dword [rsp + 0x34]
sar eax, 0x1f
and r9d, eax
cmp r15d, edi
jge 0x69b967
mov r11, rbx
xor r8d, r8d
nop dword [rax]
movzx ecx, byte [r12 + r11]
mov eax, ecx
xor eax, 1
movzx eax, al
mov edx, eax
sub eax, 1
not edx
and eax, edx
cdq
mov eax, r8d
not eax
or r8d, edx
and eax, edx
mov r10d, eax
not eax
and r10d, r11d
add r11, 1
and eax, esi
mov esi, r10d
or esi, eax
mov eax, ecx
sub ecx, 1
not eax
and ecx, eax
sar ecx, 0x1f
or ecx, r8d
and r9d, ecx
cmp edi, r11d
jg 0x69b630
lea eax, [rsi + 1]
mov r13d, edi
mov edx, dword [rsp + 0x158]
and r8d, r9d
sub r13d, eax
mov eax, dword [rsp + 0x158]
xor edx, r13d
mov dword [rsp + 0x50], r13d
sub eax, r13d
xor eax, r13d
or eax, edx
xor eax, dword [rsp + 0x158]
sar eax, 0x1f
not eax
and eax, r8d
mov esi, eax
mov dword [rsp + 0x34], eax
not eax
mov dword [rsp + 0x48], eax
and esi, 1
mov eax, edi
mov edx, dword [rsp + 0x158]
mov ebx, 1
sub eax, r15d
lea ecx, [rax - 1]
xor edx, ecx
mov eax, ecx
sub eax, dword [rsp + 0x158]
xor eax, dword [rsp + 0x158]
or eax, edx
xor eax, ecx
sar eax, 0x1f
mov edx, eax
not eax
and edx, ecx
and eax, dword [rsp + 0x158]
or edx, eax
mov dword [rsp + 0x64], edx
mov edx, ecx
sub edx, r13d
cmp ecx, 1
jle 0x69b7c5
mov rax, qword [rsp + 0x58]
movsxd r11, dword [rsp + 0x60]
mov dword [rsp + 0x70], esi
mov esi, ecx
mov qword [rsp + 0x68], r14
lea r10, [r12 + rax + 2]
mov eax, 0xfffffffe
mov dword [rsp + 0x74], r13d
mov r13, r11
sub eax, r15d
mov qword [rsp + 0x78], rbp
mov r14, r10
mov ebp, edx
mov r15d, eax
nop dword [rax + rax]
mov eax, ebx
mov edx, edi
and eax, ebp
sub edx, ebx
mov r8d, eax
sub eax, 1
not r8d
and r8d, eax
sar r8d, 0x1f
mov r9d, r8d
not r9d
cmp dword [rsp + 0x60], edx
jge 0x69b7ac
lea r10d, [r15 + rdx]
lea rax, [r12 + r13]
movsxd r11, ebx
movzx r9d, r9b
add r10, r14
or r8d, 0xffffff00
nop dword [rax]
movzx edx, byte [rax + r11]
movzx ecx, byte [rax]
add rax, 1
and edx, r9d
and ecx, r8d
or edx, ecx
mov byte [rax - 1], dl
cmp rax, r10
jne 0x69b790
add ebx, ebx
cmp esi, ebx
jg 0x69b750
mov esi, dword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
mov r13d, dword [rsp + 0x74]
mov rbp, qword [rsp + 0x78]
mov eax, dword [rsp + 0x64]
test eax, eax
jle 0x69b82c
mov rax, qword [rsp + 0x58]
mov r8d, r13d
mov r10d, dword [rsp + 0x64]
xor edx, edx
mov r11d, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x150]
neg r8d
lea r9, [r12 + rax]
mov ebx, r8d
mov eax, r13d
movzx edi, byte [r9 + rdx + 1]
add r8d, 1
xor eax, edx
xor ebx, r13d
or eax, ebx
xor eax, edx
sar eax, 0x1f
and eax, r11d
movzx eax, al
mov ebx, eax
not eax
and ebx, edi
movzx edi, byte [rcx + rdx]
and eax, edi
or eax, ebx
mov byte [rcx + rdx], al
add rdx, 1
cmp rdx, r10
jne 0x69b7f0
mov r8d, 0x79
mov edx, 0x99
mov ecx, 4
mov dword [rsp + 0x20], 0x106
lea r9, str.crypto_rsa_rsa_oaep.c
call fcn.0055dd20
mov ecx, esi
call fcn.005602e0
jmp 0x69b58d
call fcn.00574860
mov qword [rsp + 0x188], rax
jmp 0x69b0b7
mov dword [rsp + 0x20], 0x9f
mov r8d, 0x41
mov edx, 0x99
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
call fcn.0055dd20
lea rbp, [rsp + 0x80]
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x48], 0xffffffff
mov dword [rsp + 0x50], 0xffffffff
mov dword [rsp + 0x34], 0
jmp 0x69b58d
mov rdx, qword [rsp + 0x38]
mov rax, rbp
lea r8, [rsp + r8 + 0x81]
add rdx, 1
nop
movzx ecx, byte [rdx]
xor byte [rax], cl
add rax, 1
add rdx, 1
cmp rax, r8
jne 0x69b8e0
jmp 0x69b3d7
mov dword [rsp + 0x20], 0xa5
jmp 0x69b880
xor eax, eax
nop word cs:[rax + rax]
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
mov rdx, rax
add rax, 1
cmp rdx, r8
jne 0x69b910
jmp 0x69b53e
xor edx, edx
xor eax, eax
jmp 0x69b499
xor edx, edx
jmp 0x69b2f5
mov r8d, 0x79
mov edx, 0x99
mov ecx, 4
mov dword [rsp + 0x20], 0x97
lea r9, str.crypto_rsa_rsa_oaep.c
call fcn.0055dd20
mov eax, 0xffffffff
jmp 0x69b5dc
mov r13d, dword [rsp + 0x64]
mov dword [rsp + 0x48], 0xffffffff
mov dword [rsp + 0x34], 0
sub r13d, 2
mov dword [rsp + 0x50], r13d
jmp 0x69b6c3
mov eax, 0xffffffff
jmp 0x69b5dc