Function at 0x1404318a0
Capabilities:
Encrypt data using camellia

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x10
mov eax, 0xffffffdc
cmp edx, 1
ja 0x140431e24
vmovdqu xmm0, xmmword [r8]
vpshufb xmm0, xmm0, xmmword [0x14046eb80]
mov eax, dword [rcx]
vpxor xmm0, xmm0, xmmword [rcx + 4]
test eax, eax
je 0x140431dff
mov qword [rsp + 8], r9
vpextrd r12d, xmm0, 3
vpextrd r15d, xmm0, 2
vpextrd esi, xmm0, 1
vmovd edi, xmm0
add rcx, 0x44
dec eax
mov dword [rsp + 4], eax
lea r8, [0x14046ef50]
lea r10, [0x14046f050]
lea r11, [0x14046f150]
nop word cs:[rax + rax]
mov r14d, dword [rcx - 0x30]
xor r14d, edi
mov ebx, dword [rcx - 0x2c]
xor ebx, esi
mov r13d, r14d
mov ebp, r14d
movzx edx, r14b
shr r14, 0x18
movzx r14d, byte [r14 + r8]
shl r14d, 0x18
shr r13d, 0x10
movzx r13d, r13b
movzx r13d, byte [r13 + r10]
shl r13d, 0x10
or r13d, r14d
shr ebp, 8
movzx r14d, bpl
movzx r14d, byte [r14 + r11]
shl r14d, 8
or r14d, r13d
lea rax, [0x14046f250]
movzx ebp, byte [rdx + rax]
or ebp, r14d
mov edx, ebx
mov r14d, ebx
movzx r13d, bl
shr rbx, 0x18
movzx r9d, byte [rbx + r10]
mov ebx, r9d
shl ebx, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r11]
shl edx, 0x10
or edx, ebx
shr r14d, 8
movzx ebx, r14b
movzx ebx, byte [rbx + rax]
shl ebx, 8
or ebx, edx
movzx edx, byte [r13 + r8]
or edx, ebx
mov r14d, edx
shl r14d, 8
or r14d, r9d
xor r14d, ebp
mov ebx, r14d
rol ebx, 0x10
xor ebx, edx
xor r15d, ebx
rol ebx, 0x18
xor ebx, r14d
mov r14d, ebx
rol r14d, 0x18
xor r14d, r15d
xor ebx, r12d
mov r12d, dword [rcx - 0x28]
xor r12d, r14d
mov r15d, dword [rcx - 0x24]
xor r15d, ebx
mov edx, r12d
mov r9d, r12d
movzx r13d, r12b
shr r12, 0x18
movzx ebp, byte [r12 + r8]
shl ebp, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r10]
shl edx, 0x10
or edx, ebp
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + r11]
shl r9d, 8
or r9d, edx
movzx ebp, byte [r13 + rax]
or ebp, r9d
mov edx, r15d
mov r9d, r15d
movzx r12d, r15b
shr r15, 0x18
movzx r15d, byte [r15 + r10]
mov r13d, r15d
shl r13d, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r11]
shl edx, 0x10
or edx, r13d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + rax]
shl r9d, 8
or r9d, edx
movzx edx, byte [r12 + r8]
or edx, r9d
mov r9d, edx
shl r9d, 8
or r9d, r15d
xor r9d, ebp
mov ebp, r9d
rol ebp, 0x10
xor ebp, edx
xor edi, ebp
rol ebp, 0x18
xor ebp, r9d
mov r15d, ebp
rol r15d, 0x18
xor r15d, edi
xor ebp, esi
mov edi, dword [rcx - 0x20]
xor edi, r15d
mov esi, dword [rcx - 0x1c]
xor esi, ebp
mov edx, edi
mov r9d, edi
movzx r12d, dil
shr rdi, 0x18
movzx edi, byte [rdi + r8]
shl edi, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r10]
shl edx, 0x10
or edx, edi
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + r11]
shl r9d, 8
or r9d, edx
movzx edi, byte [r12 + rax]
or edi, r9d
mov edx, esi
mov r9d, esi
movzx r12d, sil
shr rsi, 0x18
movzx esi, byte [rsi + r10]
mov r13d, esi
shl r13d, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r11]
shl edx, 0x10
or edx, r13d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + rax]
shl r9d, 8
or r9d, edx
movzx edx, byte [r12 + r8]
or edx, r9d
mov r9d, edx
shl r9d, 8
or r9d, esi
xor r9d, edi
mov esi, r9d
rol esi, 0x10
xor esi, edx
xor r14d, esi
rol esi, 0x18
xor esi, r9d
mov r12d, esi
rol r12d, 0x18
xor r12d, r14d
xor esi, ebx
mov ebx, dword [rcx - 0x18]
xor ebx, r12d
mov edi, dword [rcx - 0x14]
xor edi, esi
mov edx, ebx
mov r9d, ebx
movzx r14d, bl
shr rbx, 0x18
movzx ebx, byte [rbx + r8]
shl ebx, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r10]
shl edx, 0x10
or edx, ebx
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + r11]
shl r9d, 8
or r9d, edx
movzx ebx, byte [r14 + rax]
or ebx, r9d
mov edx, edi
mov r9d, edi
movzx r14d, dil
shr rdi, 0x18
movzx edi, byte [rdi + r10]
mov r13d, edi
shl r13d, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r11]
shl edx, 0x10
or edx, r13d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + rax]
shl r9d, 8
or r9d, edx
movzx edx, byte [r14 + r8]
or edx, r9d
mov r9d, edx
shl r9d, 8
or r9d, edi
xor r9d, ebx
mov edi, r9d
rol edi, 0x10
xor edi, edx
xor r15d, edi
rol edi, 0x18
xor edi, r9d
mov ebx, edi
rol ebx, 0x18
xor ebx, r15d
xor edi, ebp
mov r15d, dword [rcx - 0x10]
xor r15d, ebx
mov r14d, dword [rcx - 0xc]
xor r14d, edi
mov edx, r15d
mov r9d, r15d
movzx r13d, r15b
shr r15, 0x18
movzx ebp, byte [r15 + r8]
shl ebp, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r10]
shl edx, 0x10
or edx, ebp
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + r11]
shl r9d, 8
or r9d, edx
movzx ebp, byte [r13 + rax]
or ebp, r9d
mov edx, r14d
mov r9d, r14d
movzx r15d, r14b
shr r14, 0x18
movzx r14d, byte [r14 + r10]
mov r13d, r14d
shl r13d, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r11]
shl edx, 0x10
or edx, r13d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + rax]
shl r9d, 8
or r9d, edx
movzx edx, byte [r15 + r8]
or edx, r9d
mov r9d, edx
shl r9d, 8
or r9d, r14d
xor r9d, ebp
mov ebp, r9d
rol ebp, 0x10
xor ebp, edx
xor r12d, ebp
rol ebp, 0x18
xor ebp, r9d
mov r14d, ebp
rol r14d, 0x18
xor r14d, r12d
xor ebp, esi
mov r15d, dword [rcx - 8]
xor r15d, r14d
mov esi, dword [rcx - 4]
xor esi, ebp
mov edx, r15d
mov r9d, r15d
movzx r12d, r15b
shr r15, 0x18
movzx r15d, byte [r15 + r8]
shl r15d, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r10]
shl edx, 0x10
or edx, r15d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + r11]
shl r9d, 8
or r9d, edx
movzx r15d, byte [r12 + rax]
or r15d, r9d
mov edx, esi
mov r9d, esi
movzx r12d, sil
shr rsi, 0x18
movzx esi, byte [rsi + r10]
mov r13d, esi
shl r13d, 0x18
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r11]
shl edx, 0x10
or edx, r13d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + rax]
shl r9d, 8
or r9d, edx
movzx edx, byte [r12 + r8]
or edx, r9d
mov r9d, edx
shl r9d, 8
or r9d, esi
xor r9d, r15d
mov r15d, r9d
rol r15d, 0x10
xor r15d, edx
xor ebx, r15d
rol r15d, 0x18
xor r15d, r9d
mov r12d, r15d
rol r12d, 0x18
xor r12d, ebx
xor r15d, edi
mov eax, dword [rsp + 4]
sub eax, 1
jb 0x140431de1
mov dword [rsp + 4], eax
mov esi, dword [rcx]
and esi, r12d
rol esi, 1
xor esi, r15d
mov edi, dword [rcx + 4]
or edi, esi
xor edi, r12d
mov r15d, dword [rcx + 0xc]
or r15d, ebp
xor r15d, r14d
mov r12d, dword [rcx + 8]
and r12d, r15d
rol r12d, 1
xor r12d, ebp
add rcx, 0x40
jmp 0x140431920
vmovd xmm0, r12d
vpinsrd xmm0, xmm0, r15d, 1
vpinsrd xmm0, xmm0, r14d, 2
vpinsrd xmm0, xmm0, ebp, 3
mov r9, qword [rsp + 8]
jmp 0x140431e03
add rcx, 0x14
vmovdqu xmm1, xmmword [rcx]
vpshufb xmm0, xmm0, xmmword [str._v_n_t_b]
vpshufb xmm1, xmm1, xmmword [0x14046eb80]
vpxor xmm0, xmm1, xmm0
vmovdqu xmmword [r9], xmm0
xor eax, eax
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret