Function at 0x4d1d20
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.00405f30
cmp eax, 0x10
je 0x4d1d5e
mov eax, esi
call fcn.00405f30
cmp eax, 0x18
je 0x4d1d5e
mov eax, esi
call fcn.00405f30
cmp eax, 0x20
je 0x4d1d5e
xor eax, eax
jmp 0x4d2570
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.00405f30
cmp eax, 0x10
jne 0x4d1e0d
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 0x4d1f14
mov eax, esi
call fcn.00405f30
cmp eax, 0x18
jne 0x4d1e78
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 0x4d1f14
mov eax, esi
call fcn.00405f30
cmp eax, 0x20
jne 0x4d1f14
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, 0x5ac720
mov eax, esp
call fcn.004d1608
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, 0x5ac728
lea eax, [esp + 8]
call fcn.004d1608
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, 0x5ac730
mov eax, esp
call fcn.004d1608
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, 0x5ac738
lea eax, [esp + 8]
call fcn.004d1608
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, 0x5ac740
mov eax, esp
call fcn.004d1608
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, 0x5ac748
lea eax, [esp + 8]
call fcn.004d1608
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.00405f30
cmp eax, 0x10
jne 0x4d228e
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.004d17f4
mov eax, ebp
mov edx, 0xf
call fcn.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
mov eax, ebp
mov edx, 0xf
call fcn.004d17f4
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.004d17f4
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.004d17f4
mov eax, ebp
mov edx, 0x22
call fcn.004d17f4
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.004d17f4
mov eax, ebp
mov edx, 0x11
call fcn.004d17f4
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 0x4d256e
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.004d17f4
mov eax, ebp
mov edx, 0xf
call fcn.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
lea eax, [esp + 0x48]
mov edx, 0x1e
call fcn.004d17f4
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.004d17f4
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.004d17f4
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.004d17f4
mov eax, ebp
mov edx, 0x11
call fcn.004d17f4
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.004d17f4
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.004d17f4
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