Function at 0x581ff0
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
mov qword [rsp + 0x40], 0
mov rbx, rcx
mov r12, r9
mov rcx, rdx
mov rdx, r8
test rbx, rbx
je 0x582150
test rcx, rcx
je 0x582150
movzx eax, byte [r8]
sub eax, 0x68
mov edi, eax
jne 0x58203f
movzx eax, byte [r8 + 1]
sub eax, 0x65
mov edi, eax
je 0x5821d0
call sym.OSSL_PARAM_locate_const
cmp qword [rsp + 0xb8], 0
mov rsi, rax
je 0x582064
xor eax, eax
mov rdx, qword [rsp + 0xb8]
test rsi, rsi
setne al
mov dword [rdx], eax
test rsi, rsi
je 0x582378
mov eax, dword [rsi + 8]
cmp eax, 4
je 0x582270
ja 0x582160
sub eax, 1
cmp eax, 1
ja 0x582200
lea rcx, [rsp + 0x40]
mov rdx, r12
test edi, edi
je 0x5821f0
call sym.BN_asc2bn
mov rcx, qword [rsp + 0x40]
test eax, eax
je 0x582139
test rcx, rcx
je 0x582139
mov eax, dword [rsi + 8]
cmp eax, 2
je 0x5823c0
cmp eax, 1
je 0x582388
call sym.BN_num_bits
cmp dword [rsi + 8], 1
movsxd rdx, eax
jne 0x5820e3
lea rcx, [rdx + 8]
test al, 7
cmove rdx, rcx
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x5824f0
shl rax, 3
cmp rdx, rax
jbe 0x58228c
call sym.ERR_new
lea r8, str.prepare_from_text
mov edx, 0x68
lea rcx, str..._openssl_3.1.1_crypto_params_from_text.c
call sym.ERR_set_debug
mov ecx, 0xf
xor r8d, r8d
mov edx, 0x74
call sym.ERR_set_error
mov rcx, qword [rsp + 0x40]
call sym.BN_free
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
cmp eax, 5
jne 0x582200
test edi, edi
jne 0x582180
mov rcx, r12
call sym.strlen
shr rax, 1
mov qword [rsp + 0xb0], rax
cmp qword [rsp + 0xb0], 0
mov ecx, 1
cmovne rcx, qword [rsp + 0xb0]
mov r8d, 0xd8
lea rdx, str..._openssl_3.1.1_crypto_params_from_text.c
call sym.CRYPTO_zalloc
mov r13, rax
test rax, rax
je 0x5825d0
cmp qword [rsp + 0xb0], 0
mov r14, qword [rsp + 0x40]
jne 0x5822b7
jmp 0x582234
movzx eax, byte [r8 + 2]
lea r8, [r8 + 3]
sub eax, 0x78
cmove rdx, r8
mov edi, eax
jmp 0x58203f
call sym.BN_hex2bn
jmp 0x5820a0
mov r8d, 0xd8
lea rdx, str..._openssl_3.1.1_crypto_params_from_text.c
mov ecx, 1
call sym.CRYPTO_zalloc
mov r13, rax
test rax, rax
je 0x5825d0
mov qword [rsp + 0xb0], 0
mov r14, qword [rsp + 0x40]
mov rax, qword [rsp + 0xb0]
movdqu xmm2, xmmword [rsi]
mov qword [rbx + 0x10], r13
mov rcx, r14
mov qword [rbx + 0x20], 0xffffffffffffffff
mov qword [rbx + 0x18], rax
movups xmmword [rbx], xmm2
call sym.BN_free
mov eax, 1
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
test edi, edi
je 0x582530
mov rcx, r12
call sym.strlen
add rax, 1
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0xb0]
mov r8d, 0xd8
lea rdx, str..._openssl_3.1.1_crypto_params_from_text.c
call sym.CRYPTO_zalloc
mov r13, rax
test rax, rax
je 0x5825d0
mov r14, qword [rsp + 0x40]
mov eax, dword [rsi + 8]
cmp eax, 4
je 0x582508
ja 0x582300
sub eax, 1
cmp eax, 1
ja 0x582234
mov r8d, dword [rsp + 0xb0]
mov rdx, r13
mov rcx, r14
call sym.BN_bn2nativepad
cmp dword [rsi + 8], 1
je 0x5823da
mov r14, qword [rsp + 0x40]
jmp 0x582234
cmp eax, 5
jne 0x582234
test edi, edi
jne 0x5823a0
mov dword [rsp + 0x20], 0x3a
mov r9, r12
lea r8, [rsp + 0x48]
mov rcx, r13
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x48], 0
call sym.OPENSSL_hexstr2buf_ex
mov r14, qword [rsp + 0x40]
test eax, eax
jne 0x582234
mov rcx, r14
mov dword [rsp + 0x3c], eax
call sym.BN_free
mov r8d, 0xe1
lea rdx, str..._openssl_3.1.1_crypto_params_from_text.c
mov rcx, r13
call sym.CRYPTO_free
mov eax, dword [rsp + 0x3c]
jmp 0x582152
mov rcx, qword [rsp + 0x40]
jmp 0x582139
call sym.BN_is_negative
test eax, eax
jne 0x582569
mov rcx, qword [rsp + 0x40]
jmp 0x5820cb
mov r8, qword [rsp + 0xb0]
mov rdx, r12
mov rcx, r13
call sym.memcpy
jmp 0x582234
call sym.BN_is_negative
test eax, eax
jne 0x58258a
mov eax, dword [rsi + 8]
mov rcx, qword [rsp + 0x40]
jmp 0x5820c2
mov rcx, r14
call sym.BN_is_negative
test eax, eax
je 0x5822ee
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0x40]
lea r8, [rax - 1]
cmp r8, 0xe
jbe 0x5825c3
mov rdx, rax
pcmpeqd xmm1, xmm1
mov rax, r13
and rdx, 0xfffffffffffffff0
add rdx, r13
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rax]
add rax, 0x10
pxor xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rax, rdx
jne 0x582420
mov rax, qword [rsp + 0xb0]
mov rcx, r8
and rax, 0xfffffffffffffff0
lea rdx, [r13 + rax]
sub rcx, rax
cmp rax, qword [rsp + 0xb0]
je 0x582234
mov r9, qword [rsp + 0xb0]
sub r8, rax
sub r9, rax
cmp r8, 6
jbe 0x58249b
movq xmm1, qword [0x007c3d00]
add rax, r13
movq xmm0, qword [rax]
pxor xmm0, xmm1
movq qword [rax], xmm0
mov rax, r9
and rax, 0xfffffffffffffff8
add rdx, rax
sub rcx, rax
cmp r9, rax
je 0x582234
not byte [rdx]
test rcx, rcx
je 0x582234
not byte [rdx + 1]
cmp rcx, 1
je 0x582234
not byte [rdx + 2]
cmp rcx, 2
je 0x582234
not byte [rdx + 3]
cmp rcx, 3
je 0x582234
not byte [rdx + 4]
cmp rcx, 4
je 0x582234
not byte [rdx + 5]
cmp rcx, 5
je 0x582234
not byte [rdx + 6]
jmp 0x582234
add rdx, 7
shr rdx, 3
mov qword [rsp + 0xb0], rdx
jmp 0x582180
mov r8, qword [rsp + 0xb0]
mov rdx, r12
mov rcx, r13
call sym.strncpy
sub qword [rsp + 0xb0], 1
jmp 0x5822ee
call sym.ERR_new
lea r8, str.prepare_from_text
mov edx, 0x72
lea rcx, str..._openssl_3.1.1_crypto_params_from_text.c
call sym.ERR_set_debug
mov ecx, 0xf
xor r8d, r8d
mov edx, 0x80106
call sym.ERR_set_error
mov rcx, qword [rsp + 0x40]
jmp 0x582139
mov rcx, qword [rsp + 0x40]
mov edx, 1
call sym.BN_add_word
mov rcx, qword [rsp + 0x40]
test eax, eax
jne 0x5820cb
jmp 0x582139
call sym.ERR_new
lea r8, str.prepare_from_text
mov edx, 0x3e
lea rcx, str..._openssl_3.1.1_crypto_params_from_text.c
call sym.ERR_set_debug
mov ecx, 0xf
xor r8d, r8d
mov edx, 0x7a
call sym.ERR_set_error
mov rcx, qword [rsp + 0x40]
jmp 0x582139
mov rcx, r8
mov rdx, r13
xor eax, eax
jmp 0x58245a
call sym.ERR_new
lea r8, str.OSSL_PARAM_allocate_from_text
mov edx, 0xd9
lea rcx, str..._openssl_3.1.1_crypto_params_from_text.c
call sym.ERR_set_debug
mov ecx, 0xf
xor r8d, r8d
mov edx, 0xc0100
call sym.ERR_set_error
mov rcx, qword [rsp + 0x40]
jmp 0x582139