Function at 0x14002ec6c
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r10, r8
mov r9, rcx
test rcx, rcx
je 0x14002f1b5
test r8, r8
je 0x14002f1b5
lea eax, [rdx - 0x80]
test eax, 0xffffff3f
jne 0x14002f1ae
cmp edx, 0x140
je 0x14002f1ae
mov ebx, 0x80
lea r8d, [rbx + 0x40]
cmp edx, ebx
jne 0x14002ecd4
mov dword [r10 + 0xf0], 0xa
jmp 0x14002ece9
mov eax, 0xe
cmp edx, r8d
lea ecx, [rax - 2]
cmove eax, ecx
mov dword [r10 + 0xf0], eax
movzx eax, byte [r9 + 1]
lea rdi, [r10 + 4]
movzx ebp, byte [r9]
shl ebp, 8
xor ebp, eax
movzx eax, byte [r9 + 2]
shl ebp, 8
xor ebp, eax
movzx eax, byte [r9 + 3]
shl ebp, 8
xor ebp, eax
mov dword [r10], ebp
movzx eax, byte [r9 + 5]
movzx r14d, byte [r9 + 4]
shl r14d, 8
xor r14d, eax
movzx eax, byte [r9 + 6]
shl r14d, 8
xor r14d, eax
movzx eax, byte [r9 + 7]
shl r14d, 8
xor r14d, eax
mov dword [rdi], r14d
movzx eax, byte [r9 + 9]
movzx r11d, byte [r9 + 8]
shl r11d, 8
xor r11d, eax
movzx eax, byte [r9 + 0xa]
shl r11d, 8
xor r11d, eax
movzx eax, byte [r9 + 0xb]
shl r11d, 8
xor r11d, eax
mov dword [r10 + 8], r11d
movzx eax, byte [r9 + 0xd]
movzx esi, byte [r9 + 0xc]
shl esi, 8
xor esi, eax
movzx eax, byte [r9 + 0xe]
shl esi, 8
xor esi, eax
movzx eax, byte [r9 + 0xf]
shl esi, 8
xor esi, eax
mov dword [r10 + 0xc], esi
cmp edx, ebx
jne 0x14002ee88
lea rbx, str.ccccwwww
mov eax, esi
shr rax, 0x10
mov r15d, 0xff000000
movzx ecx, al
mov r12d, 0xff0000
mov eax, esi
mov r13d, 0xff00
shr rax, 8
mov r8d, dword [rbx + rcx*4]
btc r8d, 0x18
movzx ecx, al
and r8d, r15d
mov eax, dword [rbx + rcx*4]
and eax, r12d
xor r8d, eax
mov eax, esi
shr rax, 0x18
movzx eax, byte [rbx + rax*4]
xor r8d, eax
movzx eax, sil
mov ecx, dword [rbx + rax*4]
and ecx, r13d
xor r8d, ecx
xor r8d, ebp
mov dword [r10 + 0x10], r8d
xor r8d, r14d
mov dword [r10 + 0x14], r8d
xor r8d, r11d
mov dword [r10 + 0x18], r8d
xor r8d, esi
mov dword [r10 + 0x1c], r8d
lea rsi, [0x140140064]
lea rdi, [rdi + 0x10]
mov r8d, dword [rdi + 8]
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r8d
shr rax, 0x10
mov edx, dword [rbx + rcx*4]
and edx, r12d
movzx ecx, al
mov eax, dword [rbx + rcx*4]
and eax, r15d
xor edx, eax
mov eax, r8d
shr rax, 0x18
movzx eax, byte [rbx + rax*4]
xor edx, eax
movzx eax, r8b
mov ecx, dword [rbx + rax*4]
lea rax, [0x140140088]
and ecx, r13d
xor edx, ecx
xor edx, dword [rdi - 4]
xor edx, dword [rsi]
add rsi, 4
mov dword [rdi + 0xc], edx
xor edx, dword [rdi]
mov dword [rdi + 0x10], edx
xor edx, dword [rdi + 4]
mov dword [rdi + 0x14], edx
xor edx, r8d
mov dword [rdi + 0x18], edx
cmp rsi, rax
jne 0x14002ee17
jmp 0x14002f1aa
movzx eax, byte [r9 + 0x11]
movzx ecx, byte [r9 + 0x10]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x12]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x13]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x10], ecx
movzx eax, byte [r9 + 0x15]
movzx ecx, byte [r9 + 0x14]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x16]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x17]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x14], ecx
cmp edx, r8d
jne 0x14002eff3
mov edx, ecx
lea rbx, str.ccccwwww
mov eax, ecx
mov r15d, 0xff000000
shr rax, 0x10
mov r12d, 0xff0000
movzx ecx, al
mov r13d, 0xff00
mov eax, edx
shr rax, 8
mov r8d, dword [rbx + rcx*4]
btc r8d, 0x18
movzx ecx, al
and r8d, r15d
mov eax, dword [rbx + rcx*4]
and eax, r12d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [rbx + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [rbx + rax*4]
and ecx, r13d
xor r8d, ecx
xor r8d, ebp
mov dword [r10 + 0x18], r8d
xor r8d, r14d
mov dword [r10 + 0x1c], r8d
xor r8d, r11d
mov dword [r10 + 0x20], r8d
xor r8d, esi
mov dword [r10 + 0x24], r8d
lea rsi, [0x140140064]
add r10, 0x28
mov eax, dword [r10 - 0x18]
xor eax, dword [r10 - 4]
mov dword [r10], eax
xor eax, dword [r10 - 0x14]
mov dword [r10 + 4], eax
lea r10, [r10 + 0x18]
mov edx, dword [r10 - 0x14]
mov eax, edx
shr rax, 8
movzx ecx, al
mov eax, edx
shr rax, 0x10
mov r8d, dword [rbx + rcx*4]
and r8d, r12d
movzx ecx, al
mov eax, dword [rbx + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [rbx + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [rbx + rax*4]
lea rax, [0x140140080]
and ecx, r13d
xor r8d, ecx
xor r8d, dword [r10 - 0x28]
xor r8d, dword [rsi]
add rsi, 4
mov dword [r10 - 0x10], r8d
xor r8d, dword [r10 - 0x24]
mov dword [r10 - 0xc], r8d
xor r8d, dword [r10 - 0x20]
mov dword [r10 - 8], r8d
xor r8d, dword [r10 - 0x1c]
mov dword [r10 - 4], r8d
cmp rsi, rax
jne 0x14002ef61
jmp 0x14002f1aa
movzx eax, byte [r9 + 0x19]
movzx ecx, byte [r9 + 0x18]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1a]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1b]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x18], ecx
movzx eax, byte [r9 + 0x1d]
movzx ecx, byte [r9 + 0x1c]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1e]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1f]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x1c], ecx
cmp edx, 0x100
jne 0x14002f1aa
mov edx, ecx
lea rbx, str.ccccwwww
mov eax, ecx
lea rdi, [r10 + 0x30]
shr rax, 0x10
mov r15d, 0xff000000
movzx ecx, al
mov r12d, 0xff0000
mov eax, edx
mov r13d, 0xff00
shr rax, 8
mov r8d, dword [rbx + rcx*4]
movzx ecx, al
btc r8d, 0x18
and r8d, r15d
mov eax, dword [rbx + rcx*4]
and eax, r12d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [rbx + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [rbx + rax*4]
and ecx, r13d
xor r8d, ecx
xor r8d, ebp
mov dword [r10 + 0x20], r8d
xor r8d, r14d
xor r11d, r8d
mov dword [r10 + 0x24], r8d
mov dword [r10 + 0x28], r11d
xor r11d, esi
mov dword [r10 + 0x2c], r11d
lea rsi, [0x140140064]
mov edx, dword [rdi - 4]
mov eax, edx
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 8
mov r8d, dword [rbx + rcx*4]
and r8d, r12d
movzx ecx, al
mov eax, dword [rbx + rcx*4]
and eax, r13d
xor r8d, eax
mov eax, edx
shr rax, 0x18
mov ecx, dword [rbx + rax*4]
and ecx, r15d
movzx eax, dl
xor r8d, ecx
movzx ecx, byte [rbx + rax*4]
xor r8d, ecx
xor r8d, dword [rdi - 0x20]
mov dword [rdi], r8d
xor r8d, dword [rdi - 0x1c]
mov dword [rdi + 4], r8d
xor r8d, dword [rdi - 0x18]
mov dword [rdi + 8], r8d
xor r8d, dword [rdi - 0x14]
mov dword [rdi + 0xc], r8d
call fcn.140091cfc
lea rdi, [rdi + 0x20]
mov edx, dword [rdi - 0x14]
mov eax, edx
shr rax, 8
movzx ecx, al
mov eax, edx
shr rax, 0x10
mov r8d, dword [rbx + rcx*4]
and r8d, r12d
movzx ecx, al
mov eax, dword [rbx + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [rbx + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [rbx + rax*4]
lea rax, [0x14014007c]
and ecx, r13d
xor r8d, ecx
xor r8d, dword [rdi - 0x30]
xor r8d, dword [rsi]
add rsi, 4
mov dword [rdi - 0x10], r8d
xor r8d, dword [rdi - 0x2c]
mov dword [rdi - 0xc], r8d
xor r8d, dword [rdi - 0x28]
mov dword [rdi - 8], r8d
xor r8d, dword [rdi - 0x24]
mov dword [rdi - 4], r8d
cmp rsi, rax
jne 0x14002f0cf
xor eax, eax
jmp 0x14002f1b8
mov eax, 0xfffffffe
jmp 0x14002f1b8
or eax, 0xffffffff
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret