Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xca37b7f4
dec eax
mov ebx, eax
add ebx, 0xe7ab4e25
popal
and ebx, eax
and ebx, ebx
inc ebx
mov ecx, 0
mov eax, edi
mov esi, ebx
or ebx, esi
mov edx, eax
mov esi, ebx
mov ebx, 0x61c6eb25
add ebx, ebx
mov edi, edx
dec esi
mov esi, 0x7be7aeff
inc ecx
and esi, esi
mov esi, ebx
cmp ecx, 0x10069ca
jne 0xa789c6
dec esi
add ebx, ebx
add ebx, ebx
and ebx, ebx
add ebx, ebx
mov esi, 0xa78796
sub edx, eax
sub edi, 0xab53c9c4
or edi, edi
mov ebx, 0xa7898a
mov edx, 0x67aee075
add edx, 0xf38b222a
sub edx, eax
mov ecx, dword [esi]
dec edi
dec edx
and edi, edi
and ecx, 0xff
or edi, edx
or edi, edx
xor dword [ebx], ecx
mov edx, eax
sub eax, 0x427a770e
inc ebx
mov eax, 0xbc47fb96
add edi, edx
and edx, edi
inc esi
mov eax, 0xd25a4cb0
not eax
inc edi
cmp ebx, entry0
jl 0xa78a1a
mov eax, edi
not edi
sub edi, 1
add edx, edx
sub eax, edi
and ecx, esi
dec ebx
mov edi, 0xa7898e
add edx, 0xa419ef69
sub esi, 1
not esi
mov edi, dword [edi]
dec ecx
mov ebx, 0xd02b070b
mov edi, dword [edi]
add ecx, 0xf7f6b36f
sub edx, esi
push edi
add edx, ecx
or esi, ebx
mov edi, 0xa7898a
mov edx, 0x27de2495
dec ecx
mov edi, dword [edi]
sub ebx, 1
not edx
add ebx, edx
mov edi, dword [edi]
add esi, 1
sub esi, 1
not esi
push 0xa78992
dec esi
mov ecx, 0xda63ae09
call edi
and ebx, ebx
or esi, esi
add edx, 0xb42ef286
pop edi
mov ecx, 0xaa80ae4a
add esi, ebx
dec esi
push 0xa7899f
sub ecx, edx
add ebx, ebx
sub esp, 4
mov dword [esp], eax
sub ecx, edx
mov esi, ecx
sub esi, ecx
call edi
and ebx, edx
add ebx, 1
sub esp, 4
mov dword [esp], 0x40
inc edx
add ebx, 0xf988a4c9
sub ebx, ecx
push 0x3000
add ebx, 0xb75f7265
add esi, 1
and esi, ecx
push 0x20000389
add ebx, ebx
dec ecx
sub esi, 1
push 0
sub edx, 0x59c1d2f0
mov ebx, edx
and esi, ebx
call eax
sub esi, ebx
or esi, edx
sub ebx, esi
add eax, 0x200002cb
sub esi, ebx
add ecx, esi
add ecx, ecx
mov edi, 0x7c4ce14f
inc edx
not ebx
mov dword [eax], edi
not ebx
add ebx, 0xd043f988
inc ebx
mov edi, dword [eax]
and edx, esi
and edx, ecx
cmp edi, 0x7c4ce14f
je 0xa78b73
mov eax, 0
mov ecx, dword [eax]
mov ecx, esi
add ecx, 0xf9da1549
inc edx
sub edx, 0xfba04c63
dec edx
not ebx
mov ebx, eax
and ebx, eax
mov edi, section.UPX1
mov eax, 0x4dc89829
not eax
dec eax
mov ecx, 0xa78795
and eax, eax
add eax, 0xfc07e5bc
mov edx, 0
add ebx, 0x21ba94b2
inc ebx
add eax, 0x79283948
mov esi, 0xa78796
mov ebx, 0x76b3160c
sub ebx, eax
add ebx, ebx
lea esi, [esi + edx]
mov eax, ebx
mov eax, 0x1eeae87b
mov esi, dword [esi]
mov eax, ebx
and ebx, eax
not eax
and esi, 0xff
and eax, eax
dec eax
inc edx
not eax
mov eax, ebx
cmp edx, 0x1f4
jne 0xa78bf0
mov edx, 0
and eax, eax
sub eax, ebx
sub ebx, 1
and ebx, eax
xor dword [edi], esi
and ebx, ebx
and eax, ebx
add eax, 0xde6e6824
add edi, 2
or ebx, eax
not eax
cmp edi, ecx
jl 0xa78bb5
add ebx, ebx
and eax, ebx
or eax, ebx
sub ebx, eax
mov ecx, section.UPX1
and esi, esi
dec esi
mov edi, section.UPX1
and ebx, ebx
mov esi, ebx
mov edx, 0xa78795
sub esi, 0xbcd47542
sub ebx, esi
sub esi, ebx
mov eax, 0
dec esi
inc ebx
or ebx, ebx
mov al, byte [edi]
or ebx, ebx
not ebx
mov byte [ecx], al
or esi, ebx
inc esi
inc ecx
add esi, 0xca856498
or esi, ebx
add edi, 2
mov ebx, 0x4a1d4675
mov ebx, 0x5c08b0c
and ebx, esi
cmp edi, edx
jle 0xa78c4b
add ebx, ebx
add ebx, 0xa9c90474
or ebx, ebx
sub ebx, eax
mov eax, 0xe2edb452
sub esp, 4
mov dword [esp], 0x8dc6a0
sub ebx, 1
inc ebx
ret