Function at 0x14021fc20
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 0x1402203e0
mov rcx, qword [rsp + 0x188]
test rsi, rsi
cmove rsi, qword [rsp + 0x188]
call fcn.140004630
mov edx, dword [rsp + 0x158]
mov r14d, eax
test edx, edx
jle 0x14022045b
test ebp, ebp
jle 0x14022045b
cmp ebp, r13d
jg 0x140220422
lea eax, [rax + 1]
mov dword [rsp + 0x44], eax
add eax, eax
cmp eax, r13d
jg 0x140220422
mov eax, r13d
mov r8d, 0xcd
lea rdx, str.crypto_rsa_rsa_oaep.c
sub eax, r14d
lea r15d, [rax - 1]
mov dword [rsp + 0x68], eax
movsxd rax, r15d
mov rcx, rax
mov qword [rsp + 0x60], rax
call fcn.14000e980
mov r12, rax
movsxd rax, r13d
mov qword [rsp + 0x38], rax
test r12, r12
je 0x140220465
mov r8d, 0xd3
lea rdx, str.crypto_rsa_rsa_oaep.c
movsxd rcx, r13d
call fcn.14000e980
mov rdi, rax
test rax, rax
je 0x1402204c2
movsxd rcx, ebp
movsxd rax, r13d
add rcx, rbx
lea rbx, [rdi + rax]
mov rdx, rbx
nop dword [rax]
mov r8d, ebp
lea eax, [rbp - 1]
sub rdx, 1
not r8d
and eax, r8d
sar eax, 0x1f
mov r8d, eax
add eax, 1
sub rcx, rax
sub ebp, eax
mov eax, ebx
not r8d
sub eax, edx
and r8b, byte [rcx]
mov byte [rdx], r8b
cmp r13d, eax
jg 0x14021fd28
lea eax, [r13 - 1]
test r13d, r13d
movzx r8d, r8b
mov qword [rsp + 0x20], rsi
mov rbp, rax
mov rdx, 0xffffffffffffffff
mov r9d, r15d
not rbp
cmovle rbp, rdx
xor edx, edx
neg rax
test r13d, r13d
lea r13, [rsp + 0x80]
lea rcx, [rbx + rbp]
mov qword [rsp + 0x50], rcx
mov rcx, rdx
cmovg rcx, rax
lea eax, [r8 - 1]
not r8d
and eax, r8d
cdq
movsxd rax, r14d
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x48], rax
add rax, rcx
mov rcx, r13
add rbx, rax
mov dword [rsp + 0x40], edx
mov edx, r14d
mov r8, rbx
call fcn.14021f520
test eax, eax
jne 0x140220368
test r14d, r14d
jle 0x14021ff6a
lea edx, [r14 - 1]
cmp edx, 0xe
jbe 0x1402203f2
mov rax, qword [rsp + 0x38]
mov edx, r14d
shr edx, 4
lea rax, [rbp + rax + 1]
add rax, rdi
movdqu xmm0, xmmword [rax]
pxor xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x80], xmm0
cmp edx, 1
je 0x14021fe63
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x90], xmm0
cmp edx, 2
je 0x14021fe63
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
cmp edx, 3
je 0x14021fe63
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
mov edx, r14d
and edx, 0xfffffff0
mov eax, edx
cmp edx, r14d
je 0x14021ff6a
mov ecx, r14d
sub ecx, edx
lea r8d, [rcx - 1]
cmp r8d, 6
jbe 0x14021feb7
lea r8, [r13 + rdx]
mov r10, qword [rsp + 0x38]
add rdx, rdi
add rdx, rbp
movq xmm0, qword [r8]
movq xmm1, qword [r10 + rdx + 1]
mov edx, ecx
and edx, 0xfffffff8
pxor xmm0, xmm1
add eax, edx
movq qword [r8], xmm0
cmp edx, ecx
je 0x14021ff6a
mov r11, qword [rsp + 0x50]
lea r8d, [rax + 1]
movsxd rdx, eax
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r14d, r8d
jle 0x14021ff6a
lea r8d, [rax + 2]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x14021ff6a
lea r8d, [rax + 3]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r14d, r8d
jle 0x14021ff6a
lea r8d, [rax + 4]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x14021ff6a
lea r8d, [rax + 5]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r14d, r8d
jle 0x14021ff6a
lea r8d, [rax + 6]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x14021ff6a
add eax, 7
cdqe
movzx eax, byte [r11 + rax]
xor byte [rsp + rdx + 0x80], al
mov qword [rsp + 0x20], rsi
mov r9d, r14d
mov r8, r13
mov edx, r15d
mov rcx, r12
call fcn.14021f520
mov ebp, eax
test eax, eax
jne 0x140220368
test r15d, r15d
jle 0x1402200b9
mov eax, dword [rsp + 0x68]
sub eax, 2
cmp eax, 0xe
jbe 0x140220419
mov edx, r15d
mov rcx, qword [rsp + 0x58]
add rcx, qword [rsp + 0x38]
xor eax, eax
add rcx, qword [rsp + 0x48]
shr edx, 4
add rcx, rdi
shl rdx, 4
nop dword [rax]
movdqu xmm2, xmmword [r12 + rax]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm2
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x14021ffc8
mov eax, r15d
and eax, 0xfffffff0
mov edx, eax
cmp eax, r15d
je 0x1402200b9
mov ecx, dword [rsp + 0x68]
sub ecx, eax
lea r8d, [rcx - 1]
sub ecx, 2
cmp ecx, 6
jbe 0x140220042
mov r9d, eax
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x38]
lea rcx, [r12 + r9]
add rax, rdi
movq xmm1, qword [rcx]
add rax, r9
add rax, qword [rsp + 0x58]
movq xmm0, qword [rax + rsi]
mov eax, r8d
and eax, 0xfffffff8
pxor xmm0, xmm1
add edx, eax
movq qword [rcx], xmm0
cmp eax, r8d
je 0x1402200b9
movsxd rax, edx
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 1]
cmp r15d, eax
jle 0x1402200b9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 2]
cmp eax, r15d
jge 0x1402200b9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 3]
cmp r15d, eax
jle 0x1402200b9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 4]
cmp r15d, eax
jle 0x1402200b9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 5]
cmp r15d, eax
jle 0x1402200b9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 6]
cmp r15d, eax
jle 0x1402200b9
cdqe
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
mov rax, qword [rsp + 0x188]
lea rbx, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x28], 0
movsxd rdx, dword [rsp + 0x180]
mov rcx, qword [rsp + 0x178]
mov r8, rbx
mov qword [rsp + 0x20], rax
call fcn.14011b930
test eax, eax
je 0x140220368
mov rsi, qword [rsp + 0x48]
mov rdx, rbx
mov rcx, r12
mov r8, rsi
call fcn.140018c20
mov r9d, eax
sub eax, 1
not r9d
and r9d, eax
sar r9d, 0x1f
and r9d, dword [rsp + 0x40]
cmp r14d, r15d
jge 0x1402203f9
mov r11, rsi
xor r8d, r8d
nop dword [rax]
movzx edx, byte [r12 + r11]
mov eax, edx
xor eax, 1
movzx eax, al
mov ecx, eax
sub eax, 1
not ecx
and ecx, eax
mov eax, r8d
sar ecx, 0x1f
not eax
and eax, ecx
or r8d, ecx
mov r10d, eax
not eax
and r10d, r11d
and eax, ebp
add r11, 1
or r10d, eax
mov eax, edx
sub edx, 1
not eax
mov ebp, r10d
and eax, edx
sar eax, 0x1f
or eax, r8d
and r9d, eax
cmp r15d, r11d
jg 0x140220138
lea eax, [r10 + 1]
mov esi, r15d
mov edx, dword [rsp + 0x158]
and r8d, r9d
sub esi, eax
mov eax, dword [rsp + 0x158]
xor edx, esi
mov dword [rsp + 0x68], esi
sub eax, esi
xor eax, esi
or eax, edx
xor eax, dword [rsp + 0x158]
sar eax, 0x1f
not eax
and eax, r8d
mov ebp, eax
mov dword [rsp + 0x40], eax
not eax
mov dword [rsp + 0x58], eax
and ebp, 1
mov edi, r15d
mov edx, dword [rsp + 0x158]
mov ebx, 1
sub edi, r14d
sub edi, 1
xor edx, edi
mov eax, edi
sub eax, dword [rsp + 0x158]
mov ecx, edi
xor eax, dword [rsp + 0x158]
sub ecx, esi
or eax, edx
xor eax, edi
sar eax, 0x1f
mov edx, eax
not eax
and edx, edi
and eax, dword [rsp + 0x158]
or edx, eax
mov dword [rsp + 0x6c], edx
cmp edi, 1
jle 0x1402202bf
mov rax, qword [rsp + 0x48]
movsxd rdx, dword [rsp + 0x44]
mov dword [rsp + 0x70], ebp
mov dword [rsp + 0x74], esi
mov esi, ecx
lea r11, [r12 + rax + 2]
mov eax, 0xfffffffe
mov qword [rsp + 0x78], r13
mov rbp, rdx
sub eax, r14d
mov r13, r11
mov r14d, eax
nop word [rax + rax]
mov eax, ebx
mov edx, r15d
and eax, esi
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 + 0x44], edx
jge 0x1402202ac
lea r10d, [r14 + rdx]
lea rax, [r12 + rbp]
movsxd r11, ebx
movzx r9d, r9b
add r10, r13
or r8d, 0xffffff00
nop
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 0x140220290
add ebx, ebx
cmp edi, ebx
jg 0x140220250
mov ebp, dword [rsp + 0x70]
mov esi, dword [rsp + 0x74]
mov r13, qword [rsp + 0x78]
mov eax, dword [rsp + 0x6c]
test eax, eax
jle 0x14022032a
mov rax, qword [rsp + 0x48]
mov r8d, esi
mov r10d, dword [rsp + 0x6c]
xor edx, edx
mov r11d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x150]
neg r8d
lea r9, [r12 + rax]
nop word [rax + rax]
mov eax, esi
mov ebx, esi
xor ebx, r8d
xor eax, edx
add r8d, 1
or eax, ebx
movzx ebx, byte [r9 + rdx + 1]
xor eax, edx
sar eax, 0x1f
and eax, r11d
movzx eax, al
mov edi, 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 r10, rdx
jne 0x1402202f0
call fcn.1401106f0
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0x13a
lea rcx, str.crypto_rsa_rsa_oaep.c
call fcn.140110820
xor r8d, r8d
mov edx, 0x79
mov ecx, 4
call fcn.140110910
mov ecx, ebp
call fcn.1401105d0
jmp 0x14022037a
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x68], 0xffffffff
not eax
mov dword [rsp + 0x58], eax
mov edx, 0x40
mov rcx, r13
call fcn.140018bb0
mov rdx, qword [rsp + 0x60]
mov r9d, 0x13f
mov rcx, r12
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.14000ed80
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov r9d, 0x140
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.14000ed80
mov eax, dword [rsp + 0x40]
mov edx, dword [rsp + 0x58]
and eax, dword [rsp + 0x68]
or eax, edx
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400059b0
mov qword [rsp + 0x188], rax
jmp 0x14021fc67
xor edx, edx
jmp 0x14021fe74
mov esi, dword [rsp + 0x68]
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0x40], 0
sub esi, 2
mov dword [rsp + 0x68], esi
jmp 0x1402201ca
xor edx, edx
xor eax, eax
jmp 0x14021fff6
call fcn.1401106f0
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xc8
lea rcx, str.crypto_rsa_rsa_oaep.c
call fcn.140110820
xor r8d, r8d
mov edx, 0x79
mov ecx, 4
call fcn.140110910
mov eax, 0xffffffff
jmp 0x1402203cb
mov eax, 0xffffffff
jmp 0x1402203cb
call fcn.1401106f0
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xcf
lea rcx, str.crypto_rsa_rsa_oaep.c
lea r13, [rsp + 0x80]
call fcn.140110820
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 4
call fcn.140110910
mov dword [rsp + 0x58], 0xffffffff
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x68], 0xffffffff
mov dword [rsp + 0x40], 0
jmp 0x14022037a
call fcn.1401106f0
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xd5
jmp 0x140220476