Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x498918f1
add esi, 0xf1358ced
or esi, esi
mov esi, edi
popal
dec edi
add edi, 0x7b56c336
mov ebx, 0
mov edx, edi
sub eax, esi
not eax
mov ecx, edx
mov esi, eax
and eax, eax
mov edi, ecx
or esi, esi
add eax, 1
inc ebx
add eax, eax
sub eax, 0xac20705c
not eax
cmp ebx, 0x100080c
jne 0xa789c9
add eax, 0xb730a7b7
add eax, 0x958e5713
sub esi, 0xc0c2b3fd
sub esi, 0x4f4ea4be
not esi
not edi
mov edi, 0xa78796
mov esi, 0x3504be69
add esi, 0x3a9661
mov eax, 0xa7898a
and ebx, esi
not esi
mov ecx, dword [edi]
and esi, ebx
add edx, 0xc0dc2ad3
mov edx, ebx
and ecx, 0xff
sub esi, edx
dec esi
not esi
xor dword [eax], ecx
sub ebx, edx
not esi
sub edx, 0x34ed86ff
inc eax
mov ebx, esi
inc esi
and esi, esi
add edi, 1
or esi, edx
not esi
cmp eax, entry0
jl 0xa78a2b
add ebx, 1
add ebx, edx
not edx
add edx, edx
not edx
dec ebx
dec edi
inc edx
mov esi, 0xa7898e
and ecx, edx
inc edi
add ebx, edi
mov esi, dword [esi]
and ecx, ebx
add edx, 0xc4f53904
mov esi, dword [esi]
add ecx, 0x980568fd
dec edx
mov ecx, 0xf41196a0
push esi
mov ebx, ecx
and ebx, edx
add edx, ebx
mov esi, 0xa7898a
and ecx, ebx
or edi, ecx
add edx, 0x1a6a088c
mov esi, dword [esi]
dec ebx
mov ecx, 0xa4a767ee
mov esi, dword [esi]
mov edx, ebx
mov ecx, edi
not ebx
push 0xa78992
add edx, 0x2f59e3d9
add ebx, 0xf981bc2
call esi
add ecx, 0xa845f124
add edi, ecx
pop esi
sub edx, edi
mov ecx, 0xdf7eb363
sub esp, 4
mov dword [esp], 0xa7899f
mov edx, 0xbc13572c
add edi, 0xa28ababb
sub esp, 4
mov dword [esp], eax
add edx, edi
sub edi, 0xd78ca057
call esi
mov ebx, 0x9a74b59a
mov edx, ebx
add edx, 0x8a25120f
push 0x40
mov ebx, 0xf482d149
dec ecx
push 0x3000
inc ecx
not ecx
push 0x20000f19
sub edx, 0x419cded
add edi, edi
push 0
add edx, 0xe2897c7e
sub ecx, edx
call eax
inc edi
sub ecx, 0x6a69a2ab
add eax, 0x20000eb0
and ecx, edi
dec ecx
mov esi, 0x26d59115
add ecx, 0xb593c191
inc edi
sub edi, 0x6bb17885
mov dword [eax], esi
and edx, edi
mov edx, ebx
mov esi, dword [eax]
and ebx, ebx
and edx, edx
cmp esi, 0x26d59115
je 0xa78b84
mov eax, 0
mov dword [eax], edx
or edi, edi
sub edx, ebx
add edi, ebx
inc edx
add edi, 0x72a1ef45
mov esi, 0x67c8d13f
mov ecx, section.UPX1
mov edi, esi
add edi, edi
add esi, 0xe126f73b
mov edx, 0xa78795
mov edi, 0x9be309b6
add edi, esi
sub edi, esi
mov ebx, 0
dec esi
inc esi
mov esi, edi
mov eax, 0xa78796
add edi, 1
sub esi, edi
lea eax, [ebx + eax]
sub edi, 0xd5808f6e
sub esi, edi
mov eax, dword [eax]
sub esi, 1
not esi
add edi, 0x320244b5
and eax, 0xff
add edi, 0x5dc2bcf5
and esi, edi
inc ebx
add esi, 0x21aefe49
sub edi, 0x4e42b47
and edi, esi
cmp ebx, 0x1f4
jne 0xa78c0e
mov ebx, 0
add edi, edi
sub esi, 0x8c65880b
sub edi, 0x1ede26df
sub edi, esi
dec edi
xor dword [ecx], eax
sub edi, 0x384b8b7
not edi
or edi, esi
add ecx, 2
or esi, esi
mov edi, esi
mov esi, 0x41039c6
cmp ecx, edx
jl 0xa78bbc
sub esi, 0x424d7b9e
dec edi
and edi, edi
or edi, esi
mov esi, edi
mov edi, 0x26f86553
mov edi, section.UPX1
sub ebx, eax
not ebx
mov esi, section.UPX1
inc ebx
add eax, ebx
inc ebx
mov ecx, 0xa78795
add eax, ebx
inc ebx
mov edx, 0
mov eax, 0xa456a57e
sub eax, ebx
dec eax
mov dl, byte [esi]
mov eax, 0xd1b4d0be
add ebx, ebx
and eax, ebx
mov byte [edi], dl
add ebx, eax
sub ebx, 1
inc edi
or ebx, eax
inc eax
add ebx, 0xe55774a3
add esi, 2
and ebx, eax
add ebx, 0x4a48d388
inc eax
cmp esi, ecx
jle 0xa78c7b
sub ebx, 1
sub eax, 0xa89fc098
sub ebx, 0x899821ee
mov esi, 0x4efc00b1
add edi, esi
push 0x8dc6a0
sub edi, esi
inc edi
sub edi, 0x9bb1e545
ret