Function at 0x14000e980
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rdi, r9
mov esi, r8d
mov ebp, edx
mov rbx, rcx
test rcx, rcx
jne 0x14000e9bb
lea r8d, [rcx + 0x7f]
lea rcx, str.key___NULL
lea rdx, str.srcciphers_aes_aes.c
call fcn.140013d70
test rdi, rdi
jne 0x14000e9d9
mov r8d, 0x80
lea rdx, str.srcciphers_aes_aes.c
lea rcx, str.skey___NULL
call fcn.140013d70
lea eax, [rbp - 0x10]
test eax, 0xffffffe7
jne 0x14000ef44
cmp ebp, 0x28
je 0x14000ef44
test esi, esi
je 0x14000ea14
mov eax, ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [rax*2 + 6]
cmp esi, eax
je 0x14000ea14
mov eax, 4
jmp 0x14000ef28
mov eax, ebp
mov qword [rsp + 0x30], r14
cdq
lea r11, [rdi + 4]
and edx, 7
add eax, edx
sar eax, 3
lea eax, [rax*2 + 6]
mov dword [rdi + 0x1e0], eax
movzx eax, byte [rbx + 1]
movzx esi, byte [rbx]
shl esi, 8
or esi, eax
movzx eax, byte [rbx + 2]
shl esi, 8
or esi, eax
movzx eax, byte [rbx + 3]
shl esi, 8
or esi, eax
mov dword [rdi], esi
movzx eax, byte [rbx + 5]
movzx ecx, byte [rbx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 7]
shl ecx, 8
or ecx, eax
mov dword [r11], ecx
movzx eax, byte [rbx + 9]
movzx ecx, byte [rbx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xb]
shl ecx, 8
or ecx, eax
mov dword [rdi + 8], ecx
movzx eax, byte [rbx + 0xd]
movzx ecx, byte [rbx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xf]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0xc], ecx
cmp ebp, 0x10
jne 0x14000eb3e
call fcn.14000fc50
mov ecx, dword [r11]
lea rbx, [0x140041084]
mov edx, dword [rdi + 8]
xor eax, esi
btc eax, 0x18
lea rsi, [0x1400410a8]
xor ecx, eax
mov dword [rdi + 0x10], eax
mov eax, dword [rdi + 0xc]
xor edx, ecx
xor eax, edx
mov dword [rdi + 0x14], ecx
mov dword [rdi + 0x1c], eax
mov dword [rdi + 0x18], edx
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [r11 + 0x18]
lea r11, [r11 + 0x10]
call fcn.14000fc50
xor eax, dword [r11 - 4]
xor eax, dword [rbx]
add rbx, 4
mov dword [r11 + 0xc], eax
xor eax, dword [r11]
mov dword [r11 + 0x10], eax
mov ecx, dword [r11 + 4]
xor ecx, eax
mov dword [r11 + 0x14], ecx
xor ecx, dword [r11 + 8]
mov dword [r11 + 0x18], ecx
cmp rbx, rsi
jne 0x14000eb00
jmp 0x14000ed7a
cmp ebp, 0x18
jne 0x14000ec30
movzx eax, byte [rbx + 0x11]
movzx ecx, byte [rbx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x10], ecx
movzx eax, byte [rbx + 0x15]
movzx ecx, byte [rbx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x17]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x14], ecx
call fcn.14000fc50
mov ecx, dword [r11]
lea rbx, [0x140041084]
mov edx, dword [rdi + 8]
lea r11, [rdi + 0x28]
xor eax, esi
lea r14, [0x1400410a0]
btc eax, 0x18
mov rsi, 0xffffffffffffffd8
xor ecx, eax
mov dword [rdi + 0x18], eax
mov eax, dword [rdi + 0xc]
xor edx, ecx
xor eax, edx
mov dword [rdi + 0x1c], ecx
mov dword [rdi + 0x24], eax
sub rsi, rdi
mov dword [rdi + 0x20], edx
nop dword [rax]
mov ecx, dword [r11 - 0x18]
xor ecx, dword [r11 - 4]
mov eax, dword [r11 - 0x14]
mov dword [r11], ecx
lea r11, [r11 + 0x18]
xor eax, ecx
mov dword [r11 - 0x14], eax
lea rax, [rsi + r11]
sar rax, 2
mov ecx, dword [rdi + rax*4 + 0x14]
call fcn.14000fc50
xor eax, dword [r11 - 0x28]
xor eax, dword [rbx]
add rbx, 4
mov dword [r11 - 0x10], eax
mov ecx, dword [r11 - 0x24]
xor ecx, eax
mov dword [r11 - 0xc], ecx
mov edx, dword [r11 - 0x20]
xor edx, ecx
mov dword [r11 - 8], edx
mov eax, dword [r11 - 0x1c]
xor eax, edx
mov dword [r11 - 4], eax
cmp rbx, r14
jne 0x14000ebd0
jmp 0x14000ed7a
cmp ebp, 0x20
jne 0x14000ef3d
movzx eax, byte [rbx + 0x11]
movzx ecx, byte [rbx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x10], ecx
movzx eax, byte [rbx + 0x15]
movzx ecx, byte [rbx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x17]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x14], ecx
movzx eax, byte [rbx + 0x19]
movzx ecx, byte [rbx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1b]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x18], ecx
movzx eax, byte [rbx + 0x1d]
movzx ecx, byte [rbx + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1f]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x1c], ecx
call fcn.14000fc50
mov ecx, dword [r11]
lea rbx, [0x140041084]
mov edx, dword [rdi + 8]
lea r11, [rdi + 0x30]
xor eax, esi
lea r14, [0x14004109c]
btc eax, 0x18
mov rsi, 0xffffffffffffffd0
xor ecx, eax
mov dword [rdi + 0x20], eax
mov eax, dword [rdi + 0xc]
xor edx, ecx
xor eax, edx
mov dword [rdi + 0x24], ecx
mov dword [rdi + 0x2c], eax
sub rsi, rdi
mov dword [rdi + 0x28], edx
mov ecx, dword [r11 - 4]
ror ecx, 8
call fcn.14000fc50
xor eax, dword [r11 - 0x20]
mov ecx, dword [r11 - 0x1c]
mov edx, dword [r11 - 0x18]
xor ecx, eax
mov dword [r11], eax
xor edx, ecx
mov eax, dword [r11 - 0x14]
mov dword [r11 + 4], ecx
xor eax, edx
mov dword [r11 + 0xc], eax
mov dword [r11 + 8], edx
lea r11, [r11 + 0x20]
lea rax, [rsi + r11]
sar rax, 2
mov ecx, dword [rdi + rax*4 + 0x1c]
call fcn.14000fc50
xor eax, dword [r11 - 0x30]
xor eax, dword [rbx]
add rbx, 4
mov dword [r11 - 0x10], eax
mov ecx, dword [r11 - 0x2c]
xor ecx, eax
mov dword [r11 - 0xc], ecx
mov edx, dword [r11 - 0x28]
xor edx, ecx
mov dword [r11 - 8], edx
mov eax, dword [r11 - 0x24]
xor eax, edx
mov dword [r11 - 4], eax
cmp rbx, r14
jne 0x14000ed03
lea eax, [rbp + 0x1c]
mov ebx, 1
movsxd r11, eax
lea r10, [rdi + 0xf0]
add r11, 0xfffffffffffffffc
mov eax, dword [rdi + r11*4]
lea r11, [rdi + r11*4]
mov dword [rdi + 0xf0], eax
mov eax, dword [r11 + 4]
mov dword [rdi + 0xf4], eax
mov eax, dword [r11 + 8]
mov dword [rdi + 0xf8], eax
mov eax, dword [r11 + 0xc]
mov dword [rdi + 0xfc], eax
cmp dword [rdi + 0x1e0], ebx
jle 0x14000ef01
lea rsi, [0x140000000]
nop
mov r9d, dword [r11 - 0x10]
sub r11, 0x10
mov eax, r9d
add r10, 0x10
shr eax, 0x18
inc ebx
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x40080]
xor r8d, dword [rsi + rcx*4 + 0x40480]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x40880]
xor r8d, dword [rsi + rax*4 + 0x40c80]
mov dword [r10], r8d
mov r9d, dword [r11 + 4]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x40080]
xor r8d, dword [rsi + rcx*4 + 0x40480]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x40880]
xor r8d, dword [rsi + rax*4 + 0x40c80]
mov dword [r10 + 4], r8d
mov r9d, dword [r11 + 8]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x40080]
xor r8d, dword [rsi + rcx*4 + 0x40480]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x40880]
xor r8d, dword [rsi + rax*4 + 0x40c80]
mov dword [r10 + 8], r8d
mov r9d, dword [r11 + 0xc]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x40080]
xor r8d, dword [rsi + rcx*4 + 0x40480]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x40880]
xor r8d, dword [rsi + rax*4 + 0x40c80]
mov dword [r10 + 0xc], r8d
cmp ebx, dword [rdi + 0x1e0]
jl 0x14000edd0
mov eax, dword [r11 - 0x10]
mov dword [r10 + 0x10], eax
mov eax, dword [r11 - 0xc]
mov dword [r10 + 0x14], eax
mov eax, dword [r11 - 8]
mov dword [r10 + 0x18], eax
mov eax, dword [r11 - 4]
mov dword [r10 + 0x1c], eax
xor eax, eax
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov eax, 1
jmp 0x14000ef23
mov eax, 3
jmp 0x14000ef28