Function at 0x4045d0
Capabilities:
Encrypt data using aes mixcolumns step

Disassembly:
sub esp, 0x6c
lea eax, [esp + 0x5c]
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov esi, 4
lea ecx, [ebp + 0x14]
mov edx, dword [ecx]
add eax, 4
add ecx, 4
dec esi
mov edx, dword [edx]
mov dword [eax - 4], edx
jne 0x4045e5
xor edi, edi
mov al, byte [esp + edi + 0x6c]
cmp al, 0x80
mov byte [esp + 0x12], al
mov byte [esp + 0x58], al
jae 0x40460b
shl al, 1
jmp 0x40460f
shl al, 1
xor al, 0x1b
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x18]
push eax
call fcn.00404a40
push eax
call fcn.00404a40
mov esi, dword [esp + 0x60]
mov bl, al
push esi
call fcn.00404a40
push eax
call fcn.00404a40
push esi
xor bl, al
call fcn.00404a40
xor bl, al
add esp, 0x14
mov byte [esp + 0x16], bl
mov bl, byte [esp + edi + 0x70]
cmp bl, 0x80
mov byte [esp + 0x13], bl
mov byte [esp + 0x5c], bl
jae 0x404661
mov cl, bl
shl cl, 1
mov byte [esp + 0x1c], cl
jmp 0x40466c
mov dl, bl
shl dl, 1
xor dl, 0x1b
mov byte [esp + 0x1c], dl
mov eax, dword [esp + 0x1c]
push eax
call fcn.00404a40
push eax
call fcn.00404a40
mov ecx, dword [esp + 0x64]
mov byte [esp + 0x1c], al
push ecx
call fcn.00404a40
mov dl, al
mov al, byte [esp + 0x20]
xor al, dl
add esp, 0xc
xor al, bl
mov byte [esp + 0x15], al
mov al, byte [esp + edi + 0x74]
cmp al, 0x80
mov byte [esp + 0x14], al
mov byte [esp + 0x24], al
jae 0x4046af
shl al, 1
jmp 0x4046b3
shl al, 1
xor al, 0x1b
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x20]
push eax
call fcn.00404a40
push eax
call fcn.00404a40
mov ecx, dword [esp + 0x2c]
mov bl, al
push ecx
call fcn.00404a40
push eax
call fcn.00404a40
mov dl, byte [esp + 0x34]
xor bl, al
mov al, byte [esp + edi + 0x88]
add esp, 0x10
xor bl, dl
cmp al, 0x80
mov byte [esp + 0x11], al
jae 0x4046f7
shl al, 1
jmp 0x4046fb
shl al, 1
xor al, 0x1b
mov byte [esp + 0x28], al
mov edx, dword [esp + 0x28]
push edx
call fcn.00404a40
push eax
call fcn.00404a40
mov cl, byte [esp + 0x19]
mov dl, byte [esp + 0x1d]
xor al, cl
mov cl, byte [esp + 0x1e]
xor al, bl
mov bl, byte [esp + 0x1a]
xor al, dl
add esp, 8
xor al, cl
mov ecx, dword [ebp + 0x14]
cmp bl, 0x80
mov byte [ecx + edi], al
jae 0x40473f
mov dl, bl
shl dl, 1
mov byte [esp + 0x2c], dl
jmp 0x404749
mov al, bl
shl al, 1
xor al, 0x1b
mov byte [esp + 0x2c], al
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00404a40
push eax
call fcn.00404a40
xor al, bl
add esp, 8
mov byte [esp + 0x17], al
mov al, byte [esp + 0x13]
cmp al, 0x80
mov byte [esp + 0x60], al
jae 0x404772
shl al, 1
jmp 0x404776
shl al, 1
xor al, 0x1b
mov byte [esp + 0x30], al
mov edx, dword [esp + 0x30]
push edx
call fcn.00404a40
push eax
call fcn.00404a40
mov esi, dword [esp + 0x68]
mov bl, al
push esi
call fcn.00404a40
push eax
call fcn.00404a40
push esi
xor bl, al
call fcn.00404a40
xor bl, al
mov al, byte [esp + 0x28]
add esp, 0x14
cmp al, 0x80
mov byte [esp + 0x15], bl
mov byte [esp + 0x38], al
jae 0x4047bd
shl al, 1
jmp 0x4047c1
shl al, 1
xor al, 0x1b
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x34]
push eax
call fcn.00404a40
push eax
call fcn.00404a40
mov ecx, dword [esp + 0x40]
mov bl, al
push ecx
call fcn.00404a40
mov dl, byte [esp + 0x1d]
xor bl, al
mov al, byte [esp + 0x44]
mov byte [esp + 0x48], dl
mov esi, dword [esp + 0x48]
xor bl, al
push esi
mov byte [esp + 0x26], bl
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
push eax
call fcn.00404a40
mov dl, byte [esp + 0x36]
mov cl, byte [esp + 0x35]
xor bl, al
mov al, byte [esp + 0x5c]
xor bl, al
mov al, byte [esp + 0x37]
xor bl, dl
xor bl, cl
mov cl, byte [esp + 0x32]
mov byte [esp + 0x60], cl
xor bl, al
mov eax, dword [ebp + 0x18]
mov esi, dword [esp + 0x60]
push esi
mov byte [eax + edi], bl
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
push eax
call fcn.00404a40
mov cl, byte [esp + 0x74]
xor bl, al
xor bl, cl
add esp, 0x34
mov byte [esp + 0x15], bl
mov bl, byte [esp + 0x13]
cmp bl, 0x80
jae 0x404887
mov dl, bl
shl dl, 1
mov byte [esp + 0x44], dl
jmp 0x404891
mov al, bl
shl al, 1
xor al, 0x1b
mov byte [esp + 0x44], al
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00404a40
push eax
call fcn.00404a40
mov dl, byte [esp + 0x1c]
xor al, bl
mov byte [esp + 0x6c], dl
mov byte [esp + 0x1e], al
mov esi, dword [esp + 0x6c]
push esi
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
push eax
call fcn.00404a40
push esi
xor bl, al
call fcn.00404a40
xor bl, al
mov al, byte [esp + 0x31]
mov byte [esp + 0x68], al
mov byte [esp + 0x37], bl
mov esi, dword [esp + 0x68]
push esi
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
mov dl, byte [esp + 0x47]
mov cl, byte [esp + 0x46]
xor bl, al
mov al, byte [esp + 0x78]
xor bl, al
mov al, byte [esp + 0x45]
xor bl, dl
mov dl, byte [esp + 0x42]
mov byte [esp + 0x7c], dl
xor bl, cl
mov ecx, dword [ebp + 0x1c]
mov esi, dword [esp + 0x7c]
xor bl, al
push esi
mov byte [ecx + edi], bl
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
xor bl, al
mov al, byte [esp + 0x8c]
xor bl, al
mov al, byte [esp + 0x53]
mov byte [esp + 0x90], al
add esp, 0x40
mov esi, dword [esp + 0x50]
mov byte [esp + 0x15], bl
push esi
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
push eax
call fcn.00404a40
add esp, 0x14
mov cl, byte [esp + 0x50]
xor bl, al
xor bl, cl
mov byte [esp + 0x16], bl
mov bl, byte [esp + 0x14]
cmp bl, 0x80
jae 0x4049b0
mov cl, bl
shl cl, 1
mov byte [esp + 0x54], cl
jmp 0x4049bb
mov dl, bl
shl dl, 1
xor dl, 0x1b
mov byte [esp + 0x54], dl
mov eax, dword [esp + 0x54]
push eax
call fcn.00404a40
push eax
call fcn.00404a40
mov cl, byte [esp + 0x19]
xor al, bl
mov byte [esp + 0x70], cl
mov byte [esp + 0x1f], al
mov esi, dword [esp + 0x70]
push esi
call fcn.00404a40
push eax
call fcn.00404a40
push eax
call fcn.00404a40
push esi
mov bl, al
call fcn.00404a40
push eax
call fcn.00404a40
push esi
xor bl, al
call fcn.00404a40
mov cl, byte [esp + 0x37]
mov dl, byte [esp + 0x35]
xor bl, al
mov al, byte [esp + 0x36]
xor bl, cl
add esp, 0x20
xor bl, al
xor bl, dl
mov edx, dword [ebp + 0x20]
mov byte [edx + edi], bl
inc edi
cmp edi, 4
jl 0x4045f7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret