Function at 0x472000
Capabilities:
Encrypt data using aes

Disassembly:
push ebp
push edi
push esi
push ebx
mov ecx, dword [esp + 0x14]
xor edi, edi
test ecx, ecx
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
je 0x4723d0
test esi, esi
je 0x4723d0
cmp ebp, 0x80
je 0x472043
cmp ebp, 0xc0
je 0x472043
cmp ebp, 0x100
mov eax, 0xfffffffe
jne 0x4721bb
cmp ebp, 0x80
mov ebx, esi
je 0x47223a
cmp ebp, 0xc0
je 0x4723da
mov dword [esi + 0xf0], 0xe
xor edx, edx
xor eax, eax
mov dl, byte [ecx]
mov al, byte [ecx + 1]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 2]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 3]
xor edx, eax
mov dword [esi], edx
xor eax, eax
xor edx, edx
mov dl, byte [ecx + 4]
mov al, byte [ecx + 5]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 6]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 7]
xor edx, eax
mov dword [esi + 4], edx
xor eax, eax
xor edx, edx
mov dl, byte [ecx + 8]
mov al, byte [ecx + 9]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xa]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xb]
xor edx, eax
mov dword [esi + 8], edx
xor eax, eax
xor edx, edx
mov dl, byte [ecx + 0xc]
mov al, byte [ecx + 0xd]
shl edx, 0x18
shl eax, 0x10
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xe]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0xf]
xor edx, eax
cmp ebp, 0x80
mov dword [esi + 0xc], edx
je 0x4721c3
xor edx, edx
xor eax, eax
mov dl, byte [ecx + 0x10]
mov al, byte [ecx + 0x11]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x12]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x13]
xor edx, eax
mov dword [esi + 0x10], edx
xor eax, eax
xor edx, edx
mov dl, byte [ecx + 0x14]
mov al, byte [ecx + 0x15]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x16]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x17]
xor edx, eax
cmp ebp, 0xc0
mov dword [esi + 0x14], edx
je 0x47225e
xor edx, edx
xor eax, eax
mov dl, byte [ecx + 0x18]
mov al, byte [ecx + 0x19]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1a]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1b]
xor edx, eax
mov dword [esi + 0x18], edx
xor eax, eax
xor edx, edx
mov dl, byte [ecx + 0x1c]
mov al, byte [ecx + 0x1d]
shl eax, 0x10
shl edx, 0x18
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1e]
shl eax, 8
xor edx, eax
xor eax, eax
mov al, byte [ecx + 0x1f]
xor edx, eax
xor eax, eax
cmp ebp, 0x100
mov dword [esi + 0x1c], edx
je 0x47234b
pop ebx
pop esi
pop edi
pop ebp
ret
add ebx, 0x10
xor eax, eax
mov ecx, dword [ebx + 0xc]
mov al, byte [ebx + 0xe]
movzx ebp, ch
mov esi, dword [eax*4 + 0x535f00]
and esi, 0xff000000
mov edx, dword [ebp*4 + 0x535b00]
and edx, 0xff0000
movzx ebp, cl
xor esi, dword [ebx]
xor esi, edx
mov edx, dword [ebp*4 + 0x536700]
mov ebp, ecx
and edx, 0xff00
shr ebp, 0x18
xor esi, edx
mov dl, byte [ebp*4 + 0x536300]
and edx, 0xff
xor esi, edx
xor esi, dword [edi*4 + 0x536b00]
mov dword [ebx + 0x10], esi
xor esi, dword [ebx + 4]
mov dword [ebx + 0x14], esi
inc edi
xor esi, dword [ebx + 8]
xor ecx, esi
cmp edi, 0xa
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], ecx
jne 0x4721c0
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi + 0xf0], 0xa
jmp 0x472067
xor eax, dword [ebx + 0x10]
xor ecx, eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
add ebx, 0x18
xor eax, eax
mov ecx, dword [ebx + 0x14]
mov al, byte [ebx + 0x16]
movzx ebp, ch
mov eax, dword [eax*4 + 0x535f00]
and eax, 0xff000000
mov esi, dword [ebp*4 + 0x535b00]
and esi, 0xff0000
xor eax, dword [ebx]
xor eax, esi
movzx edx, cl
mov esi, ecx
mov ebp, dword [edx*4 + 0x536700]
shr esi, 0x18
and ebp, 0xff00
mov dl, byte [esi*4 + 0x536300]
xor eax, ebp
and edx, 0xff
xor eax, edx
xor eax, dword [edi*4 + 0x536b00]
mov dword [ebx + 0x18], eax
xor eax, dword [ebx + 4]
mov dword [ebx + 0x1c], eax
inc edi
xor eax, dword [ebx + 8]
mov dword [ebx + 0x20], eax
xor eax, dword [ebx + 0xc]
cmp edi, 8
mov dword [ebx + 0x24], eax
jne 0x472250
xor eax, eax
jmp 0x472235
mov ebp, ecx
mov eax, ecx
shr ebp, 0x18
shr eax, 0x10
mov edx, dword [ebp*4 + 0x535f00]
and eax, 0xff
mov ebp, dword [eax*4 + 0x535b00]
and edx, 0xff000000
movzx eax, ch
xor edx, dword [ebx + 0x10]
and ebp, 0xff0000
xor edx, ebp
mov ebp, dword [eax*4 + 0x536700]
movzx eax, cl
and ebp, 0xff00
mov cl, byte [eax*4 + 0x536300]
xor edx, ebp
and ecx, 0xff
xor edx, ecx
mov ebp, dword [ebx + 0x14]
xor ebp, edx
mov dword [ebx + 0x34], ebp
xor ebp, dword [ebx + 0x18]
xor esi, ebp
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x38], ebp
mov dword [ebx + 0x3c], esi
add ebx, 0x20
mov esi, dword [ebx + 0x1c]
xor eax, eax
mov ecx, esi
mov al, byte [ebx + 0x1e]
movzx edx, ch
mov ebp, dword [eax*4 + 0x535f00]
and ebp, 0xff000000
mov ecx, dword [edx*4 + 0x535b00]
mov edx, esi
and ecx, 0xff0000
and edx, 0xff
xor ebp, dword [ebx]
xor ebp, ecx
mov ecx, dword [edx*4 + 0x536700]
mov edx, esi
and ecx, 0xff00
shr edx, 0x18
xor ebp, ecx
mov cl, byte [edx*4 + 0x536300]
and ecx, 0xff
xor ebp, ecx
xor ebp, dword [edi*4 + 0x536b00]
mov dword [ebx + 0x20], ebp
xor ebp, dword [ebx + 4]
mov dword [ebx + 0x24], ebp
mov ecx, dword [ebx + 0xc]
xor ebp, dword [ebx + 8]
inc edi
xor ecx, ebp
cmp edi, 7
mov dword [ebx + 0x28], ebp
mov dword [ebx + 0x2c], ecx
jne 0x4722e0
xor eax, eax
jmp 0x472235
pop ebx
pop esi
pop edi
mov eax, 0xffffffff
pop ebp
ret
mov dword [esi + 0xf0], 0xc
jmp 0x472067