Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf5cb9b29
and ecx, ecx
add edi, 0xd4323b9d
popal
dec edi
not ecx
not edi
mov esi, 0
mov edi, edx
and ecx, ecx
inc ebx
sub ecx, ebx
mov eax, edi
sub ecx, 0x374b6f9b
and ecx, ecx
mov edx, eax
dec ebx
add ecx, 0xd5026d1c
add esi, 1
not ebx
not ebx
cmp esi, 0x1006a3e
jne 0xa789c5
or ecx, ebx
sub ebx, 1
add ebx, ebx
dec edi
mov edi, 0xf6f4d223
sub edi, 0x30b556e4
mov esi, 0xa78796
add edi, 0x3e22cc7a
inc edi
mov eax, 0xd67eb305
mov ebx, 0xa7898a
not edx
add edi, 0xbc32dd27
mov eax, edi
mov ecx, dword [esi]
add edi, eax
mov eax, 0x7c53987c
sub edi, eax
and ecx, 0xff
and edi, edx
and edi, edi
xor dword [ebx], ecx
mov edi, eax
or eax, eax
sub eax, 0xf97835f3
inc ebx
sub eax, 0x39603c51
add edi, edi
inc esi
or edx, edx
sub edi, 1
mov edx, 0x1a136a3c
cmp ebx, entry0
jl 0xa78a2b
sub edx, 0x49b1e103
sub edi, 0x8ff41155
mov eax, 0xc80a4227
or edx, edx
mov edi, 0xa36c8f01
mov eax, edi
mov ecx, edi
sub edx, 0xa63d12fe
add ecx, 0xa8261563
mov ebx, 0xa7898e
dec edi
inc edx
or edx, edi
mov ebx, dword [ebx]
add esi, esi
mov edi, ecx
mov ebx, dword [ebx]
add edx, 0x77e2cdcb
add esi, ecx
sub esp, 4
mov dword [esp], ebx
sub esi, 0x9cc243e7
mov edi, ecx
mov ebx, 0xa7898a
or edx, edi
and ecx, edx
mov ebx, dword [ebx]
not esi
mov edx, 0x785ba861
mov ebx, dword [ebx]
add ecx, 0xd10f935b
and edi, ecx
not esi
push 0xa78992
or edi, edi
or edi, edx
sub edi, 0x53f3ef7a
call ebx
add edx, 0xd05ef618
add edi, edi
pop ebx
add edi, 0x9d0f4d9d
inc esi
mov ecx, edx
push 0xa7899f
sub ecx, edi
sub edi, ecx
sub esp, 4
mov dword [esp], eax
and edx, edi
add esi, 0x7eff2d61
call ebx
mov ecx, esi
and edx, ecx
and ecx, edx
push 0x40
or edx, edi
add esi, 1
mov ecx, esi
push 0x3000
sub edi, esi
not edx
sub edi, 0x43a49f9
push 0x200009eb
inc esi
inc edi
or edi, edi
sub esp, 4
mov dword [esp], 0
not esi
add edi, 1
sub edx, esi
call eax
or edi, ecx
sub ecx, edx
add eax, 0x2000097a
mov ecx, edx
or ecx, ecx
mov ebx, 0x7d90f198
mov esi, 0x3660f990
or esi, esi
or ecx, ecx
mov dword [eax], ebx
add edi, edi
and edx, ecx
mov ebx, dword [eax]
add edx, 1
dec edx
inc edx
cmp ebx, 0x7d90f198
je 0xa78b96
mov eax, 0
mov dl, byte [eax]
sub ecx, 0xad440832
sub edi, 0xac66535f
not edx
inc edi
inc edx
dec ecx
inc edi
mov esi, section.UPX1
dec ecx
dec ecx
sub ecx, edi
mov ebx, 0xa78795
dec edi
mov edi, ecx
dec edi
mov edx, 0
and ecx, edi
dec edi
mov eax, 0xa78796
sub edi, 0x5550496b
sub edi, 0x8b63856e
lea eax, [edx + eax]
or edi, ecx
add ecx, edi
not edi
mov eax, dword [eax]
add edi, ecx
add edi, 0x8d404ece
inc edi
and eax, 0xff
or ecx, edi
sub ecx, 0xcd308971
inc edx
or edi, edi
or ecx, edi
dec edi
cmp edx, 0x1f4
jne 0xa78c08
mov edx, 0
add ecx, 1
dec edi
and ecx, ecx
sub ecx, edi
xor dword [esi], eax
and edi, edi
mov edi, 0x9da4136c
add esi, 2
add ecx, edi
sub ecx, 0x12b0acb8
cmp esi, ebx
jl 0xa78bc2
sub ecx, 0x4a2e3156
and edi, ecx
add ecx, ecx
not edi
mov ecx, section.UPX1
mov esi, edi
and edi, edi
mov ebx, section.UPX1
dec esi
dec edi
inc edi
mov edx, 0xa78795
sub edi, 0xf69b9b3
sub esi, edi
not edi
mov eax, 0
sub esi, edi
and esi, esi
sub edi, 0x446ad5c0
mov al, byte [ebx]
sub edi, 0x1813a5d4
mov edi, 0x75d71fb6
mov byte [ecx], al
and esi, esi
sub edi, esi
not edi
inc ecx
add edi, esi
mov edi, 0x749e7443
add ebx, 2
mov esi, edi
mov edi, 0x3dd71752
not edi
cmp ebx, edx
jle 0xa78c6d
and esi, edi
and esi, edi
sub edi, 0x56c59130
and ecx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
not edi
or ecx, ecx
ret