Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x16a0b3cf
sub eax, 0x1f840dba
sub ebx, 1
mov ebx, eax
popal
sub eax, ebx
and ebx, eax
mov eax, 0
mov edi, esi
inc ebx
mov edx, 0x87aa0432
mov ecx, edi
or edx, ebx
not edx
mov ebx, edx
mov esi, ecx
mov edx, ebx
dec ebx
and ebx, edx
add eax, 1
dec edx
add ebx, 0x51ba0f8a
or edx, ebx
cmp eax, 0x100bc49
jne 0xa789ca
add edx, 1
sub ebx, 0x63602c0c
add edx, 0x9b45c06e
not eax
dec ebx
add ebx, 0xf84460ba
mov ebx, 0xa78796
and edx, eax
inc ecx
mov edi, 0xa7898a
sub eax, 1
mov eax, 0x7bbae88e
mov esi, dword [ebx]
sub ecx, 0x8143ed38
inc ecx
inc edx
and esi, 0xff
mov eax, edx
and eax, ecx
xor dword [edi], esi
and ecx, edx
add ecx, 0x3bfa11e6
inc edi
mov edx, 0x3b3651c7
and ecx, ecx
sub ecx, 0x990b0b75
add ebx, 1
mov ecx, edx
sub edx, eax
cmp edi, entry0
jl 0xa78a2f
add eax, ecx
add edx, eax
or eax, eax
add eax, edx
or edi, edi
sub esi, edi
dec edi
mov ecx, 0xa7898e
mov esi, ebx
add edi, esi
mov ecx, dword [ecx]
add edi, edx
or ebx, ebx
add edx, edx
mov ecx, dword [ecx]
not esi
mov ebx, edi
sub edi, 0x1ef3d779
push ecx
mov edx, 0x6d2fce00
not ebx
mov ecx, 0xa7898a
inc ebx
not edi
mov ebx, 0x6ccda75
mov ecx, dword [ecx]
add edx, 0xb09765c7
sub ebx, esi
mov ecx, dword [ecx]
sub esi, 0x40505166
mov esi, 0x92bce978
not edi
push 0xa78992
mov edx, ebx
mov esi, 0x6ed77336
not ebx
call ecx
or edi, edi
add edi, 0x6b5ae593
pop ecx
mov esi, 0x66f556b1
mov edx, ebx
push 0xa7899f
sub esi, 0x3732a16d
or edx, ebx
push eax
mov edx, esi
add edi, 1
mov edi, edx
call ecx
add ebx, 0xe882c5ee
mov ebx, 0xd278a8cf
and edx, ebx
sub esp, 4
mov dword [esp], 0x40
not edi
dec edi
push 0x3000
mov esi, 0xbeac36c6
sub esi, ebx
push 0x20000ed5
dec ebx
add edi, 0xbc869409
add edi, 0xfa162b2e
push 0
add esi, 0xafc0441e
sub esi, 0x32eac7f8
call eax
add edx, 0xa5557659
add ebx, 0x26e0b033
add eax, 0x20000e1f
and edi, edi
not ebx
or edi, ebx
mov ecx, 0xdfb4d760
not ebx
dec edx
mov dword [eax], ecx
sub esi, 0x23b31255
add edx, 0xb956228d
mov ecx, dword [eax]
sub esi, 0xfbc284b
add edx, ebx
mov edi, edx
cmp ecx, 0xdfb4d760
je 0xa78b97
mov ebx, 0
mov ecx, dword [ebx]
inc ebx
add ebx, 1
not ebx
or ebx, esi
mov edi, esi
or ebx, ebx
dec ebx
sub eax, ebx
mov edi, section.UPX1
mov ebx, 0x3090c2f9
dec ebx
and eax, eax
mov ecx, 0xa78795
or ebx, eax
add ebx, ebx
mov edx, 0
add eax, 0x422bacde
and ebx, ebx
dec ebx
mov esi, 0xa78796
and eax, eax
mov eax, 0x7d35ac86
sub ebx, eax
lea esi, [esi + edx]
mov ebx, 0x75b034b3
sub eax, 1
sub ebx, 1
mov esi, dword [esi]
add eax, eax
add ebx, ebx
and esi, 0xff
and eax, ebx
mov eax, 0x2c96399d
add ebx, ebx
inc edx
mov ebx, eax
add ebx, ebx
add eax, 0xba5e5b0e
cmp edx, 0x1f4
jne 0xa78c1c
mov edx, 0
dec eax
or ebx, eax
or ebx, eax
and eax, eax
and ebx, eax
or eax, eax
xor dword [edi], esi
or ebx, eax
and ebx, eax
sub ebx, eax
add edi, 2
inc eax
mov ebx, eax
dec eax
cmp edi, ecx
jl 0xa78bcd
or eax, ebx
add eax, eax
sub eax, 0x3d741374
mov eax, ebx
mov eax, section.UPX1
dec ebx
add edi, 0xdb7dc2ed
mov esi, section.UPX1
add ebx, 0xb8660adb
and ebx, ebx
mov ecx, 0xa78795
mov edi, 0x2e0bbcb0
sub ebx, edi
mov edx, 0
add ebx, 0xe89f5eb3
sub ebx, edi
sub ebx, edi
mov dl, byte [esi]
add ebx, ebx
inc ebx
add ebx, ebx
mov byte [eax], dl
and edi, edi
mov edi, ebx
not edi
inc eax
mov ebx, 0x42e6ece5
or edi, edi
and ebx, ebx
add esi, 2
or edi, edi
and edi, ebx
mov ebx, edi
cmp esi, ecx
jle 0xa78c81
sub edi, 1
or ebx, edi
sub ebx, 0x499ff648
inc eax
or ebx, ebx
push 0x8dc6a0
and ebx, ebx
dec eax
or ebx, ebx
ret