Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc1cf4eb1
add edi, edx
and edx, edx
sub edx, 0x8916e465
popal
add edx, 1
sub edx, 1
add edi, edx
mov ecx, 0
mov ebx, edi
mov esi, edx
and edx, edx
mov eax, ebx
mov esi, edx
mov esi, 0xb7231fb2
mov edi, eax
add esi, 0xea14b82f
sub edx, 0xe0186138
inc ecx
add esi, 0xe39f3fe9
and esi, esi
sub esi, 0xad049aed
cmp ecx, 0x100878f
jne 0xa789d0
inc esi
add esi, 0xad83d9ea
sub edx, edi
sub edx, 0x630274e4
dec edx
mov ecx, 0xa78796
mov edi, 0xa76309ae
mov edx, esi
mov ebx, 0xa7898a
add esi, edx
add edx, 0x9a088cc
add edx, 0xce45cbb6
mov eax, dword [ecx]
or esi, edx
and edi, edx
and eax, 0xff
add edi, edi
add esi, 0x7e152b82
xor dword [ebx], eax
add edx, 1
sub esi, edi
dec edi
inc ebx
sub esi, 1
and esi, esi
add ecx, 1
mov edx, 0xc43b8136
or edx, edx
inc edi
cmp ebx, entry0
jl 0xa78a37
mov esi, 0x557b0b83
sub esi, edx
sub esi, edi
not edx
or ecx, edx
dec ebx
mov edi, 0xa7898e
and ebx, ecx
sub ecx, 1
mov edi, dword [edi]
not ebx
or edx, ecx
mov edi, dword [edi]
mov ebx, esi
dec ecx
mov edx, ecx
push edi
add ecx, 0x70648266
and esi, ebx
mov edi, 0xa7898a
mov esi, 0xa69b4693
sub esi, 0xc99ad692
sub edx, ebx
mov edi, dword [edi]
not edx
or edx, edx
mov edi, dword [edi]
dec ecx
or esi, ebx
push 0xa78992
add edx, ebx
mov ecx, edx
call edi
not edx
inc esi
pop edi
sub ecx, 0x74143b8f
mov edx, esi
push 0xa7899f
inc ecx
or edx, ecx
push eax
add esi, 0x6ff259f0
add edx, 1
sub ecx, 0xb0431c
call edi
not edx
sub edx, esi
push 0x40
mov edx, esi
add ecx, 0x8bd305f8
sub esp, 4
mov dword [esp], 0x3000
and ebx, esi
mov ecx, 0xd2df0f27
push 0x200007a6
dec ecx
dec edx
push 0
and ebx, edx
sub esi, ecx
call eax
inc esi
mov ecx, 0x63c24d9c
not ebx
add eax, 0x20000739
or ecx, edx
or ebx, edx
sub ecx, esi
mov edi, 0xa5e43917
sub ecx, edx
and ebx, esi
inc ecx
mov dword [eax], edi
or edx, ebx
not edx
mov edi, dword [eax]
not edx
sub ecx, edx
sub ebx, 0x54c448f1
cmp edi, 0xa5e43917
je 0xa78b6e
mov ebx, 0
mov cl, byte [ebx]
dec esi
not ebx
not ecx
sub ebx, 0x23ca5f98
mov edx, 0x6cd933a5
mov edi, edx
mov eax, section.UPX1
add edi, edx
or edi, edx
sub edi, edx
mov ebx, 0xa78795
not edi
not edx
sub edx, edi
mov ecx, 0
inc edi
sub edx, 1
mov esi, 0xa78796
mov edx, edi
add edx, edi
lea esi, [esi + ecx]
or edx, edi
add edi, 0x2e5fe0da
mov edi, edx
mov esi, dword [esi]
dec edx
or edx, edi
sub edx, 0x7a63aed8
and esi, 0xff
sub edi, 0x32bec58
add edx, edx
mov edi, edx
inc ecx
or edx, edi
sub edx, edi
cmp ecx, 0x1f4
jne 0xa78be5
mov ecx, 0
dec edi
sub edx, 0x8ca629c5
add edi, edx
dec edx
inc edx
inc edx
xor dword [eax], esi
sub edi, 0xc615844d
or edx, edx
not edx
add eax, 2
sub edi, edx
sub edi, 0xee9e1cc
cmp eax, ebx
jl 0xa78ba2
not edi
not edi
mov edx, 0x8dcd3133
dec edx
sub edi, 1
mov edx, edi
mov edi, section.UPX1
add edx, edx
add edx, ecx
add edx, 0xa2383c5
mov esi, section.UPX1
not ecx
mov edx, ecx
sub ecx, edx
mov eax, 0xa78795
mov edx, ecx
dec ecx
mov ecx, edx
mov ebx, 0
not edx
or edx, edx
inc edx
mov bl, byte [esi]
sub edx, ecx
add edx, ecx
mov ecx, edx
mov byte [edi], bl
sub ecx, edx
or ecx, ecx
add edi, 1
add ecx, 0x2e6a710e
dec edx
add esi, 2
and ecx, ecx
mov edx, ecx
cmp esi, eax
jle 0xa78c53
add edx, 0x93340e97
or edx, ecx
add ecx, edx
or edx, edx
or edx, edx
push 0x8dc6a0
or edx, edx
dec edi
inc edi
ret