Function at 0x64f090
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x120]
mov qword [rsp + 0xe0], rcx
mov rdi, rdx
mov r13, r9
lea ebx, [r8 - 1]
test r15, r15
je 0x64f518
test rbp, rbp
mov rcx, r15
cmove rbp, r15
call sym.EVP_MD_get_size
mov esi, eax
test eax, eax
jle 0x64f560
lea r11d, [rax + rax]
mov r10d, ebx
sub r10d, r11d
cmp r10d, dword [rsp + 0x100]
jle 0x64f528
cmp r11d, ebx
jge 0x64f490
movsxd r14, eax
mov byte [rdi], 0
xor r9d, r9d
movsxd rdx, dword [rsp + 0x110]
lea rax, [r14 + 1]
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x28], 0
lea r12, [rdi + rax]
mov r8, r12
mov dword [rsp + 0x44], r10d
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x48], rax
call sym.EVP_Digest
mov r11d, dword [rsp + 0x38]
mov r10d, dword [rsp + 0x44]
test eax, eax
je 0x64f4e0
mov r9d, ebx
xor edx, edx
lea rcx, [r12 + r14]
mov dword [rsp + 0x44], r10d
sub r9d, dword [rsp + 0x100]
lea r15, [rdi + 1]
sub r9d, r11d
lea r8d, [r9 - 1]
mov dword [rsp + 0x38], r9d
movsxd r8, r8d
call sym.memset
mov r9d, dword [rsp + 0x38]
movsxd rcx, ebx
mov rdx, r13
movsxd rax, dword [rsp + 0x100]
mov r8d, dword [rsp + 0x100]
add r9d, esi
movsxd r9, r9d
sub rcx, rax
mov byte [r12 + r9 - 1], 1
sub rcx, r14
add rcx, r12
call sym.memcpy
xor r9d, r9d
mov r8, r14
mov rdx, r15
mov rcx, qword [rsp + 0xe0]
call sym.RAND_bytes_ex
test eax, eax
jle 0x64f4e0
mov r10d, dword [rsp + 0x44]
mov r8d, 0x72
lea rdx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
lea ebx, [r10 + rsi]
movsxd r13, ebx
mov rcx, r13
call sym.CRYPTO_malloc
mov r14, rax
test rax, rax
je 0x64f5bf
mov qword [rsp + 0x20], rbp
mov r9d, esi
mov r8, r15
mov edx, ebx
mov rcx, rax
call sym.PKCS1_MGF1
test eax, eax
js 0x64f5a0
test ebx, ebx
jle 0x64f32f
lea ecx, [rbx - 1]
cmp ecx, 0xe
jbe 0x64f5ad
mov edx, ebx
xor eax, eax
shr edx, 4
shl rdx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [r12 + rax]
movdqu xmm2, xmmword [r14 + rax]
pxor xmm0, xmm2
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x64f250
mov eax, ebx
and eax, 0xfffffff0
mov edx, eax
cmp ebx, eax
je 0x64f32f
mov r8d, ebx
sub ecx, eax
sub r8d, eax
cmp ecx, 6
jbe 0x64f2b6
mov ecx, eax
mov rax, qword [rsp + 0x48]
movq xmm0, qword [r14 + rcx]
add rax, rcx
add rax, rdi
movq xmm1, qword [rax]
pxor xmm0, xmm1
movq qword [rax], xmm0
mov eax, r8d
and eax, 0xfffffff8
add edx, eax
cmp r8d, eax
je 0x64f32f
movsxd rax, edx
movzx ecx, byte [r14 + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 1]
cmp ebx, eax
jle 0x64f32f
cdqe
movzx ecx, byte [r14 + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 2]
cmp ebx, eax
jle 0x64f32f
cdqe
movzx ecx, byte [r14 + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 3]
cmp ebx, eax
jle 0x64f32f
cdqe
movzx ecx, byte [r14 + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 4]
cmp ebx, eax
jle 0x64f32f
cdqe
movzx ecx, byte [r14 + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 5]
cmp ebx, eax
jle 0x64f32f
cdqe
add edx, 6
movzx ecx, byte [r14 + rax]
xor byte [r12 + rax], cl
cmp ebx, edx
jle 0x64f32f
movsxd rdx, edx
movzx eax, byte [r14 + rdx]
xor byte [r12 + rdx], al
mov qword [rsp + 0x20], rbp
lea rcx, [rsp + 0x50]
mov r8, r12
mov r9d, ebx
mov edx, esi
mov qword [rsp + 0x38], rcx
xor r12d, r12d
call sym.PKCS1_MGF1
mov rcx, qword [rsp + 0x38]
test eax, eax
js 0x64f4ee
lea r8d, [rsi - 1]
cmp r8d, 0xe
jbe 0x64f5b6
movdqu xmm0, xmmword [rdi + 1]
mov eax, esi
pxor xmm0, xmmword [rsp + 0x50]
shr eax, 4
movups xmmword [rdi + 1], xmm0
cmp eax, 1
je 0x64f3bc
movdqu xmm0, xmmword [rdi + 0x11]
pxor xmm0, xmmword [rsp + 0x60]
movups xmmword [rdi + 0x11], xmm0
cmp eax, 2
je 0x64f3bc
movdqu xmm0, xmmword [rdi + 0x21]
pxor xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi + 0x21], xmm0
cmp eax, 3
je 0x64f3bc
movdqu xmm0, xmmword [rdi + 0x31]
pxor xmm0, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x31], xmm0
mov edx, esi
and edx, 0xfffffff0
mov eax, edx
cmp edx, esi
je 0x64f487
mov r9d, esi
sub r8d, edx
sub r9d, edx
cmp r8d, 6
jbe 0x64f404
lea r8d, [rdx + 1]
movq xmm1, qword [rsp + rdx + 0x50]
mov edx, r9d
add rdi, r8
and edx, 0xfffffff8
movq xmm0, qword [rdi]
add eax, edx
pxor xmm0, xmm1
movq qword [rdi], xmm0
cmp r9d, edx
je 0x64f487
movsxd rdx, eax
movzx r8d, byte [rsp + rdx + 0x50]
xor byte [r15 + rdx], r8b
lea edx, [rax + 1]
cmp esi, edx
jle 0x64f487
movsxd rdx, edx
movzx r8d, byte [rsp + rdx + 0x50]
xor byte [r15 + rdx], r8b
lea edx, [rax + 2]
cmp esi, edx
jle 0x64f487
movsxd rdx, edx
movzx r8d, byte [rsp + rdx + 0x50]
xor byte [r15 + rdx], r8b
lea edx, [rax + 3]
cmp esi, edx
jle 0x64f487
movsxd rdx, edx
movzx r8d, byte [rsp + rdx + 0x50]
xor byte [r15 + rdx], r8b
lea edx, [rax + 4]
cmp esi, edx
jle 0x64f487
movsxd rdx, edx
movzx r8d, byte [rsp + rdx + 0x50]
xor byte [r15 + rdx], r8b
lea edx, [rax + 5]
cmp esi, edx
jle 0x64f487
movsxd rdx, edx
add eax, 6
movzx r8d, byte [rsp + rdx + 0x50]
xor byte [r15 + rdx], r8b
cmp esi, eax
jle 0x64f487
cdqe
movzx edx, byte [rsp + rax + 0x50]
xor byte [r15 + rax], dl
mov r12d, 1
jmp 0x64f4ee
call sym.ERR_new
lea r8, str.ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
mov edx, 0x5c
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x78
mov ecx, 4
call sym.ERR_set_error
mov eax, r12d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r13d, r13d
xor r14d, r14d
lea rcx, [rsp + 0x50]
xor r12d, r12d
mov edx, 0x40
call sym.OPENSSL_cleanse
mov r9d, 0x89
mov rdx, r13
mov rcx, r14
lea r8, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.CRYPTO_clear_free
jmp 0x64f4c2
call sym.EVP_sha1
mov r15, rax
jmp 0x64f0ce
call sym.ERR_new
lea r8, str.ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
mov edx, 0x57
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x6e
mov ecx, 4
call sym.ERR_set_error
jmp 0x64f4c2
call sym.ERR_new
lea r8, str.ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
mov edx, 0x51
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xb5
mov ecx, 4
call sym.ERR_set_error
jmp 0x64f4c2
xor r12d, r12d
lea rcx, [rsp + 0x50]
jmp 0x64f4ee
xor eax, eax
xor edx, edx
jmp 0x64f27d
xor edx, edx
xor eax, eax
jmp 0x64f3cb
call sym.ERR_new
lea r8, str.ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
mov edx, 0x74
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_crypto_rsa_rsa_oaep.c
call sym.ERR_set_debug
mov ecx, 4
xor r8d, r8d
mov edx, 0xc0100
call sym.ERR_set_error
lea rcx, [rsp + 0x50]
jmp 0x64f4ee