Function at 0x180005a40
Capabilities:
Encrypt data using camellia

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
movzx ebp, byte [rdx]
lea r12, [0x1800f6620]
movzx r14d, byte [rdx + 4]
lea rbx, [r8 + 0x10]
movzx edi, byte [rdx + 8]
movzx esi, byte [rdx + 0xc]
shl ebp, 8
shl r14d, 8
shl edi, 8
shl esi, 8
shl ecx, 4
movsxd rax, ecx
lea r15, [r8 + rax*4]
movzx eax, byte [rdx + 1]
xor ebp, eax
movzx eax, byte [rdx + 2]
shl ebp, 8
xor ebp, eax
movzx eax, byte [rdx + 3]
shl ebp, 8
xor ebp, eax
movzx eax, byte [rdx + 5]
xor ebp, dword [r8]
xor r14d, eax
movzx eax, byte [rdx + 6]
shl r14d, 8
xor r14d, eax
movzx eax, byte [rdx + 7]
shl r14d, 8
xor r14d, eax
movzx eax, byte [rdx + 9]
xor r14d, dword [r8 + 4]
xor edi, eax
movzx eax, byte [rdx + 0xa]
shl edi, 8
xor edi, eax
movzx eax, byte [rdx + 0xb]
shl edi, 8
xor edi, eax
movzx eax, byte [rdx + 0xd]
xor edi, dword [r8 + 8]
xor esi, eax
movzx eax, byte [rdx + 0xe]
shl esi, 8
xor esi, eax
movzx eax, byte [rdx + 0xf]
shl esi, 8
xor esi, eax
xor esi, dword [r8 + 0xc]
mov r8d, dword [rbx]
xor r8, rbp
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 4]
xor r8, r14
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
xor r10d, dword [r12 + rax*4]
xor r10d, r11d
xor edi, r10d
mov r8d, dword [rbx + 8]
mov eax, r11d
shl eax, 0x18
shr r11d, 8
add eax, r11d
mov ecx, edi
xor eax, r10d
xor r8, rcx
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0xc]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x10]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
xor ebp, r10d
shr r11d, 8
add eax, r11d
mov ecx, ebp
xor eax, r10d
xor r8, rcx
xor r14d, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x14]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
xor r10d, dword [r12 + rax*4]
xor r10d, r11d
xor edi, r10d
mov ecx, edi
mov r8d, dword [rbx + 0x18]
mov eax, r11d
shl eax, 0x18
xor r8, rcx
shr r11d, 8
add eax, r11d
xor eax, r10d
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x1c]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x20]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
xor ebp, r10d
shr r11d, 8
add eax, r11d
mov ecx, ebp
xor eax, r10d
xor r8, rcx
xor r14d, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x24]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
xor r10d, dword [r12 + rax*4]
mov eax, r11d
xor r10d, r11d
xor edi, r10d
mov ecx, edi
mov r8d, dword [rbx + 0x28]
shl eax, 0x18
xor r8, rcx
shr r11d, 8
add eax, r11d
xor eax, r10d
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x2c]
add rbx, 0x30
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
xor r10d, dword [r12 + rax*4]
mov eax, r11d
xor r10d, r11d
shl eax, 0x18
shr r11d, 8
xor ebp, r10d
add eax, r11d
xor eax, r10d
xor r14d, eax
cmp rbx, r15
je 0x1800062d3
mov ecx, dword [rbx]
mov r8d, dword [rbx + 0x10]
and ecx, ebp
mov eax, ecx
shr eax, 0x1f
lea eax, [rax + rcx*2]
mov ecx, dword [rbx + 8]
xor r14d, eax
mov eax, dword [rbx + 0xc]
or eax, esi
mov r10d, r14d
xor edi, eax
mov eax, dword [rbx + 4]
or eax, r14d
and ecx, edi
xor ebp, eax
mov eax, ecx
shr eax, 0x1f
mov edx, ebp
xor r8, rdx
lea eax, [rax + rcx*2]
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x14]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x18]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
shr r11d, 8
xor edi, r10d
add eax, r11d
mov ecx, edi
xor eax, r10d
xor r8, rcx
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x1c]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
mov r10d, dword [r12 + rdx*4 + 0xc00]
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x20]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
shr r11d, 8
xor ebp, r10d
add eax, r11d
mov ecx, ebp
xor eax, r10d
xor r8, rcx
xor r14d, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x24]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x28]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
shr r11d, 8
xor edi, r10d
add eax, r11d
mov ecx, edi
xor eax, r10d
xor r8, rcx
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x2c]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
mov r10d, dword [r12 + rdx*4 + 0xc00]
shr rax, 0x18
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x30]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
shr r11d, 8
xor ebp, r10d
add eax, r11d
mov ecx, ebp
xor eax, r10d
xor r8, rcx
xor r14d, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x34]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r10d, dword [r12 + rdx*4 + 0xc00]
xor r10d, dword [r12 + rcx*4 + 0x400]
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
mov r8d, dword [rbx + 0x38]
xor r10d, dword [r12 + rax*4]
mov eax, r11d
shl eax, 0x18
xor r10d, r11d
shr r11d, 8
xor edi, r10d
add eax, r11d
mov ecx, edi
xor eax, r10d
xor r8, rcx
xor esi, eax
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov rax, r8
shr rax, 0x18
mov r11d, dword [r12 + rdx*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rcx*4 + 0xc00]
xor r11d, dword [r12 + rax*4]
movzx eax, r8b
mov r8d, dword [rbx + 0x3c]
xor r8, r10
xor r11d, dword [r12 + rax*4 + 0x400]
mov rax, r8
shr rax, 0x10
movzx edx, al
mov rax, r8
shr rax, 8
movzx ecx, al
mov r10d, dword [r12 + rdx*4 + 0xc00]
mov rax, r8
xor r10d, dword [r12 + rcx*4 + 0x400]
add rbx, 0x40
shr rax, 0x18
xor r10d, dword [r12 + rax*4 + 0x800]
movzx eax, r8b
xor r10d, dword [r12 + rax*4]
mov eax, r11d
xor r10d, r11d
shl eax, 0x18
shr r11d, 8
xor ebp, r10d
add eax, r11d
xor eax, r10d
xor r14d, eax
cmp rbx, r15
jne 0x180005ed0
xor edi, dword [rbx]
xor esi, dword [rbx + 4]
mov eax, edi
xor ebp, dword [rbx + 8]
xor r14d, dword [rbx + 0xc]
mov rbx, qword [rsp + 0x20]
shr eax, 0x18
mov byte [r9], al
mov eax, edi
shr eax, 0x10
mov byte [r9 + 1], al
mov eax, edi
shr eax, 8
mov byte [r9 + 2], al
mov eax, esi
shr eax, 0x18
mov byte [r9 + 4], al
mov eax, esi
shr eax, 0x10
mov byte [r9 + 5], al
mov eax, esi
shr eax, 8
mov byte [r9 + 6], al
mov eax, ebp
shr eax, 0x18
mov byte [r9 + 8], al
mov eax, ebp
shr eax, 0x10
mov byte [r9 + 9], al
mov eax, ebp
shr eax, 8
mov byte [r9 + 0xa], al
mov eax, r14d
shr eax, 0x18
mov byte [r9 + 0xc], al
mov eax, r14d
shr eax, 0x10
mov byte [r9 + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [r9 + 3], dil
mov rdi, qword [rsp + 0x38]
mov byte [r9 + 7], sil
mov rsi, qword [rsp + 0x30]
mov byte [r9 + 0xb], bpl
mov rbp, qword [rsp + 0x28]
mov byte [r9 + 0xe], al
mov byte [r9 + 0xf], r14b
pop r15
pop r14
pop r12
ret
mov r9, rdx
mov rdx, rcx
mov ecx, dword [r8 + 0x110]
jmp 0x180005a40