Function at 0x466920
Capabilities:
Encrypt data using camellia

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffa8
mov ebx, edx
mov esi, eax
lea edi, [esp + 0x18]
lea ebp, [esp + 0x38]
mov eax, esi
call fcn.0040540c
cmp eax, 0x10
je 0x46695e
mov eax, esi
call fcn.0040540c
cmp eax, 0x18
je 0x46695e
mov eax, esi
call fcn.0040540c
cmp eax, 0x20
je 0x46695e
xor eax, eax
jmp 0x467198
xor eax, eax
mov al, byte [esi + 0xf]
xor edx, edx
mov dl, byte [esi + 0xe]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0xd]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0xc]
shl edx, 0x18
or eax, edx
mov dword [edi], eax
xor eax, eax
mov al, byte [esi + 0xb]
xor edx, edx
mov dl, byte [esi + 0xa]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 9]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 8]
shl edx, 0x18
or eax, edx
mov dword [edi + 4], eax
xor eax, eax
mov al, byte [esi + 7]
xor edx, edx
mov dl, byte [esi + 6]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 5]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 4]
shl edx, 0x18
or eax, edx
mov dword [edi + 8], eax
xor eax, eax
mov al, byte [esi + 3]
xor edx, edx
mov dl, byte [esi + 2]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi]
shl edx, 0x18
or eax, edx
mov dword [edi + 0xc], eax
mov eax, esi
call fcn.0040540c
cmp eax, 0x10
jne 0x466a1d
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x466b3c
mov eax, esi
call fcn.0040540c
cmp eax, 0x18
jne 0x466a90
xor eax, eax
mov al, byte [esi + 0x17]
xor edx, edx
mov dl, byte [esi + 0x16]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x15]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x14]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x30], eax
xor eax, eax
mov al, byte [esi + 0x13]
xor edx, edx
mov dl, byte [esi + 0x12]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x11]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x10]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
not eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
not eax
mov dword [esp + 0x2c], eax
jmp 0x466b3c
mov eax, esi
call fcn.0040540c
cmp eax, 0x20
jne 0x466b3c
xor eax, eax
mov al, byte [esi + 0x1f]
xor edx, edx
mov dl, byte [esi + 0x1e]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x1d]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x1c]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x28], eax
xor eax, eax
mov al, byte [esi + 0x1b]
xor edx, edx
mov dl, byte [esi + 0x1a]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x19]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x18]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x2c], eax
xor eax, eax
mov al, byte [esi + 0x17]
xor edx, edx
mov dl, byte [esi + 0x16]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x15]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x14]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x30], eax
xor eax, eax
mov al, byte [esi + 0x13]
xor edx, edx
mov dl, byte [esi + 0x12]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x11]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esi + 0x10]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [edi + 8]
xor eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [edi + 0xc]
xor eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [edi]
xor eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [edi + 4]
xor eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x10]
mov edx, 0x4dc13c
mov eax, esp
call fcn.004661f4
mov eax, dword [esp + 0x10]
xor dword [esp + 8], eax
mov eax, dword [esp + 0x14]
xor dword [esp + 0xc], eax
lea ecx, [esp + 0x10]
mov edx, 0x4dc144
lea eax, [esp + 8]
call fcn.004661f4
mov eax, dword [esp + 0x10]
xor dword [esp], eax
mov eax, dword [esp + 0x14]
xor dword [esp + 4], eax
mov eax, dword [edi + 8]
xor dword [esp], eax
mov eax, dword [edi + 0xc]
xor dword [esp + 4], eax
mov eax, dword [edi]
xor dword [esp + 8], eax
mov eax, dword [edi + 4]
xor dword [esp + 0xc], eax
lea ecx, [esp + 0x10]
mov edx, 0x4dc14c
mov eax, esp
call fcn.004661f4
mov eax, dword [esp + 0x10]
xor dword [esp + 8], eax
mov eax, dword [esp + 0x14]
xor dword [esp + 0xc], eax
lea ecx, [esp + 0x10]
mov edx, 0x4dc154
lea eax, [esp + 8]
call fcn.004661f4
mov eax, dword [esp + 0x10]
xor dword [esp], eax
mov eax, dword [esp + 0x14]
xor dword [esp + 4], eax
mov eax, dword [esp + 8]
mov dword [ebp], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 4], eax
mov eax, dword [esp]
mov dword [ebp + 8], eax
mov eax, dword [esp + 4]
mov dword [ebp + 0xc], eax
mov edx, dword [ebp + 8]
xor edx, dword [esp + 0x30]
mov dword [esp], edx
xor eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp]
xor eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp + 4]
xor eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x10]
mov edx, 0x4dc15c
mov eax, esp
call fcn.004661f4
mov eax, dword [esp + 0x10]
xor dword [esp + 8], eax
mov eax, dword [esp + 0x14]
xor dword [esp + 0xc], eax
lea ecx, [esp + 0x10]
mov edx, 0x4dc164
lea eax, [esp + 8]
call fcn.004661f4
mov eax, dword [esp + 0x10]
xor dword [esp], eax
mov eax, dword [esp + 0x14]
xor dword [esp + 4], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
mov eax, esi
call fcn.0040540c
cmp eax, 0x10
jne 0x466eb6
mov eax, dword [edi + 8]
mov dword [ebx + 0xf0], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xf4], eax
mov eax, dword [edi]
mov dword [ebx + 0xf8], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0xfc], eax
mov eax, dword [ebp + 8]
mov dword [ebx], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [ebp]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0xc], eax
mov eax, edi
mov edx, 0xf
call fcn.004663f0
mov eax, ebp
mov edx, 0xf
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x14], eax
mov eax, dword [edi]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0x2c], eax
mov eax, ebp
mov edx, 0xf
call fcn.004663f0
mov eax, dword [ebp + 8]
mov dword [ebx + 0xc0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xc4], eax
mov eax, dword [ebp]
mov dword [ebx + 0xc8], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0xcc], eax
mov eax, edi
mov edx, 0x1e
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0x30], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x34], eax
mov eax, dword [edi]
mov dword [ebx + 0x38], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x3c], eax
mov eax, ebp
mov edx, 0xf
call fcn.004663f0
mov eax, dword [ebp + 8]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x44], eax
mov eax, edi
mov edx, 0xf
call fcn.004663f0
mov eax, ebp
mov edx, 0xf
call fcn.004663f0
mov eax, dword [edi]
mov dword [ebx + 0x48], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0x5c], eax
mov eax, edi
mov edx, 0x11
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0xd0], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xd4], eax
mov eax, dword [edi]
mov dword [ebx + 0xd8], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0xdc], eax
mov eax, edi
mov edx, 0x11
call fcn.004663f0
mov eax, ebp
mov edx, 0x22
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0x60], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x64], eax
mov eax, dword [edi]
mov dword [ebx + 0x68], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x74], eax
mov eax, dword [ebp]
mov dword [ebx + 0x78], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0x7c], eax
mov eax, edi
mov edx, 0x11
call fcn.004663f0
mov eax, ebp
mov edx, 0x11
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0x80], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x84], eax
mov eax, dword [edi]
mov dword [ebx + 0x88], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x8c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x100], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x104], eax
mov eax, dword [ebp]
mov dword [ebx + 0x108], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0x10c], eax
jmp 0x467196
mov eax, dword [edi + 8]
mov dword [ebx + 0xf0], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xf4], eax
mov eax, dword [edi]
mov dword [ebx + 0xf8], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0xfc], eax
mov eax, dword [esp + 0x50]
mov dword [ebx], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0xc], eax
lea eax, [esp + 0x28]
mov edx, 0xf
call fcn.004663f0
mov eax, ebp
mov edx, 0xf
call fcn.004663f0
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0x2c], eax
lea eax, [esp + 0x28]
mov edx, 0xf
call fcn.004663f0
mov eax, dword [esp + 0x30]
mov dword [ebx + 0xc0], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0xc4], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0xc8], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xcc], eax
lea eax, [esp + 0x48]
mov edx, 0x1e
call fcn.004663f0
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x3c], eax
mov eax, edi
mov edx, 0x2d
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0x40], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x44], eax
mov eax, dword [edi]
mov dword [ebx + 0x48], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x4c], eax
mov eax, ebp
mov edx, 0x1e
call fcn.004663f0
mov eax, dword [ebp + 8]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0x5c], eax
mov eax, edi
mov edx, 0xf
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0xd0], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xd4], eax
mov eax, dword [edi]
mov dword [ebx + 0xd8], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0xdc], eax
lea eax, [esp + 0x28]
mov edx, 0x1e
call fcn.004663f0
lea eax, [esp + 0x48]
mov edx, 0x1e
call fcn.004663f0
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x60], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x64], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x68], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x6c], eax
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x70], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x74], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x78], eax
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x7c], eax
mov eax, edi
mov edx, 0x11
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0x80], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x84], eax
mov eax, dword [edi]
mov dword [ebx + 0x88], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x8c], eax
mov eax, ebp
mov edx, 0x20
call fcn.004663f0
mov eax, dword [ebp + 8]
mov dword [ebx + 0xe0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xe4], eax
mov eax, dword [ebp]
mov dword [ebx + 0xe8], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0xec], eax
lea eax, [esp + 0x28]
mov edx, 0x22
call fcn.004663f0
mov eax, ebp
mov edx, 0x11
call fcn.004663f0
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x90], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x98], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x9c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0xa0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xa4], eax
mov eax, dword [ebp]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp + 4]
mov dword [ebx + 0xac], eax
mov eax, edi
mov edx, 0x22
call fcn.004663f0
mov eax, dword [edi + 8]
mov dword [ebx + 0xb0], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xb4], eax
mov eax, dword [edi]
mov dword [ebx + 0xb8], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0xbc], eax
lea eax, [esp + 0x48]
mov edx, 0x33
call fcn.004663f0
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x100], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x104], eax
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x108], eax
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x10c], eax
mov al, 1
add esp, 0x58
pop ebp
pop edi
pop esi
pop ebx
ret