Function at 0x1400ca36a
Capabilities:
Encode data using xor

Disassembly:
jmp 0x140109050
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 0x14010908b
lea r8d, [rcx + 0x7f]
lea rcx, str.key___NULL
lea rdx, str.srcciphers_aes_aes.c
call fcn.1400cabda
test rdi, rdi
jne 0x1401090a9
mov r8d, 0x80
lea rdx, str.srcciphers_aes_aes.c
lea rcx, str.skey___NULL
call fcn.1400cabda
lea eax, [rbp - 0x10]
test eax, 0xffffffe7
jne 0x140109614
cmp ebp, 0x28
je 0x140109614
test esi, esi
je 0x1401090e4
mov eax, ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [rax*2 + 6]
cmp esi, eax
je 0x1401090e4
mov eax, 4
jmp 0x1401095f8
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 0x14010920e
call fcn.14010a7d0
mov ecx, dword [r11]
lea rbx, [0x140282ce4]
mov edx, dword [rdi + 8]
xor eax, esi
btc eax, 0x18
lea rsi, [0x140282d08]
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.14010a7d0
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 0x1401091d0
jmp 0x14010944a
cmp ebp, 0x18
jne 0x140109300
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.14010a7d0
mov ecx, dword [r11]
lea rbx, [0x140282ce4]
mov edx, dword [rdi + 8]
lea r11, [rdi + 0x28]
xor eax, esi
lea r14, [0x140282d00]
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.14010a7d0
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 0x1401092a0
jmp 0x14010944a
cmp ebp, 0x20
jne 0x14010960d
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.14010a7d0
mov ecx, dword [r11]
lea rbx, [0x140282ce4]
mov edx, dword [rdi + 8]
lea r11, [rdi + 0x30]
xor eax, esi
lea r14, [0x140282cfc]
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.14010a7d0
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.14010a7d0
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 0x1401093d3
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 0x1401095d1
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 + 0x281ce0]
xor r8d, dword [rsi + rcx*4 + 0x2820e0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x2824e0]
xor r8d, dword [rsi + rax*4 + 0x2828e0]
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 + 0x281ce0]
xor r8d, dword [rsi + rcx*4 + 0x2820e0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x2824e0]
xor r8d, dword [rsi + rax*4 + 0x2828e0]
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 + 0x281ce0]
xor r8d, dword [rsi + rcx*4 + 0x2820e0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x2824e0]
xor r8d, dword [rsi + rax*4 + 0x2828e0]
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 + 0x281ce0]
xor r8d, dword [rsi + rcx*4 + 0x2820e0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x2824e0]
xor r8d, dword [rsi + rax*4 + 0x2828e0]
mov dword [r10 + 0xc], r8d
cmp ebx, dword [rdi + 0x1e0]
jl 0x1401094a0
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 0x1401095f3
mov eax, 3
jmp 0x1401095f8