Function at 0x615250
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov r12, rcx
mov rdi, rdx
mov r14, r8
mov rbx, r9
call sym.EVP_MD_CTX_new
mov r13, rax
test rax, rax
je 0x615674
mov rcx, r14
call sym.EVP_MD_size
mov ebp, eax
test eax, eax
js 0x615674
cmp dword [rsp + 0xf0], 0xffffffff
je 0x6156e0
cmp dword [rsp + 0xf0], 0xfffffffd
jl 0x615710
mov rcx, qword [r12 + 0x18]
mov r15d, 0xff
call sym.BN_num_bits
mov rcx, r12
lea esi, [rax - 1]
call sym.RSA_size
and esi, 7
movzx edx, byte [rbx]
mov ecx, esi
shl r15d, cl
and r15d, edx
jne 0x615650
test esi, esi
jne 0x6152e8
add rbx, 1
sub eax, 1
lea edx, [rbp + 1]
cmp edx, eax
jge 0x615730
mov r11d, eax
sub r11d, ebp
cmp dword [rsp + 0xf0], 0xfffffffd
je 0x6156f0
lea edx, [r11 - 1]
cmp dword [rsp + 0xf0], edx
jge 0x615760
cdqe
cmp byte [rbx + rax - 1], 0xbc
jne 0x6156b0
lea r10d, [r11 - 1]
mov r8d, 0x5d
mov dword [rsp + 0x34], r11d
lea rdx, str.crypto_rsa_rsa_pss.c
movsxd rcx, r10d
mov dword [rsp + 0x30], r10d
lea rax, [rbx + rcx]
mov qword [rsp + 0x38], rax
call sym.CRYPTO_malloc
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
test rax, rax
mov r12, rax
je 0x6157c0
mov qword [rsp + 0x20], r14
mov r8, qword [rsp + 0x38]
mov r9d, ebp
mov edx, r10d
mov rcx, rax
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x30], r10d
call sym.PKCS1_MGF1
test eax, eax
js 0x61567a
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
test r10d, r10d
jle 0x615530
lea rdx, [rbx + 0xf]
lea eax, [r11 - 2]
sub rdx, r12
cmp rdx, 0x1e
jbe 0x6157f0
cmp eax, 0xe
jbe 0x6157f0
mov edx, r10d
xor eax, eax
shr edx, 4
shl rdx, 4
nop
movdqu xmm0, xmmword [r12 + rax]
movdqu xmm1, xmmword [rbx + rax]
pxor xmm0, xmm1
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x6153d0
mov eax, r10d
and eax, 0xfffffff0
test r10b, 0xf
je 0x615530
movsxd rdx, eax
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 1]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 2]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 3]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 4]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 5]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 6]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 7]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 8]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 9]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xa]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xb]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xc]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xd]
cmp r10d, edx
jle 0x615530
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
cmp r10d, eax
jle 0x615530
cdqe
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
nop dword [rax]
movzx edx, byte [r12]
test esi, esi
jne 0x615770
test dl, dl
jne 0x615841
cmp r11d, 2
jle 0x615790
lea ecx, [r11 - 3]
mov eax, 1
add rcx, 2
jmp 0x61556d
add rax, 1
cmp rax, rcx
je 0x615790
movzx edx, byte [r12 + rax]
mov ebx, eax
test dl, dl
je 0x615560
add ebx, 1
cmp dl, 1
jne 0x615790
cmp dword [rsp + 0xf0], 0xfffffffe
je 0x6155a0
mov eax, r10d
sub eax, ebx
cmp dword [rsp + 0xf0], eax
jne 0x615818
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [rsp + 0x30], r10d
call sym.EVP_DigestInit_ex
test eax, eax
je 0x615677
mov r8d, 8
lea rdx, [0x008f5258]
mov rcx, r13
call sym.EVP_DigestUpdate
test eax, eax
je 0x615677
movsxd rsi, ebp
mov rdx, rdi
mov rcx, r13
mov r8, rsi
call sym.EVP_DigestUpdate
test eax, eax
je 0x615677
mov r10d, dword [rsp + 0x30]
cmp r10d, ebx
je 0x615613
sub r10d, ebx
movsxd rdx, ebx
mov rcx, r13
add rdx, r12
movsxd r8, r10d
call sym.EVP_DigestUpdate
test eax, eax
je 0x615677
lea r14, [rsp + 0x40]
xor r8d, r8d
mov rcx, r13
mov rdx, r14
call sym.EVP_DigestFinal_ex
test eax, eax
je 0x615677
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov rcx, r14
call sym.memcmp
test eax, eax
jne 0x61584b
mov r15d, 1
jmp 0x61567a
mov dword [rsp + 0x20], 0x46
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x85
mov edx, 0x7e
mov ecx, 4
call sym.ERR_put_error
xor r12d, r12d
xor r15d, r15d
mov r8d, 0x83
lea rdx, str.crypto_rsa_rsa_pss.c
mov rcx, r12
call sym.CRYPTO_free
mov rcx, r13
call sym.EVP_MD_CTX_free
mov eax, r15d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0x58
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x86
xor r12d, r12d
mov edx, 0x7e
mov ecx, 4
call sym.ERR_put_error
jmp 0x61567a
mov dword [rsp + 0xf0], eax
jmp 0x6152ae
cdqe
lea edx, [r11 - 2]
cmp byte [rbx + rax - 1], 0xbc
mov dword [rsp + 0xf0], edx
je 0x615325
jmp 0x6156b0
mov dword [rsp + 0x20], 0x3f
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x88
jmp 0x615665
mov dword [rsp + 0x20], 0x4e
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x6d
mov edx, 0x7e
xor r12d, r12d
mov ecx, 4
call sym.ERR_put_error
jmp 0x61567a
mov dword [rsp + 0x20], 0x54
jmp 0x615738
mov ecx, 8
mov eax, 0xff
sub ecx, esi
sar eax, cl
and edx, eax
mov byte [r12], dl
jmp 0x61553d
mov r8d, 0x87
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x6a
lea r9, str.crypto_rsa_rsa_pss.c
call sym.ERR_put_error
jmp 0x61567a
mov r8d, 0x41
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x5f
lea r9, str.crypto_rsa_rsa_pss.c
call sym.ERR_put_error
jmp 0x61567a
mov edx, eax
xor eax, eax
nop dword [rax]
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
mov rcx, rax
add rax, 1
cmp rcx, rdx
jne 0x6157f8
jmp 0x615530
mov r8d, 0x88
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x6e
lea r9, str.crypto_rsa_rsa_pss.c
call sym.ERR_put_error
jmp 0x61567a
mov ebx, 1
jmp 0x61557b
mov r8d, 0x68
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x7c
lea r9, str.crypto_rsa_rsa_pss.c
call sym.ERR_put_error
jmp 0x61567a