Function at 0x6abcd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov r13, qword [rsp + 0x1e0]
mov rsi, qword [rsp + 0x1e8]
mov r15, rcx
mov rcx, r9
mov r14, rdx
mov rbx, r8
mov r12, r9
call sym.BN_is_odd
test eax, eax
je 0x6abf90
cmp dword [r12 + 8], 0xfffff
jle 0x6abf30
mov rcx, rbx
call sym.BN_num_bits
mov dword [rsp + 0x50], eax
test eax, eax
je 0x6ac020
mov rcx, r13
call sym.BN_CTX_start
mov rcx, r13
call sym.BN_CTX_get
mov rcx, r13
mov qword [rsp + 0x38], rax
call sym.BN_CTX_get
mov rcx, r13
mov qword [rsp + 0x40], rax
call sym.BN_CTX_get
mov qword [rsp + 0x70], rax
mov rdi, rax
test rax, rax
je 0x6ac060
mov rbp, rsi
test rsi, rsi
je 0x6ac0b8
mov ecx, dword [r14 + 0x10]
test ecx, ecx
je 0x6ac000
mov rdx, r14
mov r9, r13
mov r8, r12
mov rcx, rdi
call sym.BN_nnmod
mov r14, rdi
test eax, eax
je 0x6abf10
mov r9, r13
mov r8, rbp
mov rdx, r14
mov rcx, rdi
call sym.bn_to_mont_fixed_top
test eax, eax
je 0x6abf10
mov eax, dword [rsp + 0x50]
cmp eax, 0x29f
jg 0x6ac0e0
cmp eax, 0xef
jle 0x6ac090
mov dword [rsp + 0x48], 0x10
mov dword [rsp + 0x54], 5
mov qword [rsp + 0x20], r13
mov rcx, qword [rsp + 0x38]
mov r9, rbp
mov r8, rdi
mov rdx, rdi
call sym.bn_mul_mont_fixed_top
test eax, eax
je 0x6abf10
mov edi, 1
mov qword [rsp + 0x58], r15
mov r15, qword [rsp + 0x38]
lea r14, [rsp + 0x70]
mov qword [rsp + 0x38], rbx
mov rbx, rdi
mov edi, dword [rsp + 0x48]
nop dword [rax]
mov rcx, r13
call sym.BN_CTX_get
mov qword [r14 + rbx*8], rax
mov rcx, rax
test rax, rax
je 0x6ac0f8
mov rdx, qword [r14 + rbx*8 - 8]
mov qword [rsp + 0x20], r13
mov r9, rbp
mov r8, r15
call sym.bn_mul_mont_fixed_top
test eax, eax
je 0x6abf10
add rbx, 1
cmp edi, ebx
jg 0x6abe28
mov r15, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x38]
movsxd rdx, dword [r12 + 8]
mov rax, qword [r12]
cmp qword [rax + rdx*8 - 8], 0
mov rdi, rdx
js 0x6ac118
call sym.BN_value_one
mov rcx, qword [rsp + 0x40]
mov r9, r13
mov r8, rbp
mov rdx, rax
call sym.bn_to_mont_fixed_top
test eax, eax
je 0x6abf10
mov r14d, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x48], r15
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x38], rsi
sub r14d, 1
mov edx, r14d
mov rcx, rbx
call sym.BN_is_bit_set
test eax, eax
jne 0x6ac1c0
mov edx, dword [rsp + 0x50]
test edx, edx
je 0x6ac280
test r14d, r14d
jne 0x6ac2b0
mov r15, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov r9, r13
mov r8, rbp
mov rsi, qword [rsp + 0x38]
mov rcx, r15
call sym.BN_from_montgomery
test eax, eax
setne al
movzx eax, al
test rsi, rsi
je 0x6ac072
mov rcx, r13
mov dword [rsp + 0x50], eax
call sym.BN_CTX_end
mov eax, dword [rsp + 0x50]
jmp 0x6abfc7
mov edx, 4
mov rcx, rbx
call sym.BN_get_flags
test eax, eax
jne 0x6abf56
mov edx, 4
mov rcx, r14
call sym.BN_get_flags
test eax, eax
je 0x6abfe0
mov r9, r12
mov r8, rbx
mov rdx, r14
mov rcx, r15
mov qword [rsp + 0x1e8], rsi
mov qword [rsp + 0x1e0], r13
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.BN_mod_exp_mont_consttime
mov dword [rsp + 0x50], eax
call sym.ERR_new
lea r8, str.BN_mod_exp_mont
mov edx, 0x140
lea rcx, str..._openssl_3.1.1_crypto_bn_bn_exp.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x66
mov ecx, 3
call sym.ERR_set_error
mov eax, dword [rsp + 0x50]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 4
mov rcx, r12
call sym.BN_get_flags
test eax, eax
je 0x6abd1e
jmp 0x6abf56
mov rdx, r12
mov rcx, r14
call sym.BN_ucmp
test eax, eax
jns 0x6abd85
jmp 0x6abda1
mov edx, 1
mov rcx, r12
call sym.BN_abs_is_word
test eax, eax
je 0x6ac040
mov rcx, r15
call sym.BN_zero_ex
mov eax, 1
jmp 0x6abfc7
mov edx, 1
mov rcx, r15
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.BN_set_word
xor ebp, ebp
xor eax, eax
jmp 0x6abf10
xor eax, eax
mov rcx, rbp
mov dword [rsp + 0x50], eax
call sym.BN_MONT_CTX_free
mov eax, dword [rsp + 0x50]
jmp 0x6abf19
cmp eax, 0x4f
jg 0x6ac100
cmp eax, 0x17
jle 0x6ac2b9
mov dword [rsp + 0x48], 4
mov dword [rsp + 0x54], 3
jmp 0x6abde4
call sym.BN_MONT_CTX_new
mov rbp, rax
test rax, rax
je 0x6ac070
mov r8, r13
mov rdx, r12
mov rcx, rax
call sym.BN_MONT_CTX_set
test eax, eax
jne 0x6abd79
jmp 0x6ac072
mov dword [rsp + 0x48], 0x20
mov dword [rsp + 0x54], 6
jmp 0x6abde4
xor eax, eax
jmp 0x6abf10
mov dword [rsp + 0x48], 8
mov dword [rsp + 0x54], 4
jmp 0x6abde4
mov r14, qword [rsp + 0x40]
mov rcx, r14
call sym.bn_wexpand
test rax, rax
je 0x6ac0f8
mov rdx, qword [r12]
mov rcx, qword [r14]
mov rax, qword [rdx]
neg rax
mov qword [rcx], rax
cmp edi, 1
jle 0x6ac1af
lea r8, [rdx + 0x10]
lea rax, [rcx + 8]
cmp r8, rax
je 0x6ac2f8
lea eax, [rdi - 2]
cmp eax, 3
jbe 0x6ac2f8
lea r9d, [rdi - 1]
mov eax, 8
pcmpeqd xmm1, xmm1
mov r8d, r9d
shr r8d, 1
shl r8, 4
add r8, 8
nop word [rax + rax]
movdqu xmm0, xmmword [rdx + rax]
pxor xmm0, xmm1
movups xmmword [rcx + rax], xmm0
add rax, 0x10
cmp rax, r8
jne 0x6ac180
mov eax, r9d
or eax, 1
and r9d, 1
je 0x6ac1af
cdqe
mov rdx, qword [rdx + rax*8]
not rdx
mov qword [rcx + rax*8], rdx
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], edi
jmp 0x6abea3
mov r15d, dword [rsp + 0x54]
cmp r15d, 1
je 0x6ac319
test r14d, r14d
jle 0x6ac319
lea eax, [r14 + 1]
mov edx, 1
mov qword [rsp + 0x60], rbp
xor esi, esi
mov r12d, 1
mov qword [rsp + 0x68], rdi
mov ebp, edx
mov edi, r12d
mov r12d, eax
jmp 0x6ac205
cmp r12d, edi
je 0x6ac229
mov edx, r14d
mov rcx, rbx
sub edx, edi
call sym.BN_is_bit_set
test eax, eax
je 0x6ac221
mov ecx, edi
sub ecx, esi
mov esi, edi
shl ebp, cl
or ebp, 1
add edi, 1
cmp r15d, edi
jne 0x6ac200
mov dword [rsp + 0x58], ebp
mov rdi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x6ac2c6
mov eax, dword [rsp + 0x58]
mov qword [rsp + 0x20], r13
mov r9, rbp
mov rdx, rdi
mov rcx, rdi
sar eax, 1
cdqe
mov r8, qword [rsp + rax*8 + 0x70]
call sym.bn_mul_mont_fixed_top
test eax, eax
je 0x6ac29e
lea eax, [rsi + 1]
sub r14d, eax
js 0x6abeeb
mov dword [rsp + 0x50], 0
jmp 0x6abec3
mov qword [rsp + 0x20], r13
mov r9, rbp
mov r8, rdi
mov rdx, rdi
mov rcx, rdi
call sym.bn_mul_mont_fixed_top
test eax, eax
jne 0x6abee2
mov rsi, qword [rsp + 0x38]
jmp 0x6abf10
sub r14d, 1
jmp 0x6abec3
mov dword [rsp + 0x54], 1
jmp 0x6abe6f
mov r15d, dword [rsp + 0x50]
lea r12d, [rsi + 1]
nop
mov qword [rsp + 0x20], r13
mov r9, rbp
mov r8, rdi
mov rdx, rdi
mov rcx, rdi
call sym.bn_mul_mont_fixed_top
test eax, eax
je 0x6ac29e
add r15d, 1
cmp r12d, r15d
jne 0x6ac2d0
jmp 0x6ac243
mov r9d, edi
mov eax, 1
mov r8, qword [rdx + rax*8]
not r8
mov qword [rcx + rax*8], r8
add rax, 1
cmp rax, r9
jne 0x6ac300
jmp 0x6ac1af
mov dword [rsp + 0x58], 1
xor esi, esi
jmp 0x6ac237