Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x391560e4
add ecx, ecx
not ecx
popal
inc eax
sub eax, 0x65686a69
mov ebx, 0
mov eax, edi
mov edx, esi
dec esi
inc edx
mov ecx, eax
or edx, esi
mov edx, 0x66b42abc
add esi, esi
mov edi, ecx
and esi, esi
add esi, edx
sub edx, 1
inc ebx
add edx, 0x16864a6c
dec esi
cmp ebx, 0x1004788
jne 0xa789c3
dec esi
and edx, edx
and esi, edx
mov eax, ecx
sub ecx, 1
not ecx
mov esi, 0xa78796
mov eax, edx
sub edx, 0x2dd3e724
sub eax, 0xcd8fb26d
mov edi, 0xa7898a
and edx, eax
and edx, ecx
or edx, ecx
mov ebx, dword [esi]
or edx, edx
and ecx, ecx
and ebx, 0xff
sub edx, 0x3ff81a6b
not edx
add ecx, edx
xor dword [edi], ebx
add ecx, edx
sub edx, 1
dec eax
inc edi
add edx, 1
mov ecx, edx
sub eax, edx
inc esi
dec edx
sub ecx, eax
sub edx, 1
cmp edi, entry0
jl 0xa78a21
inc eax
add edx, eax
or ecx, ecx
add edx, edx
mov eax, ecx
sub eax, 1
add ecx, 0xfb85dd58
dec esi
mov edx, 0xa7898e
and ebx, esi
sub esi, 0x7ffb3863
add ecx, 0xd09858ab
mov edx, dword [edx]
add esi, 0x56338d69
inc ecx
mov ecx, ebx
mov edx, dword [edx]
add esi, esi
mov ecx, edi
push edx
sub esi, edi
add edi, 0xd7fe2797
mov edx, 0xa7898a
sub esi, 0x6e39572b
or esi, esi
and ebx, esi
mov edx, dword [edx]
or ebx, esi
or ecx, edi
and ebx, edi
mov edx, dword [edx]
mov esi, 0x4efba516
and esi, esi
add esi, 0x20482426
push 0xa78992
sub edi, 1
mov edi, ebx
not ebx
call edx
dec esi
sub edi, 0x70c86511
pop edx
mov ecx, esi
mov ecx, edi
and ebx, esi
push 0xa7899f
add ebx, 0xd26408e8
mov edi, 0x9529045c
inc esi
push eax
dec ebx
sub ecx, ebx
call edx
or ebx, esi
dec ecx
and edi, esi
push 0x40
mov ecx, esi
sub edi, 1
push 0x3000
sub ebx, ecx
sub esi, 0xf028be29
sub edi, ecx
push 0x200004bb
mov edi, 0xf9819445
or esi, edi
not ebx
sub esp, 4
mov dword [esp], 0
not edi
add edi, 0xe17ff16e
inc edi
call eax
or edi, ecx
mov esi, ecx
add eax, 0x2000044b
mov esi, 0x7a5f7c23
mov edi, esi
mov edx, 0xcd72ca2e
and ebx, ebx
not ebx
sub edi, 0x102a47ff
mov dword [eax], edx
and edi, esi
not esi
and edi, ecx
mov edx, dword [eax]
sub ebx, esi
add ebx, 0x5ba5c84e
cmp edx, 0xcd72ca2e
je 0xa78b87
mov edx, 0
mov byte [edx], bl
sub ebx, 0xee6ad55c
add ecx, ecx
and ecx, esi
inc ebx
dec ecx
add ecx, 1
inc eax
mov ebx, section.UPX1
not eax
sub ecx, eax
add ecx, ecx
mov edi, 0xa78795
add ecx, 0x3f4f5dcf
mov ecx, 0xad7bd6af
mov edx, 0
sub eax, 0x63535d25
mov eax, ecx
mov esi, 0xa78796
add ecx, ecx
not ecx
and eax, eax
lea esi, [esi + edx]
dec ecx
sub ecx, eax
mov esi, dword [esi]
mov eax, ecx
or ecx, ecx
add eax, 0x254f443d
and esi, 0xff
or ecx, eax
mov ecx, eax
inc edx
mov eax, ecx
sub ecx, eax
cmp edx, 0x1f4
jne 0xa78bfb
mov edx, 0
or ecx, eax
or ecx, ecx
or ecx, eax
dec eax
mov ecx, 0x883ee6cb
xor dword [ebx], esi
sub eax, ecx
or eax, eax
sub ecx, eax
add ebx, 2
and ecx, ecx
sub eax, ecx
cmp ebx, edi
jl 0xa78bc2
and ecx, ecx
not eax
and eax, ecx
add eax, 1
add eax, ecx
add eax, ecx
mov edx, section.UPX1
not eax
or esi, esi
mov ecx, section.UPX1
not eax
or eax, eax
mov edi, 0xa78795
add esi, esi
sub esi, 1
mov esi, eax
mov ebx, 0
mov esi, eax
mov eax, esi
mov bl, byte [ecx]
sub eax, 0x9e3c3d40
dec eax
mov byte [edx], bl
dec esi
mov esi, eax
add edx, 1
add eax, 0x592679b6
dec eax
add ecx, 2
add eax, esi
or esi, esi
cmp ecx, edi
jle 0xa78c5b
mov esi, 0x760c2cec
mov eax, 0x9ae58f40
dec ecx
sub eax, ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
or eax, ecx
or ecx, ecx
ret