Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb0dcb8a9
add esi, 0x251c58cd
or esi, esi
popal
sub esi, ebx
inc esi
mov eax, 0
mov ecx, edx
add ebx, 0xa8ea48fb
or esi, esi
sub esi, 0x21569abf
mov edi, ecx
mov ebx, esi
mov ebx, 0x7655f79e
add esi, 1
mov edx, edi
or esi, esi
not ebx
sub esi, 0xc854dc02
inc eax
mov ebx, esi
sub esi, ebx
cmp eax, 0x1003169
jne 0xa789c3
mov ebx, 0x92456bf5
not esi
add ebx, esi
sub ebx, 0xc74ade2d
mov edx, 0xa78796
not ecx
or eax, eax
and ecx, edi
mov esi, 0xa7898a
and eax, eax
not eax
mov ebx, dword [edx]
add eax, 0xa087cd80
dec edi
mov edi, ecx
and ebx, 0xff
and edi, edi
inc eax
xor dword [esi], ebx
and eax, eax
add eax, 0x6211ea5
and edi, edi
inc esi
and eax, ecx
add eax, eax
mov edi, ecx
inc edx
or ecx, edi
not ecx
add edi, edi
cmp esi, entry0
jl 0xa78a22
add ecx, edi
inc edi
not edi
dec edi
add ecx, 0x1447e401
and edi, ebx
sub edi, 1
mov edx, 0xa7898e
or esi, ecx
or edi, esi
not edi
mov edx, dword [edx]
or ebx, edi
mov ecx, 0xda929511
mov edx, dword [edx]
mov ebx, 0x80261066
and edi, esi
sub esp, 4
mov dword [esp], edx
add ecx, 1
and edi, ecx
mov edx, 0xa7898a
or edi, esi
not esi
sub edi, 0x7110a553
mov edx, dword [edx]
or esi, edi
not edi
or ecx, ecx
mov edx, dword [edx]
sub ebx, 0x75d2eceb
add edi, 1
push 0xa78992
sub edi, esi
sub ebx, 0x14e1c4b7
call edx
inc ebx
mov esi, 0x482a0a6b
pop edx
mov ebx, ecx
or ecx, ebx
not ebx
push 0xa7899f
and edi, esi
mov ebx, 0x5397523d
sub esp, 4
mov dword [esp], eax
sub esi, 1
and edi, edi
not edi
call edx
sub esi, 0x5c79c7b7
mov esi, 0xe14c5233
push 0x40
or ecx, edi
sub edi, 0xd239fb5
and ecx, edi
push 0x3000
mov esi, 0x2465fab0
and edi, ebx
add edi, edi
sub esp, 4
mov dword [esp], 0x20000ac2
sub esi, 0x53aa7b38
not ecx
push 0
not ebx
add edi, ebx
sub ecx, 0xebe0db87
call eax
sub esi, 1
dec edi
add eax, 0x20000a19
and esi, ecx
mov esi, edi
mov edx, 0x859f0eb
sub esi, 1
inc ecx
add ebx, 0xadfd2a7e
mov dword [eax], edx
add esi, edi
inc esi
add esi, 0xe345e580
mov edx, dword [eax]
or ecx, esi
mov ebx, esi
or ebx, ebx
cmp edx, 0x859f0eb
je 0xa78b8a
mov ebx, 0
mov dword [ebx], ecx
sub ebx, esi
mov esi, ebx
mov ebx, esi
sub ebx, 0xa0c14a45
sub esi, ebx
add esi, 0x3dfe749a
sub esi, ebx
mov edi, section.UPX1
or esi, esi
add esi, ebx
add esi, ebx
mov eax, 0xa78795
inc ebx
dec ebx
mov ebx, esi
mov edx, 0
or ebx, esi
not esi
mov ecx, 0xa78796
dec ebx
and ebx, esi
or esi, ebx
lea ecx, [edx + ecx]
or esi, ebx
not ebx
mov ecx, dword [ecx]
or ebx, esi
add ebx, esi
add ebx, esi
and ecx, 0xff
sub ebx, 0x7aae57b2
or ebx, esi
inc edx
add esi, 0xf7a3600e
mov ebx, 0x70f70d70
mov esi, ebx
cmp edx, 0x1f4
jne 0xa78bff
mov edx, 0
or esi, ebx
dec esi
sub ebx, esi
add esi, 0xe3804597
not esi
xor dword [edi], ecx
add ebx, esi
mov esi, 0x6387d3a4
add edi, 2
mov esi, ebx
sub esi, 0xe7197229
add ebx, ebx
cmp edi, eax
jl 0xa78bbd
dec esi
add ebx, ebx
inc esi
sub esi, ebx
not esi
mov esi, section.UPX1
sub edx, 0x1fc949ca
or edi, edi
mov ecx, section.UPX1
add edi, 0xe2fc09f3
add edx, edi
inc edx
mov ebx, 0xa78795
mov edx, 0xc59797fe
add edi, edx
mov eax, 0
inc edi
dec edx
not edx
mov al, byte [ecx]
mov edx, 0xfb07e3fd
add edi, edi
mov byte [esi], al
mov edi, edx
inc edi
inc esi
add edx, 0xf8114be3
sub edx, 0x11518437
add ecx, 2
add edi, edi
sub edi, 0xab969591
cmp ecx, ebx
jle 0xa78c65
add edx, 0xf6145d94
not edx
add edx, 0xff5638c5
add esi, 0x7c4cc87b
add esi, esi
mov ebx, esi
push 0x8dc6a0
or esi, ebx
and ebx, ebx
add esi, esi
ret