Function at 0x4a02fc
Capabilities:
Encode data using xor
Manually build aes constants

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffddc
mov al, 1
xor ecx, ecx
lea edx, [esp + 0x24]
mov byte [edx], al
movzx ebx, al
mov byte [esp + ebx + 0x124], cl
test al, 0x80
je 0x4a0328
mov ebx, eax
add ebx, ebx
xor al, bl
xor al, 0x1b
jmp 0x4a032e
mov ebx, eax
add ebx, ebx
xor al, bl
inc ecx
inc edx
test cl, cl
jne 0x4a030e
mov byte [0x52a494], 0x63
mov byte [0x52a5f7], 0
mov esi, 1
lea edi, [esp + 0x125]
mov ebp, 0x52a495
movzx eax, byte [edi]
mov edx, 0xff
sub edx, eax
movzx eax, byte [esp + edx + 0x24]
mov edx, eax
add edx, edx
movzx ecx, al
shr ecx, 7
add dl, cl
xor al, dl
mov ecx, edx
add ecx, ecx
movzx edx, dl
shr edx, 7
add cl, dl
mov edx, ecx
xor al, dl
mov ecx, edx
add ecx, ecx
movzx edx, dl
shr edx, 7
add cl, dl
mov edx, ecx
xor al, dl
mov ecx, edx
add ecx, ecx
movzx edx, dl
shr edx, 7
add cl, dl
mov edx, ecx
xor al, dl
xor al, 0x63
mov byte [ebp], al
mov edx, esi
movzx eax, al
mov byte [eax + 0x52a594], dl
inc esi
inc ebp
inc edi
cmp esi, 0x100
jne 0x4a0353
mov esi, pe_nt_image_headers32
mov edi, 0x52a494
mov dword [esp], 0x529494
mov dword [esp + 4], 0x529894
mov dword [esp + 8], 0x529c94
mov dword [esp + 0xc], 0x52a094
mov dword [esp + 0x10], 0x52a594
mov dword [esp + 0x14], 0x528494
mov dword [esp + 0x18], 0x528894
mov dword [esp + 0x1c], 0x528c94
mov dword [esp + 0x20], 0x529094
movzx eax, byte [edi]
mov edx, eax
add edx, edx
test al, 0x80
je 0x4a041a
xor dl, 0x1b
movzx ebp, dl
movzx ecx, al
mov ebx, ecx
shl ebx, 8
add ebp, ebx
shl ecx, 0x10
add ebp, ecx
xor dl, al
movzx eax, dl
shl eax, 0x18
add ebp, eax
mov ecx, ebp
mov eax, dword [esp]
mov dword [eax], ecx
mov eax, ecx
shl eax, 8
shr ecx, 0x18
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 4]
mov dword [eax], ecx
mov eax, ecx
shl eax, 8
shr ecx, 0x18
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 8]
mov dword [eax], ecx
mov eax, ecx
shl eax, 8
shr ecx, 0x18
add eax, ecx
mov edx, dword [esp + 0xc]
mov dword [edx], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
test al, al
je 0x4a0525
movzx eax, al
movzx ecx, byte [esp + eax + 0x124]
lea eax, [ecx + 0xdf]
mov ebx, 0xff
xor edx, edx
div ebx
movzx ebx, byte [esp + edx + 0x24]
lea eax, [ecx + 0xc7]
mov ebp, 0xff
xor edx, edx
div ebp
movzx eax, byte [esp + edx + 0x24]
shl eax, 8
add ebx, eax
lea eax, [ecx + 0xee]
mov ebp, 0xff
xor edx, edx
div ebp
movzx eax, byte [esp + edx + 0x24]
shl eax, 0x10
add ebx, eax
lea eax, [ecx + 0x68]
mov ecx, 0xff
xor edx, edx
div ecx
movzx eax, byte [esp + edx + 0x24]
shl eax, 0x18
add ebx, eax
mov ecx, ebx
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov eax, ecx
shl eax, 8
shr ecx, 0x18
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
mov eax, ecx
shl eax, 8
shr ecx, 0x18
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov eax, ecx
shl eax, 8
shr ecx, 0x18
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
add dword [esp + 0x20], 4
add dword [esp + 0x1c], 4
add dword [esp + 0x18], 4
add dword [esp + 0x14], 4
inc dword [esp + 0x10]
add dword [esp + 0xc], 4
add dword [esp + 8], 4
add dword [esp + 4], 4
add dword [esp], 4
inc edi
dec esi
jne 0x4a040c
add esp, 0x224
pop ebp
pop edi
pop esi
pop ebx
ret