Function at 0x64f600
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
cmp qword [rsp + 0x188], 0
mov r14d, dword [rsp + 0x170]
mov qword [rsp + 0x150], rcx
mov rbx, r8
mov ebp, r9d
mov dword [rsp + 0x158], edx
je 0x64fdc0
mov rax, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x188]
cmp qword [rsp + 0x190], 0
cmove rax, qword [rsp + 0x188]
mov qword [rsp + 0x190], rax
call sym.EVP_MD_get_size
mov edx, dword [rsp + 0x158]
mov r15d, eax
test edx, edx
jle 0x64fe3e
test ebp, ebp
jle 0x64fe3e
cmp ebp, r14d
jg 0x64fe05
lea eax, [rax + 1]
mov dword [rsp + 0x58], eax
add eax, eax
cmp eax, r14d
jg 0x64fe05
mov eax, r14d
mov r8d, 0xcd
lea rdx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
sub eax, r15d
lea esi, [rax - 1]
mov dword [rsp + 0x5c], eax
movsxd rax, esi
mov rcx, rax
mov qword [rsp + 0x60], rax
call sym.CRYPTO_malloc
mov r12, rax
movsxd rax, r14d
mov qword [rsp + 0x38], rax
test r12, r12
je 0x64fe48
mov r8d, 0xd3
lea rdx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
movsxd rcx, r14d
call sym.CRYPTO_malloc
mov rdi, rax
test rax, rax
je 0x64fea1
movsxd r8, ebp
movsxd rax, r14d
add r8, rbx
lea rbx, [rdi + rax]
mov rdx, rbx
nop word [rax + 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 r14d, eax
jg 0x64f718
lea r13d, [r14 - 1]
test r14d, r14d
movzx ecx, cl
mov edx, r15d
mov rbp, r13
mov rax, 0xffffffffffffffff
mov r9d, esi
not rbp
cmovle rbp, rax
neg r13
test r14d, r14d
lea r14, [rsp + 0x80]
lea rax, [rbx + rbp]
mov qword [rsp + 0x50], rax
mov eax, 0
cmovle r13, rax
lea eax, [rcx - 1]
not ecx
and ecx, eax
movsxd rax, r15d
mov qword [rsp + 0x48], rax
add rax, r13
sar ecx, 0x1f
add rbx, rax
mov rax, qword [rsp + 0x190]
mov dword [rsp + 0x44], ecx
mov rcx, r14
mov r8, rbx
mov qword [rsp + 0x20], rax
call sym.PKCS1_MGF1
mov edx, eax
test eax, eax
jne 0x64fd48
test r15d, r15d
jle 0x64f955
lea r8d, [r15 - 1]
cmp r8d, 0xe
jbe 0x64fdd2
mov rax, qword [rsp + 0x38]
mov edx, r15d
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 0x64f851
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x90], xmm0
cmp edx, 2
je 0x64f851
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
cmp edx, 3
je 0x64f851
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
mov eax, r15d
and eax, 0xfffffff0
mov edx, eax
cmp eax, r15d
je 0x64f955
mov ecx, r15d
sub r8d, eax
sub ecx, eax
cmp r8d, 6
jbe 0x64f8a2
lea r8, [r14 + rax]
add rax, rdi
add rbp, rax
mov rax, qword [rsp + 0x38]
movq xmm0, qword [r8]
movq xmm1, qword [rax + rbp + 1]
mov eax, ecx
and eax, 0xfffffff8
pxor xmm0, xmm1
add edx, eax
movq qword [r8], xmm0
cmp eax, ecx
je 0x64f955
mov r11, qword [rsp + 0x50]
lea r8d, [rdx + 1]
movsxd rax, edx
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rax + 0x80], r9b
cmp r15d, r8d
jle 0x64f955
lea r8d, [rdx + 2]
movsxd rax, r8d
movzx r9d, byte [r11 + rax]
xor byte [rsp + rcx + 0x80], r9b
cmp r15d, r8d
jle 0x64f955
lea r8d, [rdx + 3]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rax + 0x80], r9b
cmp r15d, r8d
jle 0x64f955
lea r8d, [rdx + 4]
movsxd rax, r8d
movzx r9d, byte [r11 + rax]
xor byte [rsp + rcx + 0x80], r9b
cmp r15d, r8d
jle 0x64f955
lea r8d, [rdx + 5]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rax + 0x80], r9b
cmp r15d, r8d
jle 0x64f955
lea eax, [rdx + 6]
movsxd r8, eax
movzx r9d, byte [r11 + r8]
xor byte [rsp + rcx + 0x80], r9b
cmp r15d, eax
jle 0x64f955
lea eax, [rdx + 7]
cdqe
movzx eax, byte [r11 + rax]
xor byte [rsp + r8 + 0x80], al
mov rax, qword [rsp + 0x190]
mov r9d, r15d
mov r8, r14
mov edx, esi
mov rcx, r12
mov qword [rsp + 0x20], rax
call sym.PKCS1_MGF1
mov ebp, eax
test eax, eax
jne 0x64fd48
test esi, esi
jle 0x64fa97
mov eax, dword [rsp + 0x5c]
lea ecx, [rax - 2]
cmp ecx, 0xe
jbe 0x64fdfc
mov rax, qword [rsp + 0x38]
mov edx, esi
shr edx, 4
lea r8, [r13 + rax]
add r8, qword [rsp + 0x48]
shl rdx, 4
xor eax, eax
add r8, rdi
nop dword [rax]
movdqu xmm2, xmmword [r12 + rax]
movdqu xmm0, xmmword [r8 + rax]
pxor xmm0, xmm2
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x64f9b8
mov eax, esi
and eax, 0xfffffff0
mov edx, eax
cmp eax, esi
je 0x64fa97
mov r8d, esi
sub ecx, eax
sub r8d, eax
cmp ecx, 6
jbe 0x64fa26
add rdi, qword [rsp + 0x48]
lea rcx, [r12 + rax]
add rdi, rax
mov rax, qword [rsp + 0x38]
movq xmm1, qword [rcx]
add r13, rdi
movq xmm0, qword [r13 + rax]
mov eax, r8d
and eax, 0xfffffff8
pxor xmm0, xmm1
add edx, eax
movq qword [rcx], xmm0
cmp eax, r8d
je 0x64fa97
movsxd rax, edx
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 1]
cmp esi, eax
jle 0x64fa97
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 2]
cmp eax, esi
jge 0x64fa97
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 3]
cmp esi, eax
jle 0x64fa97
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 4]
cmp esi, eax
jle 0x64fa97
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 5]
cmp esi, eax
jle 0x64fa97
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 6]
cmp esi, eax
jle 0x64fa97
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 sym.EVP_Digest
test eax, eax
je 0x64fd48
mov rdi, qword [rsp + 0x48]
mov rdx, r13
mov rcx, r12
mov r8, rdi
call sym.CRYPTO_memcmp
mov r9d, eax
sub eax, 1
not r9d
and eax, r9d
mov r9d, dword [rsp + 0x44]
sar eax, 0x1f
and r9d, eax
cmp r15d, esi
jge 0x64fdd9
mov r11, rdi
xor r8d, r8d
nop dword [rax]
movzx ecx, byte [r12 + r11]
mov edx, ecx
xor edx, 1
movzx edx, dl
mov eax, edx
sub edx, 1
not eax
and edx, eax
mov eax, r8d
sar edx, 0x1f
not eax
and eax, edx
or r8d, edx
mov r10d, eax
not eax
and r10d, r11d
and eax, ebp
add r11, 1
or r10d, eax
mov eax, ecx
sub ecx, 1
not eax
mov ebp, r10d
and ecx, eax
sar ecx, 0x1f
or ecx, r8d
and r9d, ecx
cmp esi, r11d
jg 0x64fb18
lea eax, [r10 + 1]
mov edi, esi
and r8d, r9d
sub edi, eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x6c], edi
mov r13d, edi
sub eax, edi
xor eax, edi
xor edi, dword [rsp + 0x158]
or eax, edi
xor eax, dword [rsp + 0x158]
sar eax, 0x1f
not eax
and eax, r8d
mov ebp, eax
mov dword [rsp + 0x44], eax
not eax
mov dword [rsp + 0x5c], eax
and ebp, 1
mov edi, esi
mov edx, dword [rsp + 0x158]
mov ebx, 1
sub edi, r15d
sub edi, 1
xor edx, edi
mov eax, edi
sub eax, dword [rsp + 0x158]
xor eax, dword [rsp + 0x158]
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 + 0x68], edx
mov edx, edi
sub edx, dword [rsp + 0x6c]
cmp edi, 1
jle 0x64fca0
mov rax, qword [rsp + 0x48]
movsxd rcx, dword [rsp + 0x58]
mov dword [rsp + 0x70], ebp
mov ebp, edx
mov dword [rsp + 0x74], r13d
lea r10, [r12 + rax + 2]
mov eax, 0xfffffffe
mov qword [rsp + 0x78], r14
mov r13, rcx
sub eax, r15d
mov r14, r10
mov r15d, eax
nop dword [rax]
mov eax, ebx
mov edx, esi
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 + 0x58], edx
jge 0x64fc8c
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 0x64fc70
add ebx, ebx
cmp edi, ebx
jg 0x64fc30
mov ebp, dword [rsp + 0x70]
mov r13d, dword [rsp + 0x74]
mov r14, qword [rsp + 0x78]
mov eax, dword [rsp + 0x68]
test eax, eax
jle 0x64fd0b
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x48]
xor edx, edx
mov r10d, dword [rsp + 0x68]
mov ebx, dword [rsp + 0x44]
mov r8d, ecx
mov r11, qword [rsp + 0x150]
lea r9, [r12 + rax]
neg r8d
nop
mov esi, r8d
mov eax, ecx
movzx edi, byte [r9 + rdx + 1]
add r8d, 1
xor eax, edx
xor esi, ecx
or eax, esi
xor eax, edx
sar eax, 0x1f
and eax, ebx
movzx eax, al
mov esi, eax
not eax
and esi, edi
movzx edi, byte [r11 + rdx]
and eax, edi
or eax, esi
mov byte [r11 + rdx], al
add rdx, 1
cmp r10, rdx
jne 0x64fcd0
call sym.ERR_new
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0x13a
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x79
mov ecx, 4
call sym.ERR_set_error
mov ecx, ebp
call sym.err_clear_last_constant_time
jmp 0x64fd58
mov eax, dword [rsp + 0x44]
mov r13d, 0xffffffff
not eax
mov dword [rsp + 0x5c], eax
mov edx, 0x40
mov rcx, r14
call sym.OPENSSL_cleanse
mov rdx, qword [rsp + 0x60]
mov r9d, 0x13f
mov rcx, r12
lea r8, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.CRYPTO_clear_free
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov r9d, 0x140
lea r8, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.CRYPTO_clear_free
mov eax, dword [rsp + 0x44]
mov edx, dword [rsp + 0x5c]
and eax, r13d
or eax, edx
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sym.EVP_sha1
mov qword [rsp + 0x188], rax
jmp 0x64f63f
xor eax, eax
jmp 0x64f862
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x5c], 0xffffffff
sub eax, 2
mov dword [rsp + 0x6c], eax
mov r13d, eax
jmp 0x64fbaa
xor edx, edx
xor eax, eax
jmp 0x64f9e5
call sym.ERR_new
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xc8
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x79
mov ecx, 4
call sym.ERR_set_error
mov eax, 0xffffffff
jmp 0x64fda8
mov eax, 0xffffffff
jmp 0x64fda8
call sym.ERR_new
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xcf
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
or r13d, 0xffffffff
lea r14, [rsp + 0x80]
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 4
call sym.ERR_set_error
mov dword [rsp + 0x5c], 0xffffffff
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x44], 0
jmp 0x64fd58
call sym.ERR_new
lea r8, str.RSA_padding_check_PKCS1_OAEP_mgf1
mov edx, 0xd5
jmp 0x64fe59