Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xa0ac6b57
sub ecx, 0xb03d12fe
sub edi, 0x3b5af61b
mov ecx, 0xae4990e6
popal
or ecx, edi
mov ecx, 0x49e8ea14
mov edi, 0x33c38b8a
mov esi, 0
mov edx, eax
add ecx, 0x2172276d
or ebx, ebx
add ecx, ecx
mov edi, edx
sub ebx, 0xe8786283
inc ecx
add ecx, 0xf14d5574
mov eax, edi
add ecx, 1
mov ecx, 0xa8d33aa8
inc esi
sub ebx, ecx
sub ebx, ecx
add ebx, ecx
cmp esi, 0x10072a3
jne 0xa789d5
not ecx
sub ecx, ebx
dec ecx
add ecx, 1
sub ecx, 0x46b0076b
sub ecx, edi
mov ecx, 0xa78796
sub esi, 0xad0ae1e1
sub ebx, 1
sub ebx, 0x39d97c16
mov edx, 0xa7898a
mov edi, 0x65fef25b
add edi, esi
sub edi, ebx
mov eax, dword [ecx]
dec edi
sub esi, 0xc6f27feb
and eax, 0xff
sub esi, 0xf22610fa
sub edi, 1
mov esi, edi
xor dword [edx], eax
add esi, ebx
mov edi, ebx
inc edx
inc edi
add ebx, edi
add ecx, 1
sub edi, 0xea66ac2e
add ebx, 0x832d2517
mov esi, 0xb75b3780
cmp edx, entry0
jl 0xa78a48
sub edi, 0xc4ccc8d8
or esi, esi
or esi, esi
sub ebx, edi
not edi
mov edi, 0xf9c1a7b9
sub ebx, ecx
dec esi
add ecx, esi
mov edx, 0xa7898e
and esi, ecx
sub esi, ecx
or esi, ebx
mov edx, dword [edx]
sub esi, 0xf0f52c8b
sub edi, 0x171e2f46
sub ecx, 1
mov edx, dword [edx]
sub esi, 0x36d92f02
add ebx, ebx
mov esi, 0x436e5f5d
push edx
mov edi, ecx
and ebx, edi
and ecx, ebx
mov edx, 0xa7898a
add ebx, esi
or ecx, ebx
mov edx, dword [edx]
inc esi
and edi, esi
mov edx, dword [edx]
add ecx, 1
mov edi, 0xd2cac78b
add ecx, edi
push 0xa78992
and esi, esi
and ecx, ecx
sub esi, ebx
call edx
mov ebx, ecx
sub ecx, edi
pop edx
mov ecx, esi
inc edi
sub ebx, 0x2a68845b
push 0xa7899f
add esi, ecx
inc ecx
push eax
mov ecx, 0xdabe7076
mov edi, ecx
call edx
mov esi, ecx
mov ebx, esi
push 0x40
mov esi, 0x88a6bf23
and ecx, edi
push 0x3000
not esi
dec ebx
sub esp, 4
mov dword [esp], 0x200000c9
or ecx, ecx
add esi, 0x7222a561
push 0
not ebx
mov esi, 0x6b1834bc
mov ebx, edi
call eax
dec ebx
or esi, ebx
mov ecx, esi
add eax, 0x20000035
inc ecx
add ecx, 0x4666db30
add ebx, 0x597ff568
mov edx, 0x8dbac9af
add edi, ecx
inc ebx
mov ecx, 0x47d9618d
mov dword [eax], edx
mov ebx, edi
add ecx, 1
mov edx, dword [eax]
or ecx, ecx
add esi, 1
and ecx, esi
cmp edx, 0x8dbac9af
je 0xa78bad
mov edx, 0
mov ecx, dword [edx]
add esi, 1
dec ecx
not edi
add esi, ebx
dec ecx
mov ecx, 0x4ce2b00b
or edi, ecx
mov edi, 0x339a6cb6
sub edi, ecx
mov edx, section.UPX1
mov ecx, edi
inc ecx
mov ebx, 0xa78795
mov ecx, edi
sub ecx, edi
mov eax, 0
and edi, ecx
add ecx, 0x3cb8a563
add ecx, 1
mov esi, 0xa78796
sub edi, ecx
mov edi, ecx
dec edi
lea esi, [esi + eax]
add ecx, 0x850ded60
add ecx, 0xe08c5d0d
mov esi, dword [esi]
and ecx, edi
and edi, edi
add edi, edi
and esi, 0xff
add edi, 0x9ecbf461
and ecx, edi
inc eax
or ecx, ecx
mov ecx, edi
cmp eax, 0x1f4
jne 0xa78c2c
mov eax, 0
add edi, 0x637590f8
sub edi, ecx
or ecx, edi
add edi, edi
dec ecx
xor dword [edx], esi
dec edi
or edi, ecx
and ecx, ecx
add edx, 2
inc ecx
sub edi, ecx
sub ecx, edi
cmp edx, ebx
jl 0xa78beb
sub ecx, edi
sub edi, 0xc96be7cf
add edi, 0x22b5294d
dec edi
or ecx, edi
mov edi, section.UPX1
mov esi, 0xcabbf228
and eax, eax
mov eax, esi
mov ecx, section.UPX1
not eax
or eax, eax
inc esi
mov ebx, 0xa78795
add esi, 0x20b43669
add eax, esi
inc eax
mov edx, 0
add esi, esi
not esi
add eax, 0xb12f8362
mov dl, byte [ecx]
or esi, eax
not esi
add eax, eax
mov byte [edi], dl
mov esi, 0x79f6569e
and esi, eax
inc edi
mov eax, 0x3b688c4b
mov eax, 0xa2826e6b
add ecx, 2
and eax, eax
sub eax, esi
cmp ecx, ebx
jle 0xa78c99
or esi, eax
add eax, 0x36d68333
dec edi
add ecx, ecx
dec ecx
push 0x8dc6a0
or ecx, ecx
sub ecx, edi
ret