Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf973d98b
sub esi, edi
dec esi
popal
and edi, edi
or esi, edi
sub esi, edi
mov ecx, 0
mov esi, edi
sub ebx, eax
dec eax
mov ebx, eax
mov edx, esi
sub eax, ebx
dec ebx
mov ebx, eax
mov edi, edx
mov eax, ebx
or eax, eax
dec eax
add ecx, 1
sub eax, ebx
or eax, eax
and ebx, ebx
cmp ecx, 0x10072c9
jne 0xa789c1
not ebx
mov eax, ebx
or ebx, ebx
mov esi, edi
and edi, edi
not esi
mov edi, 0xa78796
not ecx
or ecx, esi
mov ebx, 0xa7898a
add eax, esi
sub eax, esi
sub esi, 0xf2a92722
mov edx, dword [edi]
not eax
or ecx, ecx
and esi, esi
and edx, 0xff
sub esi, eax
not ecx
xor dword [ebx], edx
mov eax, 0x1fc78744
dec ecx
inc ebx
mov esi, eax
sub eax, 0x15abd149
inc edi
not esi
mov ecx, eax
cmp ebx, entry0
jl 0xa78a12
or eax, ecx
sub ecx, esi
mov ecx, eax
add eax, ecx
and ecx, ecx
mov ebx, 0x3249dee2
inc ebx
not esi
mov edx, 0xa7898e
mov esi, edi
add ecx, 1
mov edx, dword [edx]
sub edi, ecx
mov esi, ebx
mov edx, dword [edx]
not ebx
sub edi, ecx
push edx
mov edi, 0xcc71bbfc
inc esi
and esi, edi
mov edx, 0xa7898a
mov edi, ecx
sub esi, ebx
mov edx, dword [edx]
not ecx
not esi
mov esi, 0x63f84586
mov edx, dword [edx]
add ecx, ecx
mov edi, esi
mov edi, 0x40679027
push 0xa78992
or edi, ecx
dec esi
call edx
add ebx, 0x16915f3d
sub ecx, 0x368b950
sub ecx, edi
pop edx
or esi, esi
sub esi, 0x655b43ee
push 0xa7899f
and ebx, esi
dec ecx
add esi, 0xa369c903
push eax
not ebx
add ebx, 1
add ecx, 0x56f43bb7
call edx
not ecx
mov esi, 0x3888e1f0
sub esi, ebx
push 0x40
sub ebx, 1
add esi, ebx
push 0x3000
and esi, ecx
not esi
push 0x20000899
mov edi, 0x97b9af5f
sub ecx, esi
push 0
not esi
sub ecx, 0xcc028346
not ecx
call eax
or ecx, ebx
add ecx, 0x129e51ed
add eax, 0x2000081b
add ebx, ecx
and ebx, ebx
add esi, ebx
mov edx, 0x2f5f431c
and esi, ebx
not ecx
not esi
mov dword [eax], edx
not esi
dec edi
mov edi, 0x9f99ae6a
mov edx, dword [eax]
dec ebx
or ecx, ecx
add edi, esi
cmp edx, 0x2f5f431c
je 0xa78b54
mov edx, 0
mov al, byte [edx]
and ecx, edi
or edi, ebx
or esi, ebx
or esi, ecx
dec esi
inc esi
add edi, esi
mov ecx, section.UPX1
mov edi, 0xc8dfdbb7
dec edi
mov eax, 0xa78795
add edi, edi
dec esi
sub edi, 1
mov ebx, 0
add esi, 0xb8810eb5
add edi, edi
mov edi, 0xad8195fc
mov edx, 0xa78796
not esi
sub edi, 0xb39fc64
lea edx, [edx + ebx]
inc edi
add esi, edi
mov edx, dword [edx]
and esi, edi
add edi, 0xfb6729e7
or edi, edi
and edx, 0xff
sub edi, esi
add edi, esi
mov edi, esi
inc ebx
and esi, esi
add edi, 0x2740f681
cmp ebx, 0x1f4
jne 0xa78bcc
mov ebx, 0
mov edi, esi
dec esi
sub esi, edi
sub esi, 0xc7f070ce
add edi, 0xdc464284
xor dword [ecx], edx
and edi, esi
mov esi, 0x6209fa04
add ecx, 2
inc edi
and edi, esi
dec edi
cmp ecx, eax
jl 0xa78b8b
or esi, edi
not esi
inc esi
not esi
mov esi, 0x6c71ca44
mov esi, section.UPX1
not edx
inc edi
mov edx, edi
mov eax, section.UPX1
sub edi, edx
sub edx, 1
or edi, edi
mov ebx, 0xa78795
sub edi, edx
mov edi, edx
mov ecx, 0
mov edx, 0xd863ef60
add edx, 1
mov cl, byte [eax]
add edi, 0xd921916d
sub edx, edi
sub edx, 0x2a8d19b1
mov byte [esi], cl
or edi, edi
add edx, 0x6e6c21f8
inc esi
or edx, edi
or edi, edi
add edx, 0x9a20cfe1
add eax, 2
not edx
inc edx
sub edx, 1
cmp eax, ebx
jle 0xa78c36
inc edx
sub edi, 1
sub esi, edi
sub edi, 0x2df3d7c4
mov esi, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
or esi, esi
dec esi
dec esi
ret