Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x65e2f023
mov edx, eax
mov eax, edx
popal
add eax, 1
add edx, eax
mov ebx, 0
mov edx, ecx
add edi, 1
sub esi, 0x49b78dbb
mov esi, 0xc5869e9
mov eax, edx
add esi, edi
sub edi, esi
mov edi, 0x4570deb6
mov ecx, eax
add edi, 0xe0998180
not esi
inc ebx
sub esi, 0x9ba907e2
and edi, esi
sub esi, 0xbe1fe52f
cmp ebx, 0x100a0e5
jne 0xa789c4
add edi, esi
sub edi, esi
add esi, edi
add edx, eax
mov edx, eax
and eax, eax
mov ecx, 0xa78796
mov ebx, 0x2e5ffe05
and ebx, edi
mov edx, 0xa7898a
sub esi, edi
and ebx, ebx
or ebx, edi
mov eax, dword [ecx]
or ebx, esi
sub edi, 1
sub ebx, edi
and eax, 0xff
and ebx, edi
inc ebx
sub edi, 0x78727147
xor dword [edx], eax
not ebx
add edi, 0x654e33b1
sub ebx, edi
add edx, 1
add esi, 0xac533b9a
add edi, 0x51e09d65
inc ecx
and edi, esi
sub esi, 0xb4f30130
not ebx
cmp edx, entry0
jl 0xa78a2a
mov edi, 0x8a5567a1
mov ebx, esi
not edi
mov esi, edi
inc esi
and edi, esi
sub ebx, 0xba6808a7
mov ecx, 0xa7898e
add edi, edx
and edx, esi
mov ecx, dword [ecx]
and edx, edx
and edx, ebx
add edx, edi
mov ecx, dword [ecx]
mov edi, edx
mov edx, esi
sub ebx, 1
push ecx
add edx, 0x4238a991
or ebx, edi
add esi, 1
mov ecx, 0xa7898a
sub edx, 0xb77e02f7
sub edx, esi
sub esi, ebx
mov ecx, dword [ecx]
or edx, esi
add edi, edx
mov ecx, dword [ecx]
or esi, esi
inc ebx
sub ebx, edx
push 0xa78992
add edx, 1
add ebx, edi
sub esi, edx
call ecx
mov esi, ebx
add edi, 0xacde86d6
pop ecx
and esi, edx
add edi, 0x284d07fd
or edx, edi
push 0xa7899f
sub edi, esi
mov edi, esi
push eax
mov esi, 0x130b13f9
add edx, edi
dec edi
call ecx
inc edi
add edi, 0x5fed2cfe
or esi, ebx
sub esp, 4
mov dword [esp], 0x40
or edi, edx
and esi, edi
sub edi, esi
push 0x3000
inc edi
mov ebx, 0x8fbe3ffc
inc ebx
push 0x200001ca
mov edi, 0xcc1f8884
dec edi
sub ebx, 0x8653260e
push 0
sub esi, ebx
sub ebx, 1
call eax
add ebx, 0xe1929032
add esi, 1
add edx, 0xd2886b00
add eax, 0x20000111
add edi, esi
add edx, 0x9b168c72
mov ecx, 0x34555ec2
and edx, esi
or ebx, esi
mov dword [eax], ecx
inc esi
add edi, esi
mov ecx, dword [eax]
dec edx
and edi, esi
not esi
cmp ecx, 0x34555ec2
je 0xa78b97
mov ecx, 0
mov bl, byte [ecx]
not edi
sub edx, 0x557abae0
add ebx, 1
and edi, edx
dec edx
add edx, 0x806f5bed
sub edx, 0x18035e38
dec eax
mov ebx, section.UPX1
add edx, eax
mov eax, edx
mov ecx, 0xa78795
mov eax, edx
not eax
not eax
mov esi, 0
add edx, 0x23c5e975
or edx, edx
not eax
mov edi, 0xa78796
dec eax
sub eax, edx
lea edi, [esi + edi]
dec eax
mov eax, 0x3362973c
mov edi, dword [edi]
add eax, 1
or eax, eax
add eax, eax
and edi, 0xff
sub eax, edx
add eax, eax
inc esi
add edx, 0x4495abd0
and eax, edx
not edx
cmp esi, 0x1f4
jne 0xa78c17
mov esi, 0
add eax, 0x72533823
or eax, edx
mov edx, 0xfff6d33f
sub edx, 0xe78a7b89
mov eax, 0x26c26cab
xor dword [ebx], edi
add eax, eax
sub eax, 0xeae0b507
inc eax
add ebx, 2
not eax
not eax
sub edx, eax
cmp ebx, ecx
jl 0xa78bd8
add eax, edx
mov eax, 0x74bcf5bc
not eax
add eax, edx
mov esi, section.UPX1
or ecx, ebx
add ecx, ebx
and ebx, ebx
mov edx, section.UPX1
or ebx, ecx
not ebx
and ebx, ebx
mov edi, 0xa78795
and ecx, ecx
and ebx, ebx
mov ebx, 0x3accfcd
mov eax, 0
add ebx, ecx
add ecx, 0x4dcddab2
not ecx
mov al, byte [edx]
mov ebx, 0x4985d33f
mov ebx, ecx
and ebx, ecx
mov byte [esi], al
mov ebx, ecx
mov ecx, 0xcde6eb18
sub ebx, 0x40589b51
inc esi
sub ebx, ecx
add ecx, 0xdd7b394
add edx, 2
add ecx, ebx
mov ebx, ecx
mov ebx, ecx
cmp edx, edi
jle 0xa78c8c
inc ecx
dec ebx
and eax, edx
inc edx
not eax
push 0x8dc6a0
add edx, edx
not eax
ret