Function at 0x6a3fc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
mov r14d, dword [rsp + 0x1a0]
mov rbp, qword [rsp + 0x1c0]
cmp qword [rsp + 0x1b8], 0
mov qword [rsp + 0x180], rcx
mov rsi, r8
mov r13d, r9d
mov dword [rsp + 0x188], edx
je 0x6a49e0
mov rcx, qword [rsp + 0x1b8]
test rbp, rbp
cmove rbp, qword [rsp + 0x1b8]
call sym.EVP_MD_size
mov edx, dword [rsp + 0x188]
mov ebx, eax
test edx, edx
jle 0x6a4a99
test r13d, r13d
jle 0x6a4a99
cmp r13d, r14d
jg 0x6a4a4b
lea eax, [rax + 1]
mov dword [rsp + 0x44], eax
add eax, eax
cmp eax, r14d
jg 0x6a4a4b
mov eax, r14d
mov r8d, 0x9d
lea rdx, str.crypto_rsa_rsa_oaep.c
sub eax, ebx
lea r15d, [rax - 1]
mov dword [rsp + 0x58], eax
movsxd rax, r15d
mov rcx, rax
mov qword [rsp + 0x48], rax
call sym.CRYPTO_malloc
mov r12, rax
movsxd rax, r14d
mov qword [rsp + 0x38], rax
test r12, r12
je 0x6a4980
mov r8d, 0xa3
lea rdx, str.crypto_rsa_rsa_oaep.c
movsxd rcx, r14d
call sym.CRYPTO_malloc
mov rdi, rax
test rax, rax
je 0x6a4a18
movsxd rax, r13d
add rsi, rax
movsxd rax, r14d
lea rcx, [rdi + rax]
mov rdx, rcx
nop dword [rax]
mov eax, r13d
lea r8d, [r13 - 1]
sub rdx, 1
not eax
and eax, r8d
sar eax, 0x1f
mov r8d, eax
add eax, 1
sub rsi, rax
sub r13d, eax
mov eax, ecx
not r8d
sub eax, edx
and r8b, byte [rsi]
mov byte [rdx], r8b
cmp r14d, eax
jg 0x6a40c8
lea esi, [r14 - 1]
test r14d, r14d
movzx r8d, r8b
mov qword [rsp + 0x20], rbp
mov rax, rsi
mov rdx, 0xffffffffffffffff
mov r9d, r15d
not rax
cmovle rax, rdx
neg rsi
mov edx, ebx
add rax, rcx
test r14d, r14d
mov qword [rsp + 0x50], rax
mov eax, 0
cmovle rsi, rax
lea eax, [r8 - 1]
not r8d
and r8d, eax
movsxd rax, ebx
lea r14, [rcx + rsi]
sar r8d, 0x1f
mov qword [rsp + 0x60], rax
lea r13, [r14 + rax]
lea rax, [rsp + 0xb0]
mov dword [rsp + 0x40], r8d
mov rcx, rax
mov r8, r13
mov qword [rsp + 0x30], rax
call sym.PKCS1_MGF1
test eax, eax
jne 0x6a45f1
test ebx, ebx
jle 0x6a43a0
mov rdx, qword [rsp + 0x38]
lea ecx, [rbx - 1]
lea rax, [rdx + rsi]
lea rdx, [rdx + rsi + 0x10]
add rax, rdi
add rdx, rdi
cmp qword [rsp + 0x30], rdx
lea rdx, [rsp + 0xc0]
setae r8b
cmp rax, rdx
setae dl
or r8b, dl
je 0x6a49f2
cmp ecx, 0xe
jbe 0x6a49f2
movdqu xmm0, xmmword [rax]
mov edx, ebx
pxor xmm0, xmmword [rsp + 0xb0]
shr edx, 4
movups xmmword [rsp + 0xb0], xmm0
cmp edx, 1
je 0x6a422c
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0xc0], xmm0
cmp edx, 2
je 0x6a422c
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0xd0], xmm0
cmp edx, 3
je 0x6a422c
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0xe0], xmm0
mov eax, ebx
and eax, 0xfffffff0
test bl, 0xf
je 0x6a43a0
movsxd rdx, eax
mov ecx, eax
movzx ecx, byte [r14 + rcx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 1]
cmp edx, ebx
jge 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 2]
cmp edx, ebx
jge 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 3]
cmp edx, ebx
jge 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 4]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 5]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 6]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 7]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 8]
cmp edx, ebx
jge 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 9]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 0xa]
cmp edx, ebx
jge 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 0xb]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 0xc]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
lea edx, [rax + 0xd]
cmp ebx, edx
jle 0x6a43a0
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [r14 + rdx]
xor byte [rsp + rdx + 0xb0], cl
cmp ebx, eax
jle 0x6a43a0
cdqe
movzx edx, byte [r14 + rax]
xor byte [rsp + rax + 0xb0], dl
nop
mov qword [rsp + 0x20], rbp
mov r8, qword [rsp + 0x30]
mov r9d, ebx
mov edx, r15d
mov rcx, r12
call sym.PKCS1_MGF1
mov r14d, eax
test eax, eax
jne 0x6a45f1
test r15d, r15d
jle 0x6a45b0
mov rcx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x60]
mov eax, dword [rsp + 0x58]
lea rdx, [rcx + rsi]
lea rcx, [rcx + rsi + 0x10]
add rcx, r11
add rdx, r11
sub eax, 2
add rdx, rdi
add rdi, rcx
lea rcx, [r12 + 0x10]
cmp r12, rdi
setae r8b
cmp rdx, rcx
setae cl
or r8b, cl
je 0x6a4a25
cmp eax, 0xe
jbe 0x6a4a25
mov ecx, r15d
xor eax, eax
shr ecx, 4
shl rcx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [rdx + rax]
movdqu xmm1, xmmword [r12 + rax]
pxor xmm0, xmm1
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rax, rcx
jne 0x6a4428
mov eax, r15d
and eax, 0xfffffff0
test r15b, 0xf
je 0x6a45b0
movsxd rdx, eax
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 1]
cmp edx, r15d
jge 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 2]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 3]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 4]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 5]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 6]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 7]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 8]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 9]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xa]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xb]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xc]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xd]
cmp r15d, edx
jle 0x6a45b0
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [r13 + rdx]
xor byte [r12 + rdx], cl
cmp r15d, eax
jle 0x6a45b0
cdqe
movzx edx, byte [r13 + rax]
xor byte [r12 + rax], dl
nop word [rax + rax]
mov rax, qword [rsp + 0x1b8]
lea r13, [rsp + 0xf0]
xor r9d, r9d
mov qword [rsp + 0x28], 0
movsxd rdx, dword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1a8]
mov r8, r13
mov qword [rsp + 0x20], rax
call sym.EVP_Digest
test eax, eax
jne 0x6a4690
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x58], 0xffffffff
not eax
mov dword [rsp + 0x5c], eax
mov rcx, qword [rsp + 0x30]
mov edx, 0x40
call sym.OPENSSL_cleanse
mov rdx, qword [rsp + 0x48]
mov r9d, 0x10b
mov rcx, r12
lea r8, str.crypto_rsa_rsa_oaep.c
call sym.CRYPTO_clear_free
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov r9d, 0x10c
lea r8, str.crypto_rsa_rsa_oaep.c
call sym.CRYPTO_clear_free
mov eax, dword [rsp + 0x40]
mov edi, dword [rsp + 0x5c]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0xac], edi
mov edx, dword [rsp + 0xac]
and eax, dword [rsp + 0x58]
or eax, edx
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x60]
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 + 0x40]
sar eax, 0x1f
and r9d, eax
cmp ebx, r15d
jge 0x6a4a79
mov rcx, rdi
xor r8d, r8d
nop dword [rax]
movzx r10d, byte [r12 + rcx]
mov eax, r10d
xor eax, 1
movzx eax, al
mov edx, eax
sub eax, 1
not edx
and eax, edx
mov edx, r8d
sar eax, 0x1f
not edx
and edx, eax
or r8d, eax
mov eax, r10d
sub r10d, 1
mov dword [rsp + 0x88], edx
not eax
not edx
mov r11d, dword [rsp + 0x88]
and eax, r10d
mov dword [rsp + 0x8c], edx
mov edx, dword [rsp + 0x8c]
sar eax, 0x1f
and r11d, ecx
add rcx, 1
and r14d, edx
or eax, r8d
or r14d, r11d
and r9d, eax
cmp r15d, ecx
jg 0x6a46d0
lea eax, [r14 + 1]
mov ebp, r15d
mov edx, dword [rsp + 0x188]
and r8d, r9d
sub ebp, eax
mov eax, dword [rsp + 0x188]
xor edx, ebp
mov dword [rsp + 0x58], ebp
sub eax, ebp
xor eax, ebp
or eax, edx
xor eax, dword [rsp + 0x188]
sar eax, 0x1f
not eax
and eax, r8d
mov r14d, eax
mov dword [rsp + 0x40], eax
not eax
mov dword [rsp + 0x5c], eax
and r14d, 1
mov r13d, r15d
mov edx, dword [rsp + 0x188]
mov edi, 1
sub r13d, ebx
sub r13d, 1
xor edx, r13d
mov eax, r13d
sub eax, dword [rsp + 0x188]
xor eax, dword [rsp + 0x188]
or eax, edx
xor eax, r13d
sar eax, 0x1f
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0x90]
not eax
mov dword [rsp + 0x94], eax
mov eax, r13d
mov edx, dword [rsp + 0x94]
and ecx, r13d
and edx, dword [rsp + 0x188]
sub eax, ebp
or ecx, edx
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x74], ecx
cmp r13d, 1
jle 0x6a48b8
mov rax, qword [rsp + 0x60]
movsxd rsi, dword [rsp + 0x44]
mov dword [rsp + 0x78], r14d
mov dword [rsp + 0x7c], ebp
lea rax, [r12 + rax + 2]
mov rbp, rsi
mov qword [rsp + 0x68], rax
mov eax, 0xfffffffe
sub eax, ebx
mov r14d, eax
nop dword [rax]
mov eax, dword [rsp + 0x70]
mov edx, r15d
sub edx, edi
and eax, edi
mov r10d, eax
sub eax, 1
not r10d
and r10d, eax
sar r10d, 0x1f
mov r11d, r10d
not r11d
cmp dword [rsp + 0x44], edx
jge 0x6a48a4
lea ebx, [r14 + rdx]
movzx r11d, r11b
lea rax, [r12 + rbp]
movsxd rsi, edi
or r10d, 0xffffff00
add rbx, qword [rsp + 0x68]
nop word [rax + rax]
mov dword [rsp + 0x98], r11d
movzx ecx, byte [rax]
add rax, 1
mov r9d, dword [rsp + 0x98]
movzx edx, byte [rax + rsi - 1]
mov dword [rsp + 0x9c], r10d
mov r8d, dword [rsp + 0x9c]
and edx, r9d
and ecx, r8d
or edx, ecx
mov byte [rax - 1], dl
cmp rax, rbx
jne 0x6a4868
add edi, edi
cmp r13d, edi
jg 0x6a4820
mov r14d, dword [rsp + 0x78]
mov ebp, dword [rsp + 0x7c]
mov eax, dword [rsp + 0x74]
test eax, eax
jle 0x6a494e
mov eax, dword [rsp + 0x74]
mov r9d, ebp
mov r8d, dword [rsp + 0x40]
xor edx, edx
mov rcx, qword [rsp + 0x180]
neg r9d
lea ebx, [rax - 1]
mov rax, qword [rsp + 0x60]
lea r11, [r12 + rax]
nop dword [rax]
mov eax, ebp
mov r10d, ebp
movzx esi, byte [rcx + rdx]
xor r10d, r9d
xor eax, edx
add r9d, 1
or eax, r10d
movzx r10d, byte [r11 + rdx + 1]
xor eax, edx
sar eax, 0x1f
and eax, r8d
movzx eax, al
mov dword [rsp + 0xa0], eax
not eax
mov r13d, dword [rsp + 0xa0]
mov dword [rsp + 0xa4], eax
mov edi, dword [rsp + 0xa4]
mov eax, r10d
and eax, r13d
and esi, edi
or eax, esi
mov byte [rcx + rdx], al
mov rax, rdx
add rdx, 1
cmp rax, rbx
jne 0x6a48f0
mov r8d, 0x79
mov edx, 0x99
mov ecx, 4
mov dword [rsp + 0x20], 0x106
lea r9, str.crypto_rsa_rsa_oaep.c
call sym.ERR_put_error
mov ecx, r14d
call sym.err_clear_last_constant_time
jmp 0x6a4603
mov dword [rsp + 0x20], 0x9f
mov r8d, 0x41
mov edx, 0x99
mov ecx, 4
lea r9, str.crypto_rsa_rsa_oaep.c
call sym.ERR_put_error
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x5c], 0xffffffff
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x30], rax
jmp 0x6a4603
call sym.EVP_sha1
mov qword [rsp + 0x1b8], rax
jmp 0x6a4007
mov rax, qword [rsp + 0x30]
lea rcx, [rsp + rcx + 0xb1]
nop
movzx edx, byte [r14]
xor byte [rax], dl
add rax, 1
add r14, 1
cmp rax, rcx
jne 0x6a4a00
jmp 0x6a43a0
mov dword [rsp + 0x20], 0xa5
jmp 0x6a4988
mov edx, eax
xor eax, eax
nop dword [rax]
movzx ecx, byte [r13 + rax]
xor byte [r12 + rax], cl
mov rcx, rax
add rax, 1
cmp rcx, rdx
jne 0x6a4a30
jmp 0x6a45b0
mov r8d, 0x79
mov edx, 0x99
mov ecx, 4
mov dword [rsp + 0x20], 0x97
lea r9, str.crypto_rsa_rsa_oaep.c
call sym.ERR_put_error
mov eax, 0xffffffff
jmp 0x6a4672
mov ebp, dword [rsp + 0x58]
mov dword [rsp + 0x5c], 0xffffffff
mov dword [rsp + 0x40], 0
sub ebp, 2
mov dword [rsp + 0x58], ebp
jmp 0x6a4780
mov eax, 0xffffffff
jmp 0x6a4672