Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xfd1079f6
sub ebx, 1
add edx, 0x70550a6a
popal
dec ebx
add ebx, 0xe0c0aa5
add edx, ebx
mov edx, 0
mov eax, esi
and ebx, ebx
or edi, ebx
mov ecx, eax
and edi, ebx
mov ebx, edi
dec ebx
mov esi, ecx
and ebx, ebx
sub ebx, 0x4cd78c8
inc ebx
inc edx
dec edi
not ebx
inc ebx
cmp edx, 0x100cb9a
jne 0xa789cd
sub edi, ebx
sub edi, 1
and ebx, edi
add edx, 0xea2d18db
mov edx, 0xd1c1d52a
mov edi, 0xa78796
not ecx
mov eax, ecx
mov esi, 0xa7898a
and ecx, ecx
add ecx, eax
mov ebx, dword [edi]
mov eax, edx
and edx, eax
mov edx, 0x17c90c39
and ebx, 0xff
add eax, eax
add eax, ecx
xor dword [esi], ebx
inc edx
mov eax, ecx
inc esi
not ecx
sub ecx, 1
mov ecx, eax
inc edi
mov ecx, edx
dec ecx
add eax, eax
cmp esi, entry0
jl 0xa78a1d
not eax
or eax, ecx
mov eax, ecx
and ecx, edx
not edx
not edx
add ecx, edx
mov ecx, 0xa5147c6c
mov ebx, 0xa7898e
not edi
sub edi, esi
mov edx, 0xeb489c4d
mov ebx, dword [ebx]
inc edi
sub edi, 0x7e1081bd
add edi, 0x16598ff9
mov ebx, dword [ebx]
and edi, edi
add edi, ecx
push ebx
add edi, 0x96899097
mov edi, 0x9de8a2dc
and esi, ecx
mov ebx, 0xa7898a
dec edi
add edx, 0x781939bd
mov ebx, dword [ebx]
and ecx, edi
sub edi, 0x7e4d0a20
or esi, edi
mov ebx, dword [ebx]
sub edx, edi
mov edx, 0xcf65eaca
or esi, ecx
push 0xa78992
mov esi, edx
add edx, edi
call ebx
add edi, edi
mov edi, 0xc543affd
mov ebx, dword [esp]
add esp, 4
sub edx, 0xf34eab19
mov edx, 0x4548cbb4
add esi, edx
push 0xa7899f
mov esi, ecx
dec esi
push eax
add esi, 0x63fb142
inc ecx
call ebx
add edx, edx
not edx
push 0x40
mov ecx, 0x704b9faf
dec edx
sub esp, 4
mov dword [esp], 0x3000
add esi, 0x1f65a0e5
mov edi, 0x6b59e9cc
and ecx, edi
sub esp, 4
mov dword [esp], 0x20000c8d
and ecx, ecx
add edi, edx
or edi, edi
sub esp, 4
mov dword [esp], 0
or edi, esi
or ecx, edi
call eax
or esi, edi
sub edx, esi
add eax, 0x20000c13
add edx, 0xef158174
add edx, edi
mov ebx, 0x22866b36
dec edx
or esi, edi
mov dword [eax], ebx
sub edx, edi
inc esi
mov ebx, dword [eax]
not esi
mov ecx, edi
and edx, esi
cmp ebx, 0x22866b36
je 0xa78b6e
mov ebx, 0
mov ecx, dword [ebx]
mov edi, esi
inc edx
not edi
sub edx, ecx
sub ecx, 0xe78888c1
sub edi, ecx
dec ebx
add ebx, ebx
mov edi, section..text
add edx, edx
sub edx, 0x998f0c28
mov esi, 0xa78795
dec edx
sub ebx, 0x124cce31
mov ebx, edx
mov ecx, 0
not ebx
sub ebx, edx
mov eax, 0xa78796
and ebx, edx
mov ebx, 0xff9ab62e
lea eax, [eax + ecx]
mov edx, ebx
add ebx, 0x93aa59ff
mov eax, dword [eax]
dec ebx
mov ebx, edx
and eax, 0xff
add ebx, edx
not ebx
inc ecx
sub edx, ebx
and edx, ebx
cmp ecx, 0x1f4
jne 0xa78bdc
mov ecx, 0
add ebx, edx
sub ebx, edx
sub ebx, edx
sub ebx, 0x26570f64
add ebx, ebx
xor dword [edi], eax
mov ebx, edx
and edx, ebx
or ebx, edx
add edi, 2
and ebx, ebx
sub edx, ebx
cmp edi, esi
jl 0xa78ba4
add ebx, edx
and ebx, edx
inc edx
not ebx
or edx, ebx
mov edi, section..text
dec esi
not edx
not edx
mov eax, section..text
inc esi
sub esi, 0xc6c3dda1
mov ecx, 0xa78795
or esi, edx
sub edx, 0x1bfb1bed
add edx, edx
mov ebx, 0
mov esi, 0x9b4a8d6e
add esi, edx
mov bl, byte [eax]
add esi, 0x9da9605
and esi, esi
inc edx
mov byte [edi], bl
dec esi
add edx, 1
inc edi
and esi, edx
not edx
not esi
add eax, 2
and esi, esi
not esi
or esi, esi
cmp eax, ecx
jle 0xa78c3e
sub esi, 0xd954c17a
dec esi
inc edx
sub ebx, 0xb6f82a3
mov ebx, 0x6ba47419
mov ebx, 0xdb96fa2a
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edx, ebx
sub edx, ebx
ret