Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbe999b64
or edx, edx
dec esi
and esi, edx
popal
or esi, edx
dec edx
add edx, edx
mov eax, 0
mov ecx, ebx
sub edi, 0x9fba82c8
add esi, edi
mov edx, ecx
add esi, edi
add edi, esi
or esi, esi
mov ebx, edx
mov esi, edi
sub esi, edi
add edi, 0x39582f20
inc eax
dec edi
and esi, edi
cmp eax, 0x10009a4
jne 0xa789c2
and esi, edi
dec esi
sub esi, 0x7653f998
sub edx, 0x361d6b3c
add esi, edx
mov edx, 0xa78796
inc ebx
sub ecx, edi
mov eax, 0xa7898a
or ecx, ebx
not edi
mov esi, dword [edx]
not ebx
mov ebx, ecx
and esi, 0xff
and ebx, edi
mov ebx, 0xbd438b6f
or ebx, ecx
xor dword [eax], esi
add edi, ecx
mov edi, ebx
inc eax
dec edi
sub ebx, 0xf682bce5
inc edx
sub ecx, edi
mov edi, ecx
cmp eax, entry0
jl 0xa78a12
mov ecx, ebx
mov ecx, 0x354c3716
inc ecx
inc ebx
sub edi, ebx
sub ebx, 1
or ebx, ebx
mov esi, 0xa7898e
mov edx, 0x1661061a
dec edi
mov esi, dword [esi]
not edi
sub edi, 0xc19bfd24
mov esi, dword [esi]
mov ecx, 0x9de80f41
sub edi, ebx
inc ecx
push esi
sub ebx, 0x22887b9a
and ebx, edi
add ebx, 0xb719bf1e
mov esi, 0xa7898a
add ebx, ebx
add edx, 0x8a6f9fd3
mov edx, ecx
mov esi, dword [esi]
add edi, 0xfa3c7788
or ebx, edi
sub ebx, edx
mov esi, dword [esi]
sub ebx, edi
or edi, ecx
push 0xa78992
or ecx, ebx
dec ecx
add edx, 0x384ea4e2
call esi
add ecx, ebx
inc edx
mov esi, dword [esp]
add esp, 4
sub edx, 0x63163e3b
mov edi, ecx
inc edx
sub esp, 4
mov dword [esp], 0xa7899f
add ecx, 0xffdce2cc
sub ecx, 1
or edx, ebx
sub esp, 4
mov dword [esp], eax
and ebx, ecx
sub edx, ecx
call esi
add ecx, 1
or ecx, ecx
push 0x40
add edi, edx
not ebx
push 0x3000
mov edx, 0x489d2a96
dec ebx
and ecx, ebx
sub esp, 4
mov dword [esp], 0x20000d8c
not ecx
not ebx
push 0
mov edx, 0xe95b10fa
mov edi, 0x72d803fb
mov ecx, 0xa44d8ee1
call eax
sub ebx, 0x4be472e2
add ebx, 0x71d237e4
and ebx, edi
add eax, 0x20000d26
sub ecx, 0x141e426f
add edx, 0x3363e4a5
inc edx
mov esi, 0x9fe6a573
and edi, ebx
mov ecx, edx
add ecx, 0x7e75ef21
mov dword [eax], esi
mov ebx, edi
mov ebx, 0x59da2d97
not ecx
mov esi, dword [eax]
sub ebx, 0x59940543
sub ebx, ecx
sub ecx, ebx
cmp esi, 0x9fe6a573
je 0xa78b86
mov edx, 0
mov bl, byte [edx]
dec ecx
mov edi, 0xe00dd50c
sub edi, 0xc0df5946
add ebx, 0xfd1d433d
or edx, edx
mov edx, esi
sub edx, 0x4556fcfd
mov ebx, section.UPX1
mov esi, edx
sub esi, edx
mov ecx, 0xa78795
and esi, esi
add esi, 0x50c3445b
mov edi, 0
or edx, esi
not esi
mov eax, 0xa78796
mov edx, 0xaeab863f
add esi, 0x74db1ed8
or edx, edx
lea eax, [eax + edi]
not edx
or edx, edx
sub edx, 0xd79dbc73
mov eax, dword [eax]
dec esi
sub esi, edx
and eax, 0xff
or edx, esi
or edx, esi
inc edi
add esi, 0x62bcc30f
add esi, esi
or esi, edx
cmp edi, 0x1f4
jne 0xa78c07
mov edi, 0
inc edx
sub esi, 0xbb29372a
dec edx
add edx, esi
sub esi, 0x6579a7cd
xor dword [ebx], eax
sub esi, 0xc5643d53
sub edx, esi
add ebx, 2
dec edx
not edx
inc esi
cmp ebx, ecx
jl 0xa78bc1
sub edx, esi
add esi, 0x89a2e109
and edx, edx
dec edx
inc edx
mov esi, section.UPX1
add edx, 0x48d5f027
not edx
dec edx
mov ebx, section.UPX1
mov ecx, edx
mov edx, ecx
mov edi, 0xa78795
add ecx, edx
and edx, edx
not edx
mov eax, 0
or edx, edx
mov ecx, 0xcc3be261
mov edx, ecx
mov al, byte [ebx]
dec ecx
add ecx, edx
mov byte [esi], al
not ecx
add edx, 0xae074cb7
mov edx, 0xa8f4bf5a
inc esi
add edx, ecx
not edx
add ebx, 2
sub ecx, 1
add edx, 0xab49cab0
add ecx, 0xa55f36bf
cmp ebx, edi
jle 0xa78c6f
not edx
mov edx, ecx
or ecx, ecx
dec edx
sub edx, 0x25d87769
sub esp, 4
mov dword [esp], 0x8dc6a0
or esi, esi
sub edx, esi
ret