Function at 0x4a5c78
Capabilities:
Encrypt data using camellia
Resolve function by parsing pe exports

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.00406ae0
cmp eax, 0x10
je 0x4a5cb6
mov eax, esi
call fcn.00406ae0
cmp eax, 0x18
je 0x4a5cb6
mov eax, esi
call fcn.00406ae0
cmp eax, 0x20
je 0x4a5cb6
xor eax, eax
jmp 0x4a64c8
movzx eax, byte [esi + 0xf]
movzx edx, byte [esi + 0xe]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0xd]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 0xc]
shl edx, 0x18
or eax, edx
mov dword [edi], eax
movzx eax, byte [esi + 0xb]
movzx edx, byte [esi + 0xa]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 9]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 8]
shl edx, 0x18
or eax, edx
mov dword [edi + 4], eax
movzx eax, byte [esi + 7]
movzx edx, byte [esi + 6]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 5]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 4]
shl edx, 0x18
or eax, edx
mov dword [edi + 8], eax
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 1]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi]
shl edx, 0x18
or eax, edx
mov dword [edi + 0xc], eax
mov eax, esi
call fcn.00406ae0
cmp eax, 0x10
jne 0x4a5d65
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 0x4a5e6c
mov eax, esi
call fcn.00406ae0
cmp eax, 0x18
jne 0x4a5dd0
movzx eax, byte [esi + 0x17]
movzx edx, byte [esi + 0x16]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0x15]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 0x14]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x30], eax
movzx eax, byte [esi + 0x13]
movzx edx, byte [esi + 0x12]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0x11]
shl edx, 0x10
or eax, edx
movzx edx, 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 0x4a5e6c
mov eax, esi
call fcn.00406ae0
cmp eax, 0x20
jne 0x4a5e6c
movzx eax, byte [esi + 0x1f]
movzx edx, byte [esi + 0x1e]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0x1d]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 0x1c]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x28], eax
movzx eax, byte [esi + 0x1b]
movzx edx, byte [esi + 0x1a]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0x19]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 0x18]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 0x17]
movzx edx, byte [esi + 0x16]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0x15]
shl edx, 0x10
or eax, edx
movzx edx, byte [esi + 0x14]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x30], eax
movzx eax, byte [esi + 0x13]
movzx edx, byte [esi + 0x12]
shl edx, 8
or eax, edx
movzx edx, byte [esi + 0x11]
shl edx, 0x10
or eax, edx
movzx edx, 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, 0x5dd6c8
mov eax, esp
call fcn.004a5560
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, 0x5dd6d0
lea eax, [esp + 8]
call fcn.004a5560
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, 0x5dd6d8
mov eax, esp
call fcn.004a5560
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, 0x5dd6e0
lea eax, [esp + 8]
call fcn.004a5560
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, 0x5dd6e8
mov eax, esp
call fcn.004a5560
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, 0x5dd6f0
lea eax, [esp + 8]
call fcn.004a5560
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.00406ae0
cmp eax, 0x10
jne 0x4a61e6
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.004a574c
mov eax, ebp
mov edx, 0xf
call fcn.004a574c
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.004a574c
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.004a574c
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.004a574c
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.004a574c
mov eax, ebp
mov edx, 0xf
call fcn.004a574c
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.004a574c
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.004a574c
mov eax, ebp
mov edx, 0x22
call fcn.004a574c
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.004a574c
mov eax, ebp
mov edx, 0x11
call fcn.004a574c
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 0x4a64c6
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.004a574c
mov eax, ebp
mov edx, 0xf
call fcn.004a574c
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.004a574c
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.004a574c
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.004a574c
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.004a574c
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.004a574c
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.004a574c
lea eax, [esp + 0x48]
mov edx, 0x1e
call fcn.004a574c
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.004a574c
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.004a574c
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.004a574c
mov eax, ebp
mov edx, 0x11
call fcn.004a574c
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.004a574c
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.004a574c
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