Function at 0x1400ea900
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov r12, r8
mov r15, rdx
mov r13, rcx
mov rax, qword [rcx + 8]
cmp dword [rax + 4], 0
jne 0x1400ea981
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x28]
call qword [0x1400fea90]
mov rcx, rax
lea rdx, [rbp + 0x48]
call qword [0x1400fe338]
nop
lea rdx, str.No_key_set.
mov rcx, rax
call qword [0x1400fea00]
nop
lea rcx, [rbp + 0x48]
call qword [0x1400fea08]
mov dword [r13 + 0x18], 1
mov rcx, r15
call qword [0x1400fe9c0]
jmp 0x1400eacdc
mov rdx, r12
lea rcx, [rbp - 0x40]
call qword [0x1400fe488]
nop
mov rax, qword [r12]
cmp dword [rax + 4], 3
jl 0x1400ea9ec
xor edx, edx
lea rcx, [rbp - 0x40]
call qword [0x1400fe308]
cmp al, 3
je 0x1400ea9fa
mov dword [r13 + 0x18], 2
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x28]
call qword [0x1400fea90]
mov rcx, rax
lea rdx, [rbp + 0x48]
call qword [0x1400fe338]
nop
lea rdx, str.Invalid_version_or_not_a_cyphertext.
mov rcx, rax
call qword [0x1400fea00]
nop
lea rcx, [rbp + 0x48]
call qword [0x1400fea08]
mov rcx, r15
call qword [0x1400fe9c0]
jmp 0x1400eacd1
mov edx, 1
lea rcx, [rbp - 0x40]
call qword [0x1400fe308]
movsx ebx, al
mov dword [rbp - 0x48], ebx
mov r9d, 0xffffffff
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x48]
lea rcx, [rbp - 0x40]
call qword [0x1400fe2f0]
mov rdx, rax
lea rcx, [rbp - 0x40]
call qword [0x1400fe5d0]
lea rcx, [rbp + 0x48]
call qword [0x1400feae0]
mov rax, qword [rbp - 0x40]
mov eax, dword [rax + 4]
mov dword [rbp + 0x48], 0
test eax, eax
jle 0x1400eaada
mov r12d, dword [rbp + 0x48]
mov r15d, eax
xor bl, bl
nop dword [rax]
mov r8d, r12d
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x40]
call qword [0x1400fe300]
mov rcx, rax
call qword [0x1400fe2c8]
movzx r14d, al
mov rcx, qword [r13 + 8]
mov esi, r12d
and esi, 7
add rsi, qword [rcx + 0x10]
add rsi, rcx
mov edx, r12d
lea rcx, [rbp - 0x40]
call qword [0x1400fe308]
movzx edi, al
xor dil, byte [rsi]
xor dil, bl
mov r8d, r12d
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x40]
call qword [0x1400fe300]
mov rcx, rax
movzx edx, dil
call qword [0x1400fe2c0]
movzx ebx, r14b
inc r12d
cmp r12d, r15d
jl 0x1400eaa60
mov ebx, dword [rbp - 0x48]
mov r15, qword [rbp + 0x50]
mov r12, qword [rbp + 0x58]
mov r9d, 0xffffffff
lea r8d, [r9 + 2]
lea rdx, [rbp + 0x48]
lea rcx, [rbp - 0x40]
call qword [0x1400fe2f0]
mov rdx, rax
lea rcx, [rbp - 0x40]
call qword [0x1400fe5d0]
lea rcx, [rbp + 0x48]
call qword [0x1400feae0]
test bl, 2
je 0x1400eabb0
mov rax, qword [rbp - 0x40]
cmp dword [rax + 4], 2
jge 0x1400eab32
mov dword [r13 + 0x18], 3
mov rcx, r15
call qword [0x1400fe9c0]
jmp 0x1400eacd1
mov r8d, 1
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x28]
call qword [0x1400fe280]
nop
lea rdx, [rbp + 0x48]
lea rcx, [rbp - 0x28]
call qword [0x1400fe270]
nop
lea rcx, [rbp - 0x28]
call qword [0x1400fe278]
mov r9d, 0xffffffff
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x60]
lea rcx, [rbp - 0x40]
call qword [0x1400fe2f0]
mov rdx, rax
lea rcx, [rbp - 0x40]
call qword [0x1400fe5d0]
lea rcx, [rbp + 0x60]
call qword [0x1400feae0]
mov rax, qword [rbp - 0x40]
mov edi, dword [rax + 4]
lea rcx, [rbp - 0x40]
call qword [0x1400fe648]
mov rcx, rax
mov edx, edi
call qword [0x1400fe320]
jmp 0x1400eac7d
test bl, 4
je 0x1400eac7d
mov rax, qword [rbp - 0x40]
cmp dword [rax + 4], 0x14
jl 0x1400eab1c
mov r8d, 0x14
lea rdx, [rbp + 0x60]
lea rcx, [rbp - 0x40]
call qword [0x1400fe2f8]
nop
mov r9d, 0xffffffff
lea r8d, [r9 + 0x15]
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x40]
call qword [0x1400fe2f0]
mov rdx, rax
lea rcx, [rbp - 0x40]
call qword [0x1400fe5d0]
lea rcx, [rbp - 0x48]
call qword [0x1400feae0]
mov edx, 2
lea rcx, [rbp + 0x48]
call qword [0x1400fe2a0]
nop
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x48]
call qword [0x1400fe290]
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x48]
call qword [0x1400fe288]
mov rdi, rax
mov rcx, qword [rax]
mov edx, dword [rcx + 4]
mov rcx, qword [rbp + 0x60]
cmp edx, dword [rcx + 4]
jne 0x1400eac5d
lea rcx, [rbp + 0x60]
call qword [0x1400fe648]
mov rcx, rdi
call qword [0x1400fe648]
nop
lea rcx, [rbp - 0x48]
call qword [0x1400feae0]
nop
lea rcx, [rbp + 0x48]
call qword [0x1400fe298]
nop
lea rcx, [rbp + 0x60]
call qword [0x1400feae0]
test bl, 1
je 0x1400eacbb
mov rax, qword [rbp - 0x40]
mov ebx, dword [rax + 4]
lea rcx, [rbp - 0x40]
call qword [0x1400fe648]
mov rdx, rax
mov r8d, ebx
lea rcx, [rbp + 0x48]
call qword [0x1400fe2d0]
lea rdx, [rbp + 0x48]
lea rcx, [rbp - 0x40]
call qword [0x1400fe5d0]
lea rcx, [rbp + 0x48]
call qword [0x1400feae0]
mov dword [r13 + 0x18], 0
lea rdx, [rbp - 0x40]
mov rcx, r15
call qword [0x1400fe310]
nop
lea rcx, [rbp - 0x40]
call qword [0x1400feae0]
nop
mov rcx, r12
call qword [0x1400feae0]
mov rax, r15
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret