Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xce438b75
sub eax, 0xbabbae0d
dec ecx
add eax, 0xf188184a
popal
not eax
add ecx, eax
mov ebx, 0
mov ecx, edx
mov edi, esi
sub edi, esi
mov eax, ecx
mov esi, edi
dec edi
not edi
mov edx, eax
mov esi, edi
add edi, 1
mov edi, esi
add ebx, 1
add esi, esi
sub edi, 0xd7e7f353
cmp ebx, 0x10049e6
jne 0xa789c9
sub edi, esi
add esi, esi
and eax, eax
or ecx, eax
mov eax, 0xa78796
dec ecx
inc edx
or ecx, edi
mov ebx, 0xa7898a
sub edx, edi
sub edi, 0x263193b6
mov esi, dword [eax]
not edx
add edi, edi
not edx
and esi, 0xff
add edi, edx
add edx, 0x50b6c995
dec edx
xor dword [ebx], esi
not edx
add edi, 0xe8ca1ab6
inc ebx
add ecx, edx
mov edi, ecx
inc eax
and edi, edi
not ecx
cmp ebx, entry0
jl 0xa78a1a
dec edx
sub edi, ecx
inc edx
add edx, 0x96544b6
add ecx, ecx
add ecx, ebx
mov esi, ebx
and ebx, ecx
mov edx, 0xa7898e
sub ebx, 1
and edi, ecx
mov ecx, esi
mov edx, dword [edx]
and ecx, esi
add ebx, esi
mov edx, dword [edx]
sub ebx, edi
not edi
not ecx
sub esp, 4
mov dword [esp], edx
mov esi, ecx
add ebx, 1
mov edx, 0xa7898a
and esi, ebx
sub edi, ebx
mov edx, dword [edx]
dec ecx
sub edi, 0x4a9e5830
mov edx, dword [edx]
and ebx, ebx
sub ecx, 1
push 0xa78992
sub edi, 1
mov ebx, 0xebf3f0a7
call edx
not ecx
not esi
mov edi, ebx
pop edx
or ecx, ecx
add esi, ecx
sub esp, 4
mov dword [esp], 0xa7899f
not esi
or esi, esi
dec edi
push eax
or ebx, ecx
mov edi, ecx
call edx
add edi, 0x6f4e4080
add ebx, ebx
push 0x40
sub esi, edi
mov esi, 0x6a35c61d
and ebx, esi
push 0x3000
or esi, edi
or ecx, ebx
push 0x20000f26
inc ebx
sub ebx, 0x13f9dcfe
sub edi, 0xd1c3fbbc
push 0
not esi
add esi, 0xf4efec9c
add ebx, edi
call eax
dec ebx
or ebx, ebx
add eax, 0x20000e7d
sub esi, 0x9a5aa82f
add ecx, 0xd94a07c4
add esi, 1
mov edx, 0x2763f623
dec esi
sub ebx, 0xfe97695e
mov dword [eax], edx
or esi, edi
sub edi, 0xefbdd44
mov edx, dword [eax]
sub ebx, 0x6d2f1118
mov esi, ebx
dec ebx
cmp edx, 0x2763f623
je 0xa78b6a
mov eax, 0
mov bl, byte [eax]
sub esi, ecx
dec esi
mov esi, 0x4c4b1ca0
add edi, edi
or ebx, esi
inc ecx
or eax, eax
and eax, eax
dec eax
mov edi, section.UPX1
not eax
mov eax, 0xfd0d3d20
mov ecx, eax
mov edx, 0xa78795
mov eax, 0xa93ceca6
and eax, ecx
mov eax, ecx
mov esi, 0
mov eax, 0x334f1638
or ecx, eax
mov ebx, 0xa78796
or eax, eax
dec ecx
lea ebx, [ebx + esi]
or eax, eax
or ecx, ecx
mov ebx, dword [ebx]
or ecx, eax
sub eax, ecx
and ebx, 0xff
or ecx, ecx
sub eax, ecx
not eax
inc esi
add ecx, ecx
and eax, ecx
sub eax, 0xf7f36066
cmp esi, 0x1f4
jne 0xa78bdd
mov esi, 0
or ecx, ecx
or eax, eax
not eax
inc eax
sub eax, 0x20184b8c
xor dword [edi], ebx
not ecx
or ecx, eax
add edi, 2
or ecx, ecx
mov ecx, eax
cmp edi, edx
jl 0xa78ba4
mov ecx, 0x56371b25
add eax, ecx
not eax
sub eax, 0x70b51fba
sub ecx, 0x7d548763
mov edx, section.UPX1
mov eax, 0x87d856c1
not ecx
and ecx, eax
mov edi, section.UPX1
sub eax, ecx
inc ecx
sub ecx, eax
mov esi, 0xa78795
add eax, 0xb11a4de1
mov eax, ecx
mov ebx, 0
inc ecx
mov eax, 0xc0b45dd9
sub ecx, 1
mov bl, byte [edi]
mov ecx, 0x943e1ec3
not eax
sub eax, 0x473dbea4
mov byte [edx], bl
mov ecx, 0xeb558e00
and eax, eax
inc edx
dec eax
not eax
add edi, 2
sub ecx, 1
or eax, ecx
or ecx, eax
cmp edi, esi
jle 0xa78c4d
sub ecx, 0x915346fb
sub ecx, 0x5a5175f9
add eax, 0x8f8fa532
not ecx
add eax, ecx
push 0x8dc6a0
add eax, 0x7c9e30a7
add ecx, eax
mov eax, ecx
ret