Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4d6d1f28
mov eax, ebx
dec eax
and ebx, ebx
popal
mov ebx, eax
sub eax, ebx
mov edi, 0
mov ebx, eax
or edx, esi
add edx, esi
mov ecx, ebx
mov esi, edx
sub edx, 0xa294ddcd
mov eax, ecx
mov edx, esi
or edx, edx
not esi
inc edi
mov edx, 0xbf4a302d
sub esi, 0x4c50132
add esi, 0x32812207
cmp edi, 0x1006b04
jne 0xa789c1
add esi, 0xf3ec0ad9
sub esi, edx
not eax
sub ebx, eax
mov eax, 0xa78796
mov ecx, 0x8ff7f543
not edi
mov ebx, 0xa7898a
dec edi
mov edx, ecx
sub ecx, 0xaef9931f
mov esi, dword [eax]
mov ecx, edx
inc edx
and esi, 0xff
mov edi, ecx
sub edi, 1
xor dword [ebx], esi
mov ecx, 0xfb8420e7
or ecx, ecx
not edx
inc ebx
sub edi, 0x6eed15fc
or ecx, edi
add eax, 1
and ecx, edi
add edx, 1
cmp ebx, entry0
jl 0xa78a1d
or edi, ecx
mov edi, 0xb863123c
add edi, 1
add edx, edi
sub edi, 0xd485a2a7
sub edi, esi
sub esi, 0x8784a760
mov edx, 0xa7898e
or ecx, ecx
or edi, esi
mov edx, dword [edx]
add ecx, edi
inc ebx
mov edx, dword [edx]
or ecx, ecx
inc edi
push edx
not esi
add esi, 0x4167809c
mov edx, 0xa7898a
mov ebx, edi
sub ecx, 0x78761ad2
add edi, ecx
mov edx, dword [edx]
or ecx, esi
not ecx
mov edx, dword [edx]
or ebx, ebx
add ebx, ebx
mov esi, edi
push 0xa78992
mov esi, ebx
and edi, edi
call edx
sub ecx, ebx
sub edi, 0x60bbfe23
mov edx, dword [esp]
add esp, 4
or ebx, edi
inc ecx
sub ecx, 0xf271e8ea
push 0xa7899f
sub esi, 0x902c41c6
mov ecx, edi
sub esi, 0xcc8846cf
push eax
mov ebx, 0xe8312a97
mov ecx, 0x66d39be7
call edx
add edi, ecx
inc esi
push 0x40
add ecx, 1
add edi, 0x7489c79d
not edi
sub esp, 4
mov dword [esp], 0x3000
sub ebx, edi
sub ebx, ecx
push 0x20000394
not ecx
dec edi
mov ecx, ebx
push 0
not ecx
not edi
sub ecx, 0x50657e56
call eax
sub edi, 0x718c4cc8
not ebx
add eax, 0x20000313
mov ebx, 0x9bc4b410
or ecx, ecx
mov edx, 0x43239fe4
add ebx, 0x1f3c1f74
not ecx
mov dword [eax], edx
mov esi, 0xa69d6f43
not esi
sub ecx, edi
mov edx, dword [eax]
mov esi, edi
add esi, 0x532497c5
add ebx, 0x9462a9b1
cmp edx, 0x43239fe4
je 0xa78b81
mov eax, 0
mov edx, dword [eax]
add edi, 0x1d4054d8
not ecx
mov edi, 0x91321682
or ebx, ebx
and edi, edi
add ebx, 0x6fb38bb9
or ebx, eax
mov eax, 0x6b4c9e7c
sub ebx, 0xd71afd35
mov esi, section..text
inc ebx
not ebx
mov edx, 0xa78795
sub ebx, 0x1170677d
sub ebx, 0x9dde45e9
add ebx, 0x92c375cd
mov edi, 0
or eax, ebx
sub ebx, 0x58b0562
or eax, ebx
mov ecx, 0xa78796
sub ebx, eax
not eax
and eax, ebx
lea ecx, [ecx + edi]
not eax
add eax, eax
mov ecx, dword [ecx]
inc ebx
mov ebx, eax
sub ebx, 1
and ecx, 0xff
and eax, ebx
inc ebx
inc edi
add eax, 0x957ab446
or eax, ebx
cmp edi, 0x1f4
jne 0xa78c0f
mov edi, 0
sub ebx, 0x7f0e66ae
and ebx, ebx
mov ebx, 0x156c171
sub ebx, 0x36aa00fc
xor dword [esi], ecx
add ebx, 0xc55afaca
mov eax, ebx
add eax, 0xf54bc62d
add esi, 2
mov ebx, 0x8db0973f
sub ebx, 0x27377dd4
and eax, ebx
cmp esi, edx
jl 0xa78bd3
and eax, eax
mov ebx, eax
sub ebx, 0x252aebc2
sub ebx, 1
mov ebx, 0x6f524e69
mov edi, section..text
mov ebx, esi
mov esi, ebx
not ebx
mov edx, section..text
dec ebx
sub esi, 1
mov eax, 0xa78795
or ebx, esi
not ebx
or esi, ebx
mov ecx, 0
add ebx, 1
and ebx, ebx
mov cl, byte [edx]
and esi, esi
add ebx, 0x990cc7f7
mov ebx, 0x7a77846a
mov byte [edi], cl
dec ebx
add esi, ebx
inc esi
inc edi
and esi, esi
and ebx, ebx
sub ebx, esi
add edx, 2
sub ebx, 0xc2a7807a
add ebx, 0x41958d51
and esi, ebx
cmp edx, eax
jle 0xa78c91
inc ebx
sub ebx, 1
inc ebx
sub eax, 0xbb396f8c
push 0x8dc6a0
and ebx, ebx
and ebx, eax
ret