Function at 0x41c2d0
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 0x41c6f4
mov rcx, r14
call sym.EVP_MD_size
mov ebp, eax
test eax, eax
js 0x41c6f4
cmp dword [rsp + 0xf0], 0xffffffff
je 0x41c760
cmp dword [rsp + 0xf0], 0xfffffffd
jl 0x41c790
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 0x41c6d0
test esi, esi
jne 0x41c368
add rbx, 1
sub eax, 1
lea edx, [rbp + 1]
cmp edx, eax
jge 0x41c7b0
mov r11d, eax
sub r11d, ebp
cmp dword [rsp + 0xf0], 0xfffffffd
je 0x41c770
lea edx, [r11 - 1]
cmp dword [rsp + 0xf0], edx
jge 0x41c7e0
cdqe
cmp byte [rbx + rax - 1], 0xbc
jne 0x41c730
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 0x41c840
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 0x41c6fa
mov r10d, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
test r10d, r10d
jle 0x41c5b0
lea rdx, [rbx + 0xf]
lea eax, [r11 - 2]
sub rdx, r12
cmp rdx, 0x1e
jbe 0x41c870
cmp eax, 0xe
jbe 0x41c870
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 0x41c450
mov eax, r10d
and eax, 0xfffffff0
test r10b, 0xf
je 0x41c5b0
movsxd rdx, eax
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 1]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 2]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 3]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 4]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 5]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 6]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 7]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 8]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 9]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xa]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xb]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xc]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xd]
cmp r10d, edx
jle 0x41c5b0
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [rbx + rdx]
xor byte [r12 + rdx], cl
cmp r10d, eax
jle 0x41c5b0
cdqe
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
nop dword [rax]
movzx edx, byte [r12]
test esi, esi
jne 0x41c7f0
test dl, dl
jne 0x41c8c1
cmp r11d, 2
jle 0x41c810
lea ecx, [r11 - 3]
mov eax, 1
add rcx, 2
jmp 0x41c5ed
add rax, 1
cmp rax, rcx
je 0x41c810
movzx edx, byte [r12 + rax]
mov ebx, eax
test dl, dl
je 0x41c5e0
add ebx, 1
cmp dl, 1
jne 0x41c810
cmp dword [rsp + 0xf0], 0xfffffffe
je 0x41c620
mov eax, r10d
sub eax, ebx
cmp dword [rsp + 0xf0], eax
jne 0x41c898
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [rsp + 0x30], r10d
call sym.EVP_DigestInit_ex
test eax, eax
je 0x41c6f7
mov r8d, 8
lea rdx, [0x005ce478]
mov rcx, r13
call sym.EVP_DigestUpdate
test eax, eax
je 0x41c6f7
movsxd rsi, ebp
mov rdx, rdi
mov rcx, r13
mov r8, rsi
call sym.EVP_DigestUpdate
test eax, eax
je 0x41c6f7
mov r10d, dword [rsp + 0x30]
cmp r10d, ebx
je 0x41c693
sub r10d, ebx
movsxd rdx, ebx
mov rcx, r13
add rdx, r12
movsxd r8, r10d
call sym.EVP_DigestUpdate
test eax, eax
je 0x41c6f7
lea r14, [rsp + 0x40]
xor r8d, r8d
mov rcx, r13
mov rdx, r14
call sym.EVP_DigestFinal_ex
test eax, eax
je 0x41c6f7
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov rcx, r14
call sym.memcmp
test eax, eax
jne 0x41c8cb
mov r15d, 1
jmp 0x41c6fa
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 0x41c6fa
mov dword [rsp + 0xf0], eax
jmp 0x41c32e
cdqe
lea edx, [r11 - 2]
cmp byte [rbx + rax - 1], 0xbc
mov dword [rsp + 0xf0], edx
je 0x41c3a5
jmp 0x41c730
mov dword [rsp + 0x20], 0x3f
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x88
jmp 0x41c6e5
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 0x41c6fa
mov dword [rsp + 0x20], 0x54
jmp 0x41c7b8
mov ecx, 8
mov eax, 0xff
sub ecx, esi
sar eax, cl
and edx, eax
mov byte [r12], dl
jmp 0x41c5bd
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 0x41c6fa
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 0x41c6fa
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 0x41c878
jmp 0x41c5b0
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 0x41c6fa
mov ebx, 1
jmp 0x41c5fb
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 0x41c6fa