Function at 0x180004320
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 r15, [r8 + 0x10]
movzx edi, byte [rdx + 8]
mov rbx, r9
movzx esi, byte [rdx + 0xc]
shl ecx, 4
movsxd rax, ecx
movzx ecx, byte [rdx + 1]
lea rax, [r8 + rax*4]
shl ebp, 8
xor ebp, ecx
shl r14d, 8
movzx ecx, byte [rdx + 2]
mov r9d, dword [rax - 8]
shl edi, 8
shl esi, 8
shl ebp, 8
xor ebp, ecx
movzx ecx, byte [rdx + 3]
shl ebp, 8
xor ebp, ecx
movzx ecx, byte [rdx + 5]
xor ebp, dword [rax]
xor r14d, ecx
movzx ecx, byte [rdx + 6]
xor r9, rbp
shl r14d, 8
xor r14d, ecx
movzx ecx, byte [rdx + 7]
shl r14d, 8
xor r14d, ecx
movzx ecx, byte [rdx + 9]
xor r14d, dword [rax + 4]
xor edi, ecx
movzx ecx, byte [rdx + 0xa]
shl edi, 8
xor edi, ecx
movzx ecx, byte [rdx + 0xb]
shl edi, 8
xor edi, ecx
movzx ecx, byte [rdx + 0xd]
xor edi, dword [rax + 8]
xor esi, ecx
movzx ecx, byte [rdx + 0xe]
shl esi, 8
xor esi, ecx
movzx ecx, byte [rdx + 0xf]
shl esi, 8
xor esi, ecx
mov rcx, r9
xor esi, dword [rax + 0xc]
sub rax, 0x30
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x2c]
xor r9, r14
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
xor r10d, dword [r12 + rcx*4]
mov r9d, dword [rax + 0x20]
xor r10d, r11d
xor edi, r10d
mov ecx, r11d
shl ecx, 0x18
shr r11d, 8
add ecx, r11d
mov edx, edi
xor ecx, r10d
xor r9, rdx
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x24]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax + 0x18]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
xor ebp, r10d
shr r11d, 8
add ecx, r11d
mov edx, ebp
xor ecx, r10d
xor r9, rdx
xor r14d, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x1c]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
xor r10d, dword [r12 + rcx*4]
xor r10d, r11d
mov r9d, dword [rax + 0x10]
xor edi, r10d
mov ecx, r11d
mov edx, edi
shl ecx, 0x18
xor r9, rdx
shr r11d, 8
add ecx, r11d
xor ecx, r10d
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x14]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax + 8]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
xor ebp, r10d
shr r11d, 8
add ecx, r11d
mov edx, ebp
xor ecx, r10d
xor r9, rdx
xor r14d, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0xc]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
xor r10d, dword [r12 + rcx*4]
xor r10d, r11d
xor edi, r10d
mov r9d, dword [rax]
mov ecx, r11d
shl ecx, 0x18
shr r11d, 8
add ecx, r11d
mov edx, edi
xor ecx, r10d
xor r9, rdx
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 4]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
xor r10d, r11d
shl ecx, 0x18
shr r11d, 8
xor ebp, r10d
add ecx, r11d
xor ecx, r10d
xor r14d, ecx
cmp rax, r15
je 0x180004bd0
nop dword [rax]
mov edx, dword [rax - 8]
mov r9d, dword [rax - 0x18]
and edx, ebp
mov ecx, edx
shr ecx, 0x1f
lea ecx, [rcx + rdx*2]
mov edx, dword [rax - 0x10]
xor r14d, ecx
mov ecx, dword [rax - 0xc]
or ecx, esi
mov r10d, r14d
xor edi, ecx
mov ecx, dword [rax - 4]
or ecx, r14d
and edx, edi
xor ebp, ecx
sub rax, 0x40
mov ecx, edx
mov r8d, ebp
shr ecx, 0x1f
xor r9, r8
lea ecx, [rcx + rdx*2]
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x2c]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax + 0x20]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
shr r11d, 8
xor edi, r10d
add ecx, r11d
mov edx, edi
xor ecx, r10d
xor r9, rdx
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x24]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov r10d, dword [r12 + r8*4 + 0xc00]
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax + 0x18]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
shr r11d, 8
xor ebp, r10d
add ecx, r11d
mov edx, ebp
xor ecx, r10d
xor r9, rdx
xor r14d, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x1c]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax + 0x10]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
shr r11d, 8
xor edi, r10d
add ecx, r11d
mov edx, edi
xor ecx, r10d
xor r9, rdx
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0x14]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
mov r10d, dword [r12 + r8*4 + 0xc00]
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax + 8]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
shr r11d, 8
xor ebp, r10d
add ecx, r11d
mov edx, ebp
xor ecx, r10d
xor r9, rdx
xor r14d, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, r14d
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 0xc]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + r8*4 + 0xc00]
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
mov r9d, dword [rax]
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
shl ecx, 0x18
xor r10d, r11d
shr r11d, 8
xor edi, r10d
add ecx, r11d
mov edx, edi
xor ecx, r10d
xor r9, rdx
xor esi, ecx
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
mov r11d, dword [r12 + r8*4 + 0x800]
mov r10d, esi
xor r11d, dword [r12 + rdx*4 + 0xc00]
xor r11d, dword [r12 + rcx*4]
movzx ecx, r9b
mov r9d, dword [rax + 4]
xor r9, r10
xor r11d, dword [r12 + rcx*4 + 0x400]
mov rcx, r9
shr rcx, 0x10
movzx r8d, cl
mov rcx, r9
shr rcx, 8
mov r10d, dword [r12 + r8*4 + 0xc00]
movzx edx, cl
mov rcx, r9
shr rcx, 0x18
xor r10d, dword [r12 + rdx*4 + 0x400]
xor r10d, dword [r12 + rcx*4 + 0x800]
movzx ecx, r9b
xor r10d, dword [r12 + rcx*4]
mov ecx, r11d
xor r10d, r11d
shl ecx, 0x18
shr r11d, 8
xor ebp, r10d
add ecx, r11d
xor ecx, r10d
xor r14d, ecx
cmp rax, r15
jne 0x1800047c0
xor edi, dword [rax - 0x10]
xor esi, dword [rax - 0xc]
xor ebp, dword [rax - 8]
xor r14d, dword [rax - 4]
mov eax, edi
shr eax, 0x18
mov byte [rbx], al
mov eax, edi
shr eax, 0x10
mov byte [rbx + 1], al
mov eax, edi
shr eax, 8
mov byte [rbx + 2], al
mov eax, esi
shr eax, 0x18
mov byte [rbx + 4], al
mov eax, esi
shr eax, 0x10
mov byte [rbx + 5], al
mov eax, esi
shr eax, 8
mov byte [rbx + 6], al
mov eax, ebp
shr eax, 0x18
mov byte [rbx + 8], al
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 9], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0xa], al
mov eax, r14d
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, r14d
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, r14d
mov byte [rbx + 3], dil
mov rdi, qword [rsp + 0x38]
mov byte [rbx + 7], sil
mov rsi, qword [rsp + 0x30]
mov byte [rbx + 0xb], bpl
mov rbp, qword [rsp + 0x28]
shr eax, 8
mov byte [rbx + 0xe], al
mov byte [rbx + 0xf], r14b
mov rbx, qword [rsp + 0x20]
pop r15
pop r14
pop r12
ret
mov r9, rdx
mov rdx, rcx
mov ecx, dword [r8 + 0x110]
jmp 0x180004320