Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7885db49
dec eax
mov ecx, 0xdbdf5e40
popal
mov ecx, 0x28ccab9c
inc eax
dec eax
mov edx, 0
mov esi, eax
add ecx, 0x24448c6b
add edi, ecx
add ecx, 0xff18bad
mov ebx, esi
mov edi, ecx
sub ecx, edi
sub ecx, edi
mov eax, ebx
sub ecx, 0x2f755608
add edi, edi
add edx, 1
add ecx, 0x5d8ddd03
mov edi, ecx
add edi, ecx
cmp edx, 0x1006826
jne 0xa789c5
not edi
add ecx, edi
mov eax, 0xb98b9de1
dec ecx
mov ecx, 0xba1a6553
mov ebx, 0xa78796
sub edi, edx
add eax, eax
mov ecx, 0xa7898a
dec edx
dec edx
sub edx, 1
mov esi, dword [ebx]
and edi, edi
or edx, edx
add edx, 0xfd8ff77
and esi, 0xff
not edx
sub edx, 0x69e6a7ba
xor dword [ecx], esi
mov edi, eax
not eax
inc ecx
mov eax, 0x53735994
and edi, edx
mov edx, eax
inc ebx
mov edx, 0x537bbfa4
not edi
cmp ecx, entry0
jl 0xa78a28
and edi, edx
add edx, edi
add eax, 0x8555cc2d
inc eax
and edi, edx
sub ecx, 0xe83ec2ce
add edx, esi
mov edi, 0xa7898e
inc esi
add ebx, ebx
add esi, edx
mov edi, dword [edi]
and ebx, ebx
and ecx, ecx
mov edi, dword [edi]
add ebx, 1
add edx, 0x6e340d93
and edx, ebx
push edi
sub edx, 0xaed2f021
add ebx, 1
add ebx, 0x6c505a3c
mov edi, 0xa7898a
or ebx, esi
add esi, 0x3d889f13
mov edi, dword [edi]
sub edx, ecx
sub ecx, 0x20e7ec8f
dec esi
mov edi, dword [edi]
mov esi, ebx
and ebx, ebx
dec edx
push 0xa78992
not edx
not ecx
sub ebx, edx
call edi
add ebx, esi
or ebx, esi
pop edi
not ecx
inc edx
dec ecx
sub esp, 4
mov dword [esp], 0xa7899f
mov ebx, esi
not esi
push eax
add esi, 0xa0119205
add esi, ebx
mov edx, 0x61d08142
call edi
not ecx
sub ecx, 0xd8805a74
add esi, ecx
push 0x40
sub esi, 0x5f56ee9f
add ecx, 0xe2672ddc
add esi, 0xc7a95ea2
sub esp, 4
mov dword [esp], 0x3000
mov ebx, 0x246fe3c2
and ecx, edx
push 0x20000333
add ebx, edx
mov esi, 0x5b823cac
sub esp, 4
mov dword [esp], 0
not ebx
not ebx
and esi, ecx
call eax
sub edx, 0x9e27997d
and esi, esi
add eax, 0x200002be
inc ecx
add ebx, edx
mov edi, 0x6ded6b5b
sub esi, 0x69b06134
mov esi, 0xefbb3b05
add edx, 0xf320bbde
mov dword [eax], edi
and ebx, ebx
mov edx, 0xeca26306
mov edi, dword [eax]
or ebx, ecx
sub ebx, ecx
or ecx, ebx
cmp edi, 0x6ded6b5b
je 0xa78b98
mov ebx, 0
mov eax, dword [ebx]
inc edx
not edx
sub ecx, ebx
add esi, 0xaae1c3d
mov eax, ecx
dec eax
mov esi, section.UPX1
add ecx, 0xe5d8ed99
sub eax, 1
mov eax, 0x4b09a931
mov ebx, 0xa78795
or ecx, ecx
sub ecx, eax
mov edx, 0
sub eax, 0xb84ecfda
or ecx, ecx
and eax, ecx
mov edi, 0xa78796
mov eax, ecx
sub ecx, 0x83a052e4
lea edi, [edi + edx]
add ecx, ecx
inc ecx
mov edi, dword [edi]
inc eax
sub ecx, eax
and edi, 0xff
sub ecx, 0x11cc9f96
add ecx, 0x4fb586ce
and ecx, ecx
inc edx
mov ecx, eax
and ecx, eax
add eax, ecx
cmp edx, 0x1f4
jne 0xa78c14
mov edx, 0
mov eax, 0x24e6f641
add eax, ecx
sub eax, 0x3ca8013
mov eax, ecx
sub eax, 0x71ed2e9c
add ecx, 0x4270d2da
xor dword [esi], edi
inc ecx
not ecx
add esi, 2
inc ecx
add ecx, eax
and eax, ecx
cmp esi, ebx
jl 0xa78bd4
add ecx, eax
and ecx, ecx
mov ecx, 0x4491168
inc ecx
dec eax
add eax, ecx
mov ecx, section.UPX1
and esi, esi
and esi, esi
mov esi, edi
mov ebx, section.UPX1
add esi, 0xc4e3af07
dec esi
add esi, esi
mov eax, 0xa78795
sub esi, edi
sub esi, 1
mov edi, 0x21f453c9
mov edx, 0
sub edi, 1
mov esi, edi
mov dl, byte [ebx]
mov esi, edi
add esi, 0xe5ea59db
not edi
mov byte [ecx], dl
and edi, edi
inc esi
inc ecx
sub edi, 0x966bea59
inc edi
add ebx, 2
mov edi, 0xd573a1ea
dec edi
cmp ebx, eax
jle 0xa78c8c
sub esi, edi
mov esi, edi
add edi, esi
dec ecx
mov ecx, eax
sub ecx, eax
push 0x8dc6a0
add eax, ecx
and ecx, eax
ret