Function at 0x427560
Capabilities:
Manually build aes constants

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x214
mov esi, dword [esp + 0x230]
cmp esi, 0x80
je 0x4275a0
cmp esi, 0x100
je 0x427599
mov eax, 0xffffffe0
cmp esi, 0xc0
jne 0x427b30
mov eax, 0xc
jmp 0x4275a5
mov eax, 0xe
jmp 0x4275a5
mov eax, 0xa
mov edx, dword [esp + 0x228]
mov dword [edx], eax
cmp byte [0x443ffc], 1
mov dword [esp + 4], eax
jne 0x4275ca
lea ebp, [edx + 8]
mov dword [edx + 4], 0
jmp 0x42785c
mov cl, 1
xor edx, edx
nop
mov byte [esp + edx + 0x114], cl
movzx esi, cl
mov byte [esp + esi + 0x14], dl
mov ch, cl
add ch, cl
xor ch, cl
sar cl, 7
and cl, 0x1b
xor cl, ch
mov byte [esp + edx + 0x115], cl
movzx esi, cl
mov ch, dl
inc ch
mov byte [esp + esi + 0x14], ch
mov ch, cl
add ch, cl
xor ch, cl
sar cl, 7
and cl, 0x1b
xor cl, ch
add edx, 2
cmp edx, 0x100
jne 0x4275d0
movaps xmm0, xmmword [0x43d1c0]
movaps xmmword [0x444470], xmm0
movaps xmm0, xmmword [0x43d1d0]
movaps xmmword [0x444480], xmm0
mov dword [0x444490], 0x1b
mov dword [0x444494], 0x36
mov byte [0x441c40], 0x63
mov byte [0x442dc7], 0
mov ecx, 1
nop word [eax + eax]
movzx edx, byte [esp + ecx + 0x14]
xor edx, 0xff
movzx ebx, byte [esp + edx + 0x114]
mov edx, ebx
mov dh, bl
mov bh, bl
mov eax, ebx
rol al, 1
rol dl, 2
rol dh, 3
xor dl, bl
rol bh, 4
xor bh, al
xor dl, bh
xor dl, dh
movzx eax, dl
xor eax, 0x63
mov byte [ecx + 0x441c40], al
mov byte [eax + 0x442d64], cl
inc ecx
cmp ecx, 0x100
jne 0x427660
movzx ecx, byte [esp + 0x22]
movzx esi, byte [esp + 0x1d]
movzx edi, byte [esp + 0x21]
movzx ebx, byte [esp + 0x1f]
mov edx, 0xffffff00
movzx eax, cx
mov dword [esp], eax
movzx eax, si
mov dword [esp + 0x10], eax
movzx eax, di
mov dword [esp + 0xc], eax
movzx eax, bx
mov dword [esp + 8], eax
jmp 0x4277be
movzx esi, byte [esp + ecx + 0x14]
mov eax, dword [esp]
add eax, esi
imul ecx, eax, 0x203
shr ecx, 0x11
mov edi, ecx
shl edi, 8
sub ecx, edi
add ecx, eax
movzx eax, cx
movzx ecx, byte [esp + eax + 0x114]
mov eax, dword [esp + 0x10]
add eax, esi
imul edi, eax, 0x203
shr edi, 0x11
mov ebx, edi
shl ebx, 8
sub edi, ebx
add edi, eax
movzx eax, di
movzx ebp, byte [esp + eax + 0x114]
shl ebp, 8
or ebp, ecx
mov eax, dword [esp + 0xc]
add eax, esi
imul ecx, eax, 0x203
shr ecx, 0x11
mov edi, ecx
shl edi, 8
sub ecx, edi
add ecx, eax
movzx eax, cx
movzx ebx, byte [esp + eax + 0x114]
mov edi, ebx
shl edi, 0x10
or edi, ebp
add esi, dword [esp + 8]
imul eax, esi, 0x203
shr eax, 0x11
mov ecx, eax
shl ecx, 8
sub eax, ecx
add eax, esi
movzx eax, ax
movzx esi, byte [esp + eax + 0x114]
mov eax, esi
shl eax, 0x18
or eax, edi
mov dword [edx*4 + 0x443264], eax
shl edi, 8
or edi, esi
mov dword [edx*4 + 0x443664], edi
shl edi, 8
or ebx, edi
mov dword [edx*4 + 0x443a64], ebx
shld ebx, edi, 8
mov dword [edx*4 + 0x443e64], ebx
inc edx
je 0x427834
movzx ebx, byte [edx + 0x441d40]
mov eax, ebx
add al, bl
mov ecx, ebx
sar cl, 7
and cl, 0x1b
xor cl, al
movzx eax, cl
xor cl, bl
mov edi, ebx
shl edi, 8
or edi, eax
mov esi, ebx
shl esi, 0x10
or esi, edi
movzx eax, cl
mov ecx, eax
shl ecx, 0x18
or ecx, esi
shl esi, 8
or esi, eax
mov dword [edx*4 + 0x442540], esi
shl esi, 8
or ebx, esi
mov dword [edx*4 + 0x442940], ebx
shld ebx, esi, 8
mov dword [edx*4 + 0x442140], ecx
mov dword [edx*4 + 0x442d40], ebx
movzx ecx, byte [edx + 0x442e64]
test ecx, ecx
jne 0x4276f0
xor edi, edi
xor ebx, ebx
xor esi, esi
jmp 0x42778a
mov byte [0x443ffc], 1
mov edx, dword [esp + 0x228]
lea ebp, [edx + 8]
mov dword [edx + 4], 0
mov esi, dword [esp + 0x230]
cmp esi, 0x20
jb 0x427926
mov ecx, dword [esp + 0x22c]
mov edi, esi
shr edi, 5
xor ebx, ebx
cmp esi, 0x100
jb 0x4278be
mov eax, edx
sub eax, ecx
add eax, 8
cmp eax, 0x20
jb 0x4278be
mov ebx, edi
and ebx, 0xfffffff8
shr esi, 3
and esi, 0xffffffe0
xor edx, edx
mov eax, dword [esp + 0x228]
nop word cs:[eax + eax]
movups xmm0, xmmword [ecx + edx]
movups xmm1, xmmword [ecx + edx + 0x10]
movups xmmword [eax + edx + 8], xmm0
movups xmmword [eax + edx + 0x18], xmm1
add edx, 0x20
cmp esi, edx
jne 0x4278a0
cmp edi, ebx
je 0x427926
mov edx, edi
mov dword [esp], ebx
mov esi, ebx
and edx, 3
mov ebx, dword [esp + 0x228]
je 0x4278eb
mov esi, dword [esp]
nop word cs:[eax + eax]
mov eax, dword [ecx + esi*4]
mov dword [ebx + esi*4 + 8], eax
inc esi
dec edx
jne 0x4278e0
mov eax, dword [esp]
sub eax, edi
cmp eax, 0xfffffffc
ja 0x427926
mov edx, dword [esp + 0x228]
nop dword [eax]
mov eax, dword [ecx + esi*4]
mov dword [edx + esi*4 + 8], eax
mov eax, dword [ecx + esi*4 + 4]
mov dword [edx + esi*4 + 0xc], eax
mov eax, dword [ecx + esi*4 + 8]
mov dword [edx + esi*4 + 0x10], eax
mov eax, dword [ecx + esi*4 + 0xc]
mov dword [edx + esi*4 + 0x14], eax
add esi, 4
cmp edi, esi
jne 0x427900
xor eax, eax
mov ecx, dword [esp + 4]
cmp ecx, 0xa
je 0x427ab5
cmp ecx, 0xc
je 0x427a27
cmp ecx, 0xe
jne 0x427b30
mov esi, dword [ebp]
xor ecx, ecx
nop dword [eax]
xor esi, dword [ecx + 0x444470]
mov eax, dword [ebp + ecx*8 + 0x1c]
movzx edx, ah
movzx edx, byte [edx + 0x441c40]
xor edx, esi
mov ebx, eax
shr ebx, 0x10
movzx esi, bl
movzx esi, byte [esi + 0x441c40]
shl esi, 8
mov ebx, eax
mov dword [esp], eax
shr ebx, 0x18
movzx edi, byte [ebx + 0x441c40]
shl edi, 0x10
xor edi, edx
xor edi, esi
movzx edx, al
movzx esi, byte [edx + 0x441c40]
shl esi, 0x18
xor esi, edi
mov dword [ebp + ecx*8 + 0x20], esi
mov eax, dword [ebp + ecx*8 + 4]
xor eax, esi
mov dword [ebp + ecx*8 + 0x24], eax
xor eax, dword [ebp + ecx*8 + 8]
mov dword [ebp + ecx*8 + 0x28], eax
xor eax, dword [ebp + ecx*8 + 0xc]
mov dword [ebp + ecx*8 + 0x2c], eax
movzx edi, al
movzx edi, byte [edi + 0x441c40]
xor edi, dword [ebp + ecx*8 + 0x10]
movzx ebx, ah
movzx ebx, byte [ebx + 0x441c40]
shl ebx, 8
xor ebx, edi
mov edx, eax
shr edx, 0x10
movzx edx, dl
movzx edx, byte [edx + 0x441c40]
shl edx, 0x10
xor edx, ebx
shr eax, 0x18
movzx eax, byte [eax + 0x441c40]
shl eax, 0x18
xor eax, edx
mov dword [ebp + ecx*8 + 0x30], eax
xor eax, dword [ebp + ecx*8 + 0x14]
mov dword [ebp + ecx*8 + 0x34], eax
xor eax, dword [ebp + ecx*8 + 0x18]
mov dword [ebp + ecx*8 + 0x38], eax
xor eax, dword [esp]
mov dword [ebp + ecx*8 + 0x3c], eax
add ecx, 4
cmp ecx, 0x1c
jne 0x427950
jmp 0x427b2e
mov esi, dword [ebp]
add ebp, 0x2c
mov edi, 0xffffffe0
nop word cs:[eax + eax]
xor esi, dword [edi + 0x444490]
mov ecx, dword [ebp - 0x18]
movzx edx, ch
movzx edx, byte [edx + 0x441c40]
xor edx, esi
mov ebx, ecx
shr ebx, 0x10
movzx esi, bl
movzx esi, byte [esi + 0x441c40]
shl esi, 8
mov ebx, ecx
shr ebx, 0x18
movzx ebx, byte [ebx + 0x441c40]
shl ebx, 0x10
xor ebx, edx
xor ebx, esi
movzx edx, cl
movzx esi, byte [edx + 0x441c40]
shl esi, 0x18
xor esi, ebx
mov dword [ebp - 0x14], esi
mov edx, dword [ebp - 0x28]
xor edx, esi
mov dword [ebp - 0x10], edx
xor edx, dword [ebp - 0x24]
mov dword [ebp - 0xc], edx
xor edx, dword [ebp - 0x20]
mov dword [ebp - 8], edx
xor edx, dword [ebp - 0x1c]
mov dword [ebp - 4], edx
xor edx, ecx
mov dword [ebp], edx
add ebp, 0x18
add edi, 4
jne 0x427a40
jmp 0x427b2e
mov esi, dword [ebp]
mov ecx, 7
nop dword [eax]
xor esi, dword [ecx + 0x444469]
mov eax, dword [ebp + ecx*4 - 0x10]
movzx edx, ah
movzx edx, byte [edx + 0x441c40]
xor edx, esi
mov ebx, eax
shr ebx, 0x10
movzx esi, bl
movzx esi, byte [esi + 0x441c40]
shl esi, 8
mov ebx, eax
shr ebx, 0x18
movzx edi, byte [ebx + 0x441c40]
shl edi, 0x10
xor edi, edx
xor edi, esi
movzx edx, al
movzx esi, byte [edx + 0x441c40]
shl esi, 0x18
xor esi, edi
mov dword [ebp + ecx*4 - 0xc], esi
mov edx, dword [ebp + ecx*4 - 0x18]
xor edx, esi
mov dword [ebp + ecx*4 - 8], edx
xor edx, dword [ebp + ecx*4 - 0x14]
mov dword [ebp + ecx*4 - 4], edx
xor edx, eax
mov dword [ebp + ecx*4], edx
add ecx, 4
cmp ecx, 0x2f
jne 0x427ac0
xor eax, eax
add esp, 0x214
pop esi
pop edi
pop ebx
pop ebp
ret