Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9665bd9e
sub edx, 0x8f90c6ae
mov edx, edi
popal
and edi, edi
and edx, edi
add edi, edx
mov eax, 0
mov ecx, edi
sub ebx, 0x218dc05c
or esi, esi
add esi, esi
mov edx, ecx
dec esi
mov esi, 0x32a31319
mov esi, ebx
mov edi, edx
or esi, esi
dec ebx
not esi
inc eax
mov esi, 0x4eef98ae
add esi, 0x9510a529
mov ebx, 0x5deee566
cmp eax, 0x1007112
jne 0xa789c6
and esi, esi
sub esi, 1
and esi, esi
mov edx, 0xb168f35a
sub edx, 0x7bb27ce2
mov ecx, 0xa78796
add eax, 0x11b1186
not edi
mov edi, eax
mov ebx, 0xa7898a
add eax, 0x8bd7a4d7
or edi, eax
sub edi, 0xa317768f
mov edx, dword [ecx]
add eax, eax
not eax
and edx, 0xff
inc edi
sub esi, eax
xor dword [ebx], edx
mov edi, 0xbcbe0d84
sub eax, esi
inc eax
inc ebx
or edi, eax
inc eax
add edi, eax
inc ecx
mov eax, esi
or edi, esi
add edi, esi
cmp ebx, entry0
jl 0xa78a37
sub edi, 0xf346cbb0
or edi, eax
mov esi, eax
or esi, esi
not edi
sub ecx, edi
mov ecx, edx
sub ebx, edx
mov esi, 0xa7898e
sub edx, ebx
mov ecx, 0xb58bddd3
add ecx, edx
mov esi, dword [esi]
add edi, ecx
add ecx, ebx
mov ebx, 0x6ae04cd4
mov esi, dword [esi]
inc edx
dec edi
sub esp, 4
mov dword [esp], esi
add ebx, edx
and edi, ecx
add edi, 0xa5b1826a
mov esi, 0xa7898a
mov edx, 0xf6af7ebc
sub ebx, 0xe59bbd0b
mov esi, dword [esi]
add ecx, 0x62ec7210
add ecx, 0xc0fc05ba
mov esi, dword [esi]
dec edi
dec edx
sub esp, 4
mov dword [esp], 0xa78992
sub edi, 0xc4a982f0
or ebx, ebx
or edi, edi
call esi
mov ecx, 0x93b1629a
add edi, 1
not edx
pop esi
inc edi
and edx, edx
not ecx
push 0xa7899f
add ebx, ebx
or edi, edx
sub ecx, edi
sub esp, 4
mov dword [esp], eax
add ecx, ecx
add ecx, ecx
mov edi, ecx
call esi
mov edi, ebx
and ecx, edi
mov ecx, 0x840c1f94
push 0x40
and ebx, edi
sub edi, 0x42327a77
or ebx, ebx
push 0x3000
or ebx, edx
mov ebx, 0x6e33e146
not edi
sub esp, 4
mov dword [esp], 0x2000034e
add edi, ecx
dec ecx
push 0
and edx, edx
mov edx, ecx
dec ebx
call eax
and ebx, ebx
or edi, ecx
add eax, 0x200002de
sub ecx, edx
add ebx, edi
mov esi, 0xc5c5c7b9
or edi, edx
sub edx, 0x17b13612
mov dword [eax], esi
and ebx, edi
add edx, 1
inc edi
mov esi, dword [eax]
add edx, 1
add ecx, edx
cmp esi, 0xc5c5c7b9
je 0xa78b8c
mov ebx, 0
mov cl, byte [ebx]
mov ecx, edi
mov ecx, 0xde7a8c4c
and ebx, ebx
mov ecx, 0x1ef4b1a8
not edx
sub edx, edi
sub edi, edx
mov edi, edx
mov esi, section.UPX1
sub edi, edx
mov edi, 0x315c3d28
sub edi, edx
mov ecx, 0xa78795
or edx, edi
add edx, 1
mov eax, 0
sub edx, edi
mov edi, 0xe53ebac8
mov ebx, 0xa78796
dec edx
not edx
add edi, 0x60dd5d4d
lea ebx, [ebx + eax]
add edx, 0x446df7bd
sub edi, 0x488084
mov ebx, dword [ebx]
sub edx, edi
sub edx, edi
and ebx, 0xff
and edx, edx
mov edx, edi
sub edi, 0xc448de5e
inc eax
and edi, edi
add edx, 0x267f1efa
not edx
cmp eax, 0x1f4
jne 0xa78c14
mov eax, 0
and edx, edx
and edi, edx
add edx, edi
mov edx, 0x30223efe
add edx, 0xa75dd122
xor dword [esi], ebx
not edi
and edx, edx
add esi, 2
inc edi
dec edx
add edi, edx
cmp esi, ecx
jl 0xa78bc9
not edx
and edx, edi
mov edi, 0x2f801133
mov edx, 0x7302f3e0
mov edx, 0xf56d6b04
mov esi, section.UPX1
or ebx, ecx
and ecx, ebx
mov ecx, 0x4a3466fb
mov edi, section.UPX1
add ebx, 0x34edb4aa
add ecx, 0x9e943201
add ecx, ebx
mov eax, 0xa78795
not ebx
or ecx, ebx
mov ecx, 0x38902169
mov edx, 0
or ebx, ecx
sub ebx, ecx
inc ecx
mov dl, byte [edi]
sub ecx, ebx
sub ebx, ecx
mov byte [esi], dl
or ebx, ebx
and ebx, ecx
inc esi
inc ebx
sub ebx, 0xda87fa09
add ecx, 1
add edi, 2
and ecx, ecx
sub ecx, 0x88f50b7b
cmp edi, eax
jle 0xa78c89
and ecx, ecx
add ebx, 1
sub edx, 0xbff101ac
mov edi, edx
push 0x8dc6a0
mov edx, 0x386d34db
and edx, edx
and edx, edx
ret