Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd65aae49
sub edx, ecx
not edx
add edx, ecx
popal
sub edx, ecx
mov ecx, edx
mov eax, 0
mov edx, ebx
sub edi, 0x73e1846f
mov ecx, edi
sub ecx, edi
mov esi, edx
sub edi, 0x98905788
or ecx, ecx
mov ebx, esi
not edi
add edi, ecx
inc eax
add edi, 0xe1b8aa6f
sub ecx, edi
add edi, edi
cmp eax, 0x1009712
jne 0xa789c2
add edi, 0x523b3be1
add ecx, edi
sub ecx, edi
add edx, edx
inc edx
add edx, ecx
mov ebx, 0xa78796
dec ecx
add edi, edx
add ecx, ecx
mov esi, 0xa7898a
sub edx, 0x7664bd70
inc edx
mov eax, dword [ebx]
mov edi, 0xf4bd63b
not edx
and eax, 0xff
mov edx, 0x562c0f1
not edi
xor dword [esi], eax
add edx, edi
dec edi
sub edx, 0xe43e9d64
inc esi
mov ecx, edx
mov edx, 0x48f019f9
add edi, edi
inc ebx
mov edi, 0xc69c11e
inc edi
cmp esi, entry0
jl 0xa78a1a
dec edi
not edi
not edi
mov edi, 0xad109317
not edx
sub edx, ecx
mov ecx, edx
mov edi, 0xa7898e
or ecx, ecx
dec edx
mov edi, dword [edi]
add ebx, 0x81b413e3
or edx, ebx
mov edi, dword [edi]
add edx, edx
add esi, 0x8f375dc3
and esi, edx
sub esp, 4
mov dword [esp], edi
add ecx, 0xcc74b937
mov esi, 0x2744f803
not esi
mov edi, 0xa7898a
add ecx, 1
add ecx, 1
mov edi, dword [edi]
add ecx, ecx
sub ebx, 0x36b8a320
or ecx, ebx
mov edi, dword [edi]
mov edx, 0xc1884822
inc edx
push 0xa78992
sub esi, 1
sub ebx, 0xbe19585c
call edi
add ebx, 0x1533ea5f
dec esi
pop edi
and ebx, esi
dec edx
push 0xa7899f
and edx, edx
add edx, 0x7dcde588
dec edx
push eax
or esi, esi
inc ecx
sub esi, edx
call edi
or esi, edx
sub ecx, 0xa3ac7589
mov ebx, esi
sub esp, 4
mov dword [esp], 0x40
sub edx, 0x603512db
sub esi, 1
not edx
push 0x3000
sub edx, ebx
sub ecx, esi
add edx, ecx
push 0x20000add
mov ebx, 0x485c71e4
sub ecx, 0xc147b3a2
not ecx
push 0
not edx
and esi, edx
call eax
and ebx, edx
and esi, esi
and ebx, edx
add eax, 0x20000a44
mov ebx, ecx
or esi, ebx
sub edx, 0xf661dd60
mov edi, 0xecefc7b7
mov ecx, edx
sub ebx, edx
mov dword [eax], edi
sub ebx, 0xa03fb84c
inc edx
mov edi, dword [eax]
mov edx, 0xe3a8b202
add ecx, 0x4bc9db56
cmp edi, 0xecefc7b7
je 0xa78b80
mov ecx, 0
mov eax, dword [ecx]
and esi, edx
add esi, ecx
or esi, esi
not edx
or ecx, esi
sub esi, 0xd4de0c57
add edx, ecx
sub edx, 0x1c640901
add ecx, edx
mov eax, section.UPX1
dec ecx
inc edx
mov esi, 0xa78795
dec edx
not ecx
and edx, ecx
mov edi, 0
or ecx, edx
dec edx
not edx
mov ebx, 0xa78796
or ecx, ecx
sub ecx, 0xdb9974a7
sub ecx, edx
lea ebx, [ebx + edi]
sub edx, ecx
add edx, edx
or ecx, ecx
mov ebx, dword [ebx]
inc ecx
mov edx, 0x9daeb798
and ebx, 0xff
sub ecx, 0x91e46aba
not ecx
add edx, 0x27d93328
inc edi
dec edx
and edx, ecx
inc edx
cmp edi, 0x1f4
jne 0xa78bfb
mov edi, 0
mov edx, ecx
and ecx, ecx
sub edx, 0x669c9548
not ecx
dec ecx
not ecx
xor dword [eax], ebx
add ecx, edx
sub edx, 0x4bd5179e
add ecx, 0x98caf060
add eax, 2
dec edx
add edx, edx
cmp eax, esi
jl 0xa78bb5
mov ecx, edx
not edx
and edx, edx
or ecx, ecx
mov ecx, section.UPX1
add eax, eax
or eax, eax
mov edx, section.UPX1
dec eax
add eax, eax
mov edi, 0xa78795
mov eax, 0x87db17bf
add esi, eax
add esi, 0x80bdbb76
mov ebx, 0
sub esi, eax
sub esi, eax
sub eax, esi
mov bl, byte [edx]
sub eax, esi
and eax, esi
inc eax
mov byte [ecx], bl
dec esi
and esi, esi
and eax, eax
inc ecx
or eax, esi
not eax
not eax
add edx, 2
sub esi, 0xcbe6a3a2
dec eax
cmp edx, edi
jle 0xa78c61
dec eax
not eax
and edx, edx
add edx, ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
add edx, 0x75b81067
inc edx
ret