Function at 0x45ae5e
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push esi
push eax
call fcn.0045a86a
pop eax
pop ecx
movzx ecx, byte [esi + 0xf0]
lea edx, [esi + 0xc]
xor edi, edi
shl ecx, 2
cmp edi, ecx
jae 0x45af01
cmp edi, 0x3c
jae 0x45b0e8
cmp ecx, 0x3c
jae 0x45b0f7
mov ebx, dword [edx + ecx*4 - 0xc]
mov eax, dword [edx + edi*4 - 0xc]
mov dword [edx + edi*4 - 0xc], ebx
lea ebx, [ecx + 1]
mov dword [edx + ecx*4 - 0xc], eax
cmp ebx, 0x3c
jae 0x45b104
mov eax, dword [edx + edi*4 - 8]
mov ebx, dword [edx + ecx*4 - 8]
mov dword [edx + edi*4 - 8], ebx
mov dword [edx + ecx*4 - 8], eax
lea eax, [ecx + 2]
cmp eax, 0x3c
jae 0x45b113
mov eax, dword [edx + edi*4 - 4]
mov ebx, dword [edx + ecx*4 - 4]
mov dword [edx + edi*4 - 4], ebx
mov dword [edx + ecx*4 - 4], eax
lea eax, [ecx + 3]
cmp eax, 0x3c
jae 0x45b122
mov eax, dword [edx + edi*4]
mov ebx, dword [edx + ecx*4]
mov dword [edx + edi*4], ebx
mov dword [edx + ecx*4], eax
add edi, 4
add ecx, 0xfffffffc
jmp 0x45ae83
mov al, byte [esi + 0xf0]
mov byte [ebp - 0xd], al
push 0x3c
pop edx
mov bl, 1
mov cl, byte [ebp - 0xd]
mov eax, ebx
cmp bl, cl
adc bl, 0
cmp al, cl
jae 0x45b0e0
mov ecx, esi
push 0x63d7a0
push 4
call fcn.004992d2
pop ecx
pop ecx
test edx, edx
je 0x45b131
mov esi, eax
mov eax, dword [eax]
mov byte [ebp - 0xe], bl
mov ebx, 0xff
mov ecx, eax
shr ecx, 0x18
movzx edi, byte [ecx*4 + 0x63d198]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
movzx ecx, byte [ecx + 0x63d198]
mov ecx, dword [ecx*4 + 0x63dbc0]
xor ecx, dword [edi*4 + 0x63d7b0]
mov edi, eax
shr edi, 8
and edi, ebx
movzx edi, byte [edi*4 + 0x63d198]
xor ecx, dword [edi*4 + 0x63dfc0]
mov edi, 0xff
and eax, edi
movzx eax, byte [eax*4 + 0x63d198]
xor ecx, dword [eax*4 + 0x63e3c0]
cmp edx, 1
mov dword [esi], ecx
je 0x45b13f
mov eax, dword [esi + 4]
mov ecx, eax
shr ecx, 0x18
movzx edi, byte [ecx*4 + 0x63d198]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
movzx ecx, byte [ecx + 0x63d198]
mov ecx, dword [ecx*4 + 0x63dbc0]
xor ecx, dword [edi*4 + 0x63d7b0]
mov edi, eax
shr edi, 8
and edi, ebx
movzx edi, byte [edi*4 + 0x63d198]
xor ecx, dword [edi*4 + 0x63dfc0]
mov edi, 0xff
and eax, edi
movzx eax, byte [eax*4 + 0x63d198]
xor ecx, dword [eax*4 + 0x63e3c0]
cmp edx, 2
mov dword [esi + 4], ecx
jbe 0x45b14e
mov eax, dword [esi + 8]
mov ecx, eax
shr ecx, 0x18
movzx edi, byte [ecx*4 + 0x63d198]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
movzx ecx, byte [ecx + 0x63d198]
mov ecx, dword [ecx*4 + 0x63dbc0]
xor ecx, dword [edi*4 + 0x63d7b0]
mov edi, eax
shr edi, 8
and edi, ebx
movzx edi, byte [edi*4 + 0x63d198]
xor ecx, dword [edi*4 + 0x63dfc0]
mov edi, 0xff
and eax, edi
movzx eax, byte [eax*4 + 0x63d198]
xor ecx, dword [eax*4 + 0x63e3c0]
cmp edx, 3
mov dword [esi + 8], ecx
je 0x45b15d
mov eax, dword [esi + 0xc]
mov ecx, eax
shr ecx, 0x18
movzx edi, byte [ecx*4 + 0x63d198]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
movzx ecx, byte [ecx + 0x63d198]
mov ecx, dword [ecx*4 + 0x63dbc0]
xor ecx, dword [edi*4 + 0x63d7b0]
mov edi, eax
shr edi, 8
and edi, ebx
mov bl, byte [ebp - 0xe]
movzx edi, byte [edi*4 + 0x63d198]
xor ecx, dword [edi*4 + 0x63dfc0]
mov edi, 0xff
and eax, edi
movzx eax, byte [eax*4 + 0x63d198]
xor ecx, dword [eax*4 + 0x63e3c0]
mov dword [esi + 0xc], ecx
jmp 0x45af0f
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x3c
pop ecx
mov edx, ecx
push 0x63e7f0
call fcn.0043a050
push 0x3c
pop edx
push 0x63e800
call fcn.0043a050
push 0x3c
pop ecx
mov edx, ecx
push 0x63e810
call fcn.0043a050
push 0x3c
pop edx
mov ecx, eax
push 0x63e820
call fcn.0043a050
push 0x3c
pop edx
mov ecx, eax
push 0x63e830
call fcn.0043a050
xor ecx, ecx
xor edx, edx
push 0x63dbb0
call fcn.0043a050
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x63e7c0
call fcn.0043a050
push 2
pop ecx
mov edx, ecx
push 0x63e7d0
call fcn.0043a050
push 3
pop ecx
mov edx, ecx
push 0x63e7e0
call fcn.0043a050