Function at 0x4504a0
Capabilities:
Encrypt data using aes

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 8
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
test esi, esi
je 0x4507d0
test edx, edx
je 0x4507d0
cmp eax, 0xc0
je 0x450620
cmp eax, 0x100
je 0x4504e7
add eax, 0xffffff80
je 0x450556
mov eax, 0xfffffffe
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [edx + 0xf0], 0xe
mov ebx, dword [esi]
cmp eax, 0xc0
bswap ebx
mov dword [edx], ebx
mov dword [esp], ebx
mov ebx, dword [esi + 4]
bswap ebx
mov dword [edx + 4], ebx
mov edi, dword [esi + 8]
mov dword [esp + 4], ebx
bswap edi
mov dword [edx + 8], edi
mov ebp, dword [esi + 0xc]
bswap ebp
mov dword [edx + 0xc], ebp
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [edx + 0x10], ecx
mov ebx, dword [esi + 0x14]
bswap ebx
mov dword [edx + 0x14], ebx
je 0x450728
mov ecx, dword [esi + 0x18]
cmp eax, 0x100
bswap ecx
mov dword [edx + 0x18], ecx
mov ebx, dword [esi + 0x1c]
bswap ebx
mov dword [edx + 0x1c], ebx
je 0x450630
xor eax, eax
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [edx + 0xf0], 0xa
mov ebp, dword [esi]
xor ebx, ebx
mov dword [esp], ebx
bswap ebp
mov dword [edx], ebp
mov edi, dword [esi + 4]
bswap edi
mov dword [edx + 4], edi
mov eax, dword [esi + 8]
bswap eax
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
mov dword [esp + 4], eax
bswap ecx
mov dword [edx + 0xc], ecx
jmp 0x4505a2
add edx, 0x10
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov ebp, dword [edx]
mov edi, dword [edx + 4]
mov dword [esp + 4], eax
movzx eax, cl
mov esi, ecx
mov ebx, dword [esp]
shr esi, 0x18
mov eax, dword [eax*4 + 0x577d80]
movzx esi, byte [esi*4 + 0x577980]
add dword [esp], 1
and eax, 0xff00
xor eax, esi
mov esi, ecx
shr esi, 0x10
xor eax, dword [ebx*4 + 0x576040]
mov ebx, esi
movzx esi, bl
mov esi, dword [esi*4 + 0x577580]
and esi, 0xff000000
xor eax, esi
movzx esi, ch
mov esi, dword [esi*4 + 0x577180]
and esi, 0xff0000
xor eax, esi
xor eax, ebp
mov dword [edx + 0x10], eax
xor eax, edi
mov dword [edx + 0x14], eax
xor eax, dword [esp + 4]
mov dword [edx + 0x18], eax
xor eax, ecx
cmp dword [esp], 0xa
mov dword [edx + 0x1c], eax
jne 0x450590
xor eax, eax
jmp 0x45054e
mov dword [edx + 0xf0], 0xc
jmp 0x4504f1
xor esi, esi
jmp 0x4506b0
mov ecx, ebp
mov eax, ebp
shr ecx, 0x18
movzx edi, al
mov ecx, dword [ecx*4 + 0x577580]
add edx, 0x20
movzx edi, byte [edi*4 + 0x577980]
and ecx, 0xff000000
xor ecx, edi
mov edi, ebp
shr edi, 0x10
mov eax, edi
movzx edi, al
mov eax, ebp
mov edi, dword [edi*4 + 0x577180]
movzx eax, ah
mov eax, dword [eax*4 + 0x577d80]
xor ecx, dword [edx - 0x10]
and edi, 0xff0000
xor ecx, edi
and eax, 0xff00
xor ecx, eax
mov dword [edx + 0x10], ecx
xor ecx, dword [edx - 0xc]
mov dword [edx + 0x14], ecx
xor ecx, dword [edx - 8]
mov dword [edx + 0x18], ecx
xor ecx, ebx
mov dword [edx + 0x1c], ecx
mov eax, dword [edx]
mov ebx, dword [edx + 0x1c]
mov edi, dword [edx + 8]
mov ebp, dword [edx + 0xc]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], eax
movzx eax, bl
mov ecx, ebx
shr ecx, 0x18
mov eax, dword [eax*4 + 0x577d80]
movzx ecx, byte [ecx*4 + 0x577980]
and eax, 0xff00
xor eax, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x577580]
xor eax, dword [esi*4 + 0x576040]
add esi, 1
and ecx, 0xff000000
xor eax, ecx
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x577180]
and ecx, 0xff0000
xor eax, ecx
xor eax, dword [esp]
mov dword [edx + 0x20], eax
xor eax, dword [esp + 4]
mov dword [edx + 0x24], eax
xor eax, edi
xor ebp, eax
cmp esi, 7
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ebp
jne 0x450634
xor eax, eax
jmp 0x45054e
xor esi, esi
jmp 0x450753
xor edi, dword [edx + 0x10]
add edx, 0x18
mov dword [edx + 0x10], edi
xor edi, ebx
mov dword [edx + 0x14], edi
mov eax, dword [edx]
mov ebx, dword [edx + 0x14]
mov edi, dword [edx + 8]
mov ebp, dword [edx + 0xc]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], eax
movzx eax, bl
mov ecx, ebx
shr ecx, 0x18
mov eax, dword [eax*4 + 0x577d80]
movzx ecx, byte [ecx*4 + 0x577980]
and eax, 0xff00
xor eax, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x577580]
xor eax, dword [esi*4 + 0x576040]
add esi, 1
and ecx, 0xff000000
xor eax, ecx
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x577180]
and ecx, 0xff0000
xor eax, ecx
xor eax, dword [esp]
mov dword [edx + 0x18], eax
xor eax, dword [esp + 4]
xor edi, eax
mov dword [edx + 0x20], edi
xor edi, ebp
cmp esi, 8
mov dword [edx + 0x1c], eax
mov dword [edx + 0x24], edi
jne 0x450730
xor eax, eax
jmp 0x45054e
mov eax, 0xffffffff
jmp 0x4504df