Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x47b27cb8
add ecx, ecx
and ecx, ecx
mov ecx, eax
popal
add eax, ecx
inc eax
not ecx
mov edi, 0
mov ecx, esi
sub ebx, 0xcbce400f
not ebx
dec edx
mov eax, ecx
dec edx
and edx, ebx
add edx, 0xb369c096
mov esi, eax
or edx, edx
inc ebx
inc edi
sub ebx, edx
add edx, 1
cmp edi, 0x100baea
jne 0xa789c3
not ebx
mov edx, ebx
add edx, 0xecb1a14d
add eax, ecx
dec eax
dec eax
mov ebx, 0xa78796
mov edi, 0x7d141938
sub ecx, eax
mov esi, 0xa7898a
add edi, 0x29d04ca0
not ecx
sub edi, 1
mov edx, dword [ebx]
sub eax, 0x22a176bb
mov edi, 0x59845363
and edx, 0xff
sub eax, ecx
not eax
add edi, 0x8dcea0d1
xor dword [esi], edx
mov eax, 0x21e3c5af
sub eax, edi
add edi, eax
inc esi
add ecx, edi
mov eax, ecx
inc edi
inc ebx
and ecx, ecx
dec ecx
cmp esi, entry0
jl 0xa78a20
sub eax, 1
sub edi, 0xf3b48258
mov ecx, edi
mov ecx, 0x9c171f93
or eax, edi
add ebx, edi
and ebx, esi
not ebx
mov edx, 0xa7898e
sub edi, esi
mov ebx, 0x3db3eb7a
mov edx, dword [edx]
or esi, edi
or ebx, ebx
mov edx, dword [edx]
add esi, ebx
not ecx
sub edi, 0x10c4b000
push edx
mov ebx, 0x3f8f1c3a
mov edi, esi
mov edx, 0xa7898a
and esi, esi
mov esi, 0xfde55207
not edi
mov edx, dword [edx]
mov edi, 0x74d5c3dd
dec esi
add edi, 1
mov edx, dword [edx]
add ecx, ebx
mov ecx, 0x718e8e88
sub ecx, 0x4742418e
sub esp, 4
mov dword [esp], 0xa78992
add edi, edi
and ebx, esi
sub ebx, 0xfdd8f877
call edx
mov esi, ecx
inc ebx
mov edi, 0x2eda3447
pop edx
add edi, 0x8194812d
or ecx, ecx
sub edi, 0x59924f71
push 0xa7899f
and ecx, ebx
add esi, 0x913ac69b
mov ecx, ebx
push eax
not edi
sub ecx, ebx
mov ebx, esi
call edx
add edi, edi
add ebx, 0x91b4a75d
sub esp, 4
mov dword [esp], 0x40
add ecx, 0x9543390b
dec ecx
push 0x3000
not ecx
sub ecx, 0x927d143b
and ebx, esi
push 0x20000109
add ebx, edi
not ecx
push 0
not ebx
sub esi, ecx
add ecx, 0x82169212
call eax
dec edi
add ebx, 1
add eax, 0x20000093
not ebx
mov ecx, 0x1610c26c
mov ebx, esi
mov edx, 0x508a9
sub esi, ecx
add ebx, 0xb93dfce3
mov dword [eax], edx
not edi
add ecx, 0x5d7eeb81
mov edx, dword [eax]
or esi, edi
dec ecx
cmp edx, 0x508a9
je 0xa78b92
mov eax, 0
mov byte [eax], dl
sub ebx, 1
not esi
not ebx
or edi, ebx
sub edi, 0x6ddf9f13
mov eax, 0xe30d4172
add eax, 0x301c61c8
mov edx, section.UPX1
or eax, eax
dec ecx
mov ecx, eax
mov edi, 0xa78795
not ecx
mov ecx, 0x79c04d6
mov ebx, 0
inc ecx
sub ecx, eax
mov esi, 0xa78796
add eax, eax
inc eax
lea esi, [esi + ebx]
add eax, ecx
and eax, eax
mov esi, dword [esi]
mov ecx, 0x8f957012
not eax
and esi, 0xff
add ecx, 1
mov eax, ecx
inc ebx
add ecx, ecx
mov eax, 0x1a7ff70a
cmp ebx, 0x1f4
jne 0xa78c08
mov ebx, 0
add eax, 1
add ecx, ecx
inc eax
and eax, ecx
xor dword [edx], esi
or ecx, eax
dec eax
or eax, eax
add edx, 2
not eax
or ecx, eax
inc eax
cmp edx, edi
jl 0xa78bcd
mov eax, ecx
add ecx, eax
add eax, ecx
add ecx, ecx
mov eax, section.UPX1
mov edx, 0x9147b15a
mov edx, 0x8e865bba
sub ecx, 0x7dcbf1fd
mov edi, section.UPX1
add edx, 0x4d4620e8
sub edx, ecx
mov esi, 0xa78795
sub edx, ecx
sub edx, 1
add ecx, edx
mov ebx, 0
mov ecx, edx
add ecx, 0xb6391dac
sub edx, 0xbcbdbf58
mov bl, byte [edi]
or edx, edx
not edx
sub edx, 0x8a2299c7
mov byte [eax], bl
add ecx, ecx
sub edx, 0xfe7e0833
inc eax
add ecx, ecx
dec edx
add edi, 2
or ecx, edx
not edx
cmp edi, esi
jle 0xa78c79
mov edx, 0x313b53ef
mov ecx, 0x371ce515
add edx, 0x10bf74c2
and eax, ecx
sub ecx, eax
push 0x8dc6a0
sub ecx, eax
dec eax
dec ecx
ret