Function at 0x60c430
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 0x60c854
mov rcx, r14
call sym.EVP_MD_size
mov ebp, eax
test eax, eax
js 0x60c854
cmp dword [rsp + 0xf0], 0xffffffff
je 0x60c8c0
cmp dword [rsp + 0xf0], 0xfffffffd
jl 0x60c8f0
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 0x60c830
test esi, esi
jne 0x60c4c8
add rbx, 1
sub eax, 1
lea edx, [rbp + 1]
cmp edx, eax
jge 0x60c910
mov r11d, eax
sub r11d, ebp
cmp dword [rsp + 0xf0], 0xfffffffd
je 0x60c8d0
lea edx, [r11 - 1]
cmp dword [rsp + 0xf0], edx
jge 0x60c940
cdqe
cmp byte [rbx + rax - 1], 0xbc
jne 0x60c890
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 0x60c9a0
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 0x60c85a
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
test r10d, r10d
jle 0x60c710
lea rdx, [rbx + 0xf]
lea eax, [r11 - 2]
sub rdx, r12
cmp rdx, 0x1e
jbe 0x60c9d0
cmp eax, 0xe
jbe 0x60c9d0
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 0x60c5b0
mov eax, r10d
and eax, 0xfffffff0
test r10b, 0xf
je 0x60c710
movsxd rdx, eax
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 1]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 2]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 3]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 4]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 5]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 6]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 7]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 8]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 9]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xa]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xb]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xc]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xd]
cmp r10d, edx
jle 0x60c710
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
cmp r10d, eax
jle 0x60c710
cdqe
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
nop dword [rax]
movzx edx, byte [r12]
test esi, esi
jne 0x60c950
test dl, dl
jne 0x60ca21
cmp r11d, 2
jle 0x60c970
lea ecx, [r11 - 3]
mov eax, 1
add rcx, 2
jmp 0x60c74d
add rax, 1
cmp rax, rcx
je 0x60c970
movzx edx, byte [r12 + rax]
mov ebx, eax
test dl, dl
je 0x60c740
add ebx, 1
cmp dl, 1
jne 0x60c970
cmp dword [rsp + 0xf0], 0xfffffffe
je 0x60c780
mov eax, r10d
sub eax, ebx
cmp dword [rsp + 0xf0], eax
jne 0x60c9f8
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [rsp + 0x30], r10d
call sym.EVP_DigestInit_ex
test eax, eax
je 0x60c857
mov r8d, 8
lea rdx, [0x009599b8]
mov rcx, r13
call sym.EVP_DigestUpdate
test eax, eax
je 0x60c857
movsxd rsi, ebp
mov rdx, rdi
mov rcx, r13
mov r8, rsi
call sym.EVP_DigestUpdate
test eax, eax
je 0x60c857
mov r10d, dword [rsp + 0x30]
cmp r10d, ebx
je 0x60c7f3
sub r10d, ebx
movsxd rdx, ebx
mov rcx, r13
add rdx, r12
movsxd r8, r10d
call sym.EVP_DigestUpdate
test eax, eax
je 0x60c857
lea r14, [rsp + 0x40]
xor r8d, r8d
mov rcx, r13
mov rdx, r14
call sym.EVP_DigestFinal_ex
test eax, eax
je 0x60c857
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov rcx, r14
call sym.memcmp
test eax, eax
jne 0x60ca2b
mov r15d, 1
jmp 0x60c85a
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 0x60c85a
mov dword [rsp + 0xf0], eax
jmp 0x60c48e
cdqe
lea edx, [r11 - 2]
cmp byte [rbx + rax - 1], 0xbc
mov dword [rsp + 0xf0], edx
je 0x60c505
jmp 0x60c890
mov dword [rsp + 0x20], 0x3f
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x88
jmp 0x60c845
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 0x60c85a
mov dword [rsp + 0x20], 0x54
jmp 0x60c918
mov ecx, 8
mov eax, 0xff
sub ecx, esi
sar eax, cl
and edx, eax
mov byte [r12], dl
jmp 0x60c71d
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 0x60c85a
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 0x60c85a
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 0x60c9d8
jmp 0x60c710
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 0x60c85a
mov ebx, 1
jmp 0x60c75b
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 0x60c85a