Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc4ffc5a7
add ecx, 0xa993b52c
add eax, ecx
sub ecx, 1
popal
and ecx, eax
sub eax, ecx
mov ecx, 0xe24835c9
mov ecx, 0
mov eax, esi
not edi
add edi, edi
and ebx, ebx
mov edx, eax
sub ebx, edi
sub edi, 0x3348b98b
mov ebx, edi
mov esi, edx
inc edi
inc ebx
add edi, 0xf88a08db
add ecx, 1
and edi, ebx
or ebx, edi
cmp ecx, 0x100b37b
jne 0xa789cf
dec edi
inc edi
not ecx
mov eax, ecx
mov edx, 0xa78796
mov edi, ebx
mov edi, 0x881a0d03
mov esi, 0xa7898a
add ebx, ebx
mov eax, 0xfa5db6a2
mov ecx, dword [edx]
add edi, 0xf2ffb982
or ebx, ebx
and ecx, 0xff
add eax, 0xd6ee8063
add edi, edi
xor dword [esi], ecx
mov eax, ebx
not ebx
inc edi
add esi, 1
mov eax, 0xd0f80b36
add eax, eax
inc edx
add ebx, 0xb13ad8e9
add edi, edi
cmp esi, entry0
jl 0xa78a21
not ebx
sub eax, edi
or edi, ebx
mov ebx, 0x10b816d9
sub edi, eax
mov edx, edi
sub ebx, edx
mov ebx, 0x1820de46
mov esi, 0xa7898e
or ebx, edi
dec ebx
add ecx, 0x6c4d5601
mov esi, dword [esi]
sub edx, edi
or edi, edi
mov esi, dword [esi]
sub edx, edi
add edi, 0xa68912ee
push esi
or ecx, ecx
inc ecx
mov esi, 0xa7898a
add edi, 0x2fd1cb1a
mov ecx, edx
add ebx, edx
mov esi, dword [esi]
sub ecx, edi
mov ebx, ecx
mov edx, 0xc9df590d
mov esi, dword [esi]
sub edi, ebx
mov ebx, 0xe78ed196
not ebx
sub esp, 4
mov dword [esp], 0xa78992
not ebx
and edx, edx
call esi
dec ebx
add edi, 1
mov esi, dword [esp]
add esp, 4
sub ebx, 0x8ec413de
or ebx, edx
sub edx, ebx
push 0xa7899f
or ebx, edi
and ebx, ebx
add ecx, 0x478cd382
push eax
sub edi, 0xd6b3a9c1
mov edx, 0xb70384e6
or ebx, ebx
call esi
mov ecx, 0xaa8f10fe
not ebx
push 0x40
not edi
not edi
push 0x3000
sub ecx, 0x3c409b5a
add ecx, 0x72697e51
sub ebx, 0x40f38c97
push 0x200000aa
and ecx, ecx
add ebx, 0xd947de45
push 0
and edi, ebx
sub ecx, ebx
call eax
dec ecx
inc edi
sub edi, 0x1d9f60b1
add eax, 0x2000000a
and ebx, edx
inc ecx
not edi
mov esi, 0xaf70402f
add ebx, 0xe8c28711
add ecx, 0xfd49ea71
mov dword [eax], esi
sub edx, 0xd36b3d05
sub ecx, ebx
mov esi, dword [eax]
sub edi, ecx
not ecx
mov edx, ebx
cmp esi, 0xaf70402f
je 0xa78b89
mov edx, 0
mov byte [edx], bl
inc edi
mov edx, 0xcefc77ab
mov ebx, ecx
inc edi
sub eax, ecx
not eax
dec eax
mov edx, section.UPX1
sub eax, ecx
sub ecx, 0x1d0a1389
dec eax
mov esi, 0xa78795
inc ecx
or ecx, eax
sub ecx, 0xf632c2fe
mov edi, 0
sub eax, 0xb87ec1b7
not eax
mov ebx, 0xa78796
not ecx
or eax, eax
lea ebx, [ebx + edi]
mov ecx, eax
dec eax
mov ebx, dword [ebx]
add ecx, 0x3773c6ba
not eax
and ebx, 0xff
not ecx
mov eax, 0xb5235e34
inc edi
add ecx, ecx
not ecx
cmp edi, 0x1f4
jne 0xa78bf8
mov edi, 0
dec eax
sub ecx, eax
sub eax, 1
not ecx
xor dword [edx], ebx
sub eax, ecx
mov ecx, eax
and ecx, ecx
add edx, 2
mov ecx, 0x21ee2f11
sub eax, 0x8903032
cmp edx, esi
jl 0xa78bc0
dec eax
add ecx, eax
sub eax, ecx
and ecx, ecx
and eax, ecx
mov ecx, section.UPX1
sub edx, 0xdf6a6672
sub edx, 1
mov esi, section.UPX1
mov ebx, 0xc1b7742d
sub ebx, 0xd01096ce
add edx, edx
mov edi, 0xa78795
inc ebx
inc ebx
not edx
mov eax, 0
sub ebx, edx
mov edx, 0xaa02bc54
mov ebx, 0xc455138e
mov al, byte [esi]
add edx, ebx
sub ebx, 1
mov byte [ecx], al
mov ebx, edx
and edx, edx
add edx, 0xd0d7467b
inc ecx
mov edx, ebx
add ebx, 0x79640bf2
not ebx
add esi, 2
inc edx
or ebx, edx
cmp esi, edi
jle 0xa78c6a
not edx
mov edx, 0xb8edcf7a
mov ebx, 0xedb3ffe
add ecx, ecx
mov eax, ecx
push 0x8dc6a0
or eax, eax
or ecx, eax
sub ecx, 0x9a0a8b8e
ret