Function at 0x14021f760
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 0x14021ff20
mov rcx, qword [rsp + 0x188]
test rsi, rsi
cmove rsi, qword [rsp + 0x188]
call fcn.140004170
mov edx, dword [rsp + 0x158]
mov r14d, eax
test edx, edx
jle 0x14021ff9b
test ebp, ebp
jle 0x14021ff9b
cmp ebp, r13d
jg 0x14021ff62
lea eax, [rax + 1]
mov dword [rsp + 0x44], eax
add eax, eax
cmp eax, r13d
jg 0x14021ff62
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.14000e4c0
mov r12, rax
movsxd rax, r13d
mov qword [rsp + 0x38], rax
test r12, r12
je 0x14021ffa5
mov r8d, 0xd3
lea rdx, str.crypto_rsa_rsa_oaep.c
movsxd rcx, r13d
call fcn.14000e4c0
mov rdi, rax
test rax, rax
je 0x140220002
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 0x14021f868
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.14021f060
test eax, eax
jne 0x14021fea8
test r14d, r14d
jle 0x14021faaa
lea edx, [r14 - 1]
cmp edx, 0xe
jbe 0x14021ff32
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 0x14021f9a3
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x90], xmm0
cmp edx, 2
je 0x14021f9a3
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
cmp edx, 3
je 0x14021f9a3
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 0x14021faaa
mov ecx, r14d
sub ecx, edx
lea r8d, [rcx - 1]
cmp r8d, 6
jbe 0x14021f9f7
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 0x14021faaa
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 0x14021faaa
lea r8d, [rax + 2]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x14021faaa
lea r8d, [rax + 3]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r14d, r8d
jle 0x14021faaa
lea r8d, [rax + 4]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x14021faaa
lea r8d, [rax + 5]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r14d, r8d
jle 0x14021faaa
lea r8d, [rax + 6]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x14021faaa
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.14021f060
mov ebp, eax
test eax, eax
jne 0x14021fea8
test r15d, r15d
jle 0x14021fbf9
mov eax, dword [rsp + 0x68]
sub eax, 2
cmp eax, 0xe
jbe 0x14021ff59
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 0x14021fb08
mov eax, r15d
and eax, 0xfffffff0
mov edx, eax
cmp eax, r15d
je 0x14021fbf9
mov ecx, dword [rsp + 0x68]
sub ecx, eax
lea r8d, [rcx - 1]
sub ecx, 2
cmp ecx, 6
jbe 0x14021fb82
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 0x14021fbf9
movsxd rax, edx
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 1]
cmp r15d, eax
jle 0x14021fbf9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 2]
cmp eax, r15d
jge 0x14021fbf9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 3]
cmp r15d, eax
jle 0x14021fbf9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 4]
cmp r15d, eax
jle 0x14021fbf9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 5]
cmp r15d, eax
jle 0x14021fbf9
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 6]
cmp r15d, eax
jle 0x14021fbf9
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.14011b470
test eax, eax
je 0x14021fea8
mov rsi, qword [rsp + 0x48]
mov rdx, rbx
mov rcx, r12
mov r8, rsi
call fcn.140018760
mov r9d, eax
sub eax, 1
not r9d
and r9d, eax
sar r9d, 0x1f
and r9d, dword [rsp + 0x40]
cmp r14d, r15d
jge 0x14021ff39
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 0x14021fc78
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 0x14021fdff
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 0x14021fdec
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 0x14021fdd0
add ebx, ebx
cmp edi, ebx
jg 0x14021fd90
mov ebp, dword [rsp + 0x70]
mov esi, dword [rsp + 0x74]
mov r13, qword [rsp + 0x78]
mov eax, dword [rsp + 0x6c]
test eax, eax
jle 0x14021fe6a
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 0x14021fe30
call fcn.140110230
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0x13a
lea rcx, str.crypto_rsa_rsa_oaep.c
call fcn.140110360
xor r8d, r8d
mov edx, 0x79
mov ecx, 4
call fcn.140110450
mov ecx, ebp
call fcn.140110110
jmp 0x14021feba
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.1400186f0
mov rdx, qword [rsp + 0x60]
mov r9d, 0x13f
mov rcx, r12
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.14000e8c0
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov r9d, 0x140
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.14000e8c0
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.1400054f0
mov qword [rsp + 0x188], rax
jmp 0x14021f7a7
xor edx, edx
jmp 0x14021f9b4
mov esi, dword [rsp + 0x68]
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0x40], 0
sub esi, 2
mov dword [rsp + 0x68], esi
jmp 0x14021fd0a
xor edx, edx
xor eax, eax
jmp 0x14021fb36
call fcn.140110230
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xc8
lea rcx, str.crypto_rsa_rsa_oaep.c
call fcn.140110360
xor r8d, r8d
mov edx, 0x79
mov ecx, 4
call fcn.140110450
mov eax, 0xffffffff
jmp 0x14021ff0b
mov eax, 0xffffffff
jmp 0x14021ff0b
call fcn.140110230
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.140110360
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 4
call fcn.140110450
mov dword [rsp + 0x58], 0xffffffff
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x68], 0xffffffff
mov dword [rsp + 0x40], 0
jmp 0x14021feba
call fcn.140110230
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xd5
jmp 0x14021ffb6