Function at 0x554050
Capabilities:
Encrypt data using aes

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
xor ecx, ecx
test edx, edx
je 0x554069
test esi, esi
jne 0x554071
or eax, 0xffffffff
jmp 0x55444c
cmp ebx, 0x80
je 0x554093
cmp ebx, 0xc0
je 0x554093
cmp ebx, 0x100
je 0x554093
mov eax, 0xfffffffe
jmp 0x55444c
mov eax, esi
cmp ebx, 0x80
jne 0x5540a9
mov dword [esi + 0xf0], 0xa
jmp 0x5540c7
cmp ebx, 0xc0
jne 0x5540bd
mov dword [esi + 0xf0], 0xc
jmp 0x5540c7
mov dword [esi + 0xf0], 0xe
movzx esi, byte [edx]
movzx edi, byte [edx + 1]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 2]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 3]
xor esi, edi
mov dword [eax], esi
movzx esi, byte [edx + 4]
movzx edi, byte [edx + 5]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 6]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 7]
xor esi, edi
mov dword [eax + 4], esi
movzx esi, byte [edx + 8]
movzx edi, byte [edx + 9]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 0xa]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 0xb]
xor esi, edi
mov dword [eax + 8], esi
movzx esi, byte [edx + 0xc]
movzx edi, byte [edx + 0xd]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 0xe]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 0xf]
xor esi, edi
cmp ebx, 0x80
mov dword [eax + 0xc], esi
jne 0x5541f1
mov edx, dword [eax + 0xc]
mov ebx, edx
mov esi, edx
shr ebx, 0x10
and ebx, 0xff
shr esi, 8
and esi, 0xff
mov ebx, dword [ebx*4 + 0x61ea58]
and ebx, 0xff000000
xor ebx, dword [eax]
mov esi, dword [esi*4 + 0x61ee58]
and esi, 0xff0000
xor ebx, esi
mov esi, edx
shr edx, 0x18
and esi, 0xff
mov esi, dword [esi*4 + 0x61e258]
mov edx, dword [edx*4 + 0x61e658]
and esi, 0xff00
and edx, 0xff
xor ebx, esi
xor ebx, edx
xor ebx, dword [ecx*4 + 0x620358]
inc ecx
mov dword [eax + 0x10], ebx
mov edx, dword [eax + 4]
xor edx, dword [eax + 0x10]
mov dword [eax + 0x14], edx
mov ebx, dword [eax + 8]
xor ebx, edx
mov dword [eax + 0x18], ebx
mov edx, dword [eax + 0xc]
xor edx, ebx
cmp ecx, 0xa
mov dword [eax + 0x1c], edx
jne 0x5541e9
xor eax, eax
jmp 0x55444c
add eax, 0x10
jmp 0x554159
movzx esi, byte [edx + 0x10]
movzx edi, byte [edx + 0x11]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 0x12]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 0x13]
xor esi, edi
mov dword [eax + 0x10], esi
movzx esi, byte [edx + 0x14]
movzx edi, byte [edx + 0x15]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 0x16]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 0x17]
xor esi, edi
cmp ebx, 0xc0
mov dword [eax + 0x14], esi
jne 0x5542e9
mov edx, dword [eax + 0x14]
mov ebx, edx
mov esi, edx
shr ebx, 0x10
and ebx, 0xff
shr esi, 8
and esi, 0xff
mov ebx, dword [ebx*4 + 0x61ea58]
and ebx, 0xff000000
xor ebx, dword [eax]
mov esi, dword [esi*4 + 0x61ee58]
and esi, 0xff0000
xor ebx, esi
mov esi, edx
shr edx, 0x18
and esi, 0xff
mov esi, dword [esi*4 + 0x61e258]
mov edx, dword [edx*4 + 0x61e658]
and esi, 0xff00
and edx, 0xff
xor ebx, esi
xor ebx, edx
xor ebx, dword [ecx*4 + 0x620358]
inc ecx
mov dword [eax + 0x18], ebx
mov edx, dword [eax + 4]
xor edx, dword [eax + 0x18]
mov dword [eax + 0x1c], edx
mov ebx, dword [eax + 8]
xor ebx, edx
mov dword [eax + 0x20], ebx
mov edx, dword [eax + 0xc]
xor edx, ebx
cmp ecx, 8
mov dword [eax + 0x24], edx
jne 0x5542d1
xor eax, eax
jmp 0x55444c
mov ebx, dword [eax + 0x10]
xor ebx, edx
mov dword [eax + 0x28], ebx
mov edx, dword [eax + 0x14]
xor edx, ebx
mov dword [eax + 0x2c], edx
add eax, 0x18
jmp 0x554241
movzx esi, byte [edx + 0x18]
movzx edi, byte [edx + 0x19]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 0x1a]
shl edi, 8
xor esi, edi
movzx edi, byte [edx + 0x1b]
xor esi, edi
mov dword [eax + 0x18], esi
movzx esi, byte [edx + 0x1c]
movzx edi, byte [edx + 0x1d]
shl edi, 0x10
shl esi, 0x18
xor esi, edi
movzx edi, byte [edx + 0x1e]
movzx edx, byte [edx + 0x1f]
shl edi, 8
xor esi, edi
xor esi, edx
cmp ebx, 0x100
mov dword [eax + 0x1c], esi
jne 0x55444a
mov edx, dword [eax + 0x1c]
mov ebx, edx
mov esi, edx
shr ebx, 0x10
and ebx, 0xff
shr esi, 8
and esi, 0xff
mov ebx, dword [ebx*4 + 0x61ea58]
and ebx, 0xff000000
xor ebx, dword [eax]
mov esi, dword [esi*4 + 0x61ee58]
and esi, 0xff0000
xor ebx, esi
mov esi, edx
shr edx, 0x18
and esi, 0xff
mov esi, dword [esi*4 + 0x61e258]
mov edx, dword [edx*4 + 0x61e658]
and esi, 0xff00
and edx, 0xff
xor ebx, esi
xor ebx, edx
xor ebx, dword [ecx*4 + 0x620358]
inc ecx
mov dword [eax + 0x20], ebx
mov edx, dword [eax + 4]
xor edx, dword [eax + 0x20]
mov dword [eax + 0x24], edx
mov ebx, dword [eax + 8]
xor ebx, edx
mov dword [eax + 0x28], ebx
mov edx, dword [eax + 0xc]
xor edx, ebx
cmp ecx, 7
mov dword [eax + 0x2c], edx
jne 0x5543c9
xor eax, eax
jmp 0x55444c
mov ebx, edx
mov esi, edx
shr ebx, 0x18
shr esi, 0x10
and esi, 0xff
mov ebx, dword [ebx*4 + 0x61ea58]
and ebx, 0xff000000
xor ebx, dword [eax + 0x10]
mov esi, dword [esi*4 + 0x61ee58]
and esi, 0xff0000
xor ebx, esi
mov esi, edx
shr esi, 8
and edx, 0xff
and esi, 0xff
mov edx, dword [edx*4 + 0x61e658]
and edx, 0xff
mov esi, dword [esi*4 + 0x61e258]
and esi, 0xff00
xor ebx, esi
xor ebx, edx
mov dword [eax + 0x30], ebx
mov edx, dword [eax + 0x14]
xor edx, ebx
mov dword [eax + 0x34], edx
mov ebx, dword [eax + 0x18]
xor ebx, edx
mov dword [eax + 0x38], ebx
mov edx, dword [eax + 0x1c]
xor edx, ebx
mov dword [eax + 0x3c], edx
add eax, 0x20
jmp 0x554339
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret