Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xdc6a1cf3
mov eax, edx
add edx, edx
sub eax, 0x5d158784
popal
mov eax, edx
add edx, 0x2668443b
add edx, 1
mov ebx, 0
mov ecx, edi
dec esi
sub eax, 1
mov edx, ecx
or esi, eax
add eax, 0x8b68693b
mov edi, edx
sub eax, 0x702610a6
mov eax, 0xf31f0cb2
inc eax
add ebx, 1
add eax, eax
add eax, 1
or esi, esi
cmp ebx, 0x10022ab
jne 0xa789d0
dec eax
add eax, 0x36b37714
or eax, edx
sub eax, edx
mov ebx, 0xa78796
inc esi
and edi, esi
mov edx, 0xa7898a
sub esi, 1
inc esi
inc esi
mov ecx, dword [ebx]
add esi, 0x8b988dd6
sub eax, 0xa21b6068
add eax, edi
and ecx, 0xff
sub eax, esi
sub edi, 1
sub eax, esi
xor dword [edx], ecx
not eax
sub eax, 0x2c0db0eb
not edi
inc edx
add esi, 0x81cc7681
not eax
inc ebx
add edi, 0x13b05608
and edi, esi
cmp edx, entry0
jl 0xa78a2d
mov eax, edi
add eax, 0x5a1cda3d
and edi, edi
sub esi, edi
add eax, 1
and edi, ecx
mov ecx, edx
sub ecx, edi
mov ebx, 0xa7898e
not esi
add edx, esi
mov ebx, dword [ebx]
not edx
add edi, 0x69166b7d
or edi, edx
mov ebx, dword [ebx]
inc ecx
sub edx, 0x9affcec
add ecx, 0xa1248e2f
sub esp, 4
mov dword [esp], ebx
inc edi
and edi, esi
mov ebx, 0xa7898a
mov edx, 0xf2b9436
add ecx, 0xcf59c84
mov ebx, dword [ebx]
sub edx, 0x58b575be
and ecx, edx
mov ebx, dword [ebx]
mov esi, ecx
or ecx, ecx
push 0xa78992
mov ecx, 0xb3c36a8
sub ecx, edx
sub ecx, 0xe530f9ef
call ebx
add edx, edi
not ecx
add edx, 0x31ffb053
mov ebx, dword [esp]
add esp, 4
add ecx, ecx
mov esi, edi
push 0xa7899f
mov esi, edi
or esi, ecx
add ecx, 1
push eax
sub edi, 0x97d0086f
not edi
sub edx, 0x68e1c4bd
call ebx
or esi, edx
mov esi, 0x8c2b7eec
push 0x40
add ecx, edx
sub edi, esi
add edi, edx
push 0x3000
or edi, edx
sub edi, 0xdada688c
sub esp, 4
mov dword [esp], 0x20000e14
sub esi, edx
and esi, esi
push 0
mov edi, esi
inc ecx
mov esi, 0x34c26b12
call eax
add edi, edx
or esi, edi
sub edx, esi
add eax, 0x20000d66
add edx, edi
and esi, edx
mov ebx, 0x8e49e9e2
add ecx, 1
add ecx, edx
inc edi
mov dword [eax], ebx
or esi, edi
add edi, ecx
and edi, esi
mov ebx, dword [eax]
and edi, edx
sub edi, ecx
mov edi, 0x682aa5f3
cmp ebx, 0x8e49e9e2
je 0xa78ba0
mov ecx, 0
mov dword [ecx], ebx
sub esi, edi
add edi, 0xa94a300b
mov ecx, 0xa82ffb82
add ecx, ecx
sub edx, 0x43523795
inc edx
or edx, edx
mov ecx, section..pdata
mov edx, eax
or eax, eax
mov eax, 0x64b69d71
mov edi, 0xa78795
and eax, eax
inc edx
sub edx, 0xd9760b74
mov ebx, 0
or eax, edx
inc eax
not eax
mov esi, 0xa78796
and eax, eax
not edx
lea esi, [esi + ebx]
mov eax, 0x2007d11c
sub edx, 1
mov eax, 0x3947dc5a
mov esi, dword [esi]
or eax, edx
sub eax, 0x61e18133
and esi, 0xff
and eax, edx
mov edx, eax
add edx, eax
inc ebx
dec eax
dec edx
cmp ebx, 0x1f4
jne 0xa78c20
mov ebx, 0
sub eax, edx
not edx
sub edx, 0xd335a875
not eax
xor dword [ecx], esi
add eax, 0xb2099a9a
add edx, 0xbca5bfd1
add ecx, 2
and eax, eax
mov edx, eax
cmp ecx, edi
jl 0xa78bde
sub edx, eax
sub edx, 0x3d2efedd
and eax, eax
sub edx, 0xc537a3f3
mov edx, eax
mov ecx, section..pdata
mov esi, edi
sub esi, 1
mov eax, section..pdata
dec edi
mov edi, esi
sub esi, 0x44a15b66
mov edx, 0xa78795
sub esi, edi
add edi, edi
add edi, 0xc717f82e
mov ebx, 0
inc edi
and edi, edi
inc edi
mov bl, byte [eax]
not edi
dec edi
mov byte [ecx], bl
sub esi, 0xcc419c01
or edi, edi
inc ecx
add esi, edi
dec esi
add eax, 2
mov esi, 0xec56ba31
add edi, esi
cmp eax, edx
jle 0xa78c91
add edi, edi
or esi, edi
or edi, edi
and edx, edx
inc eax
push 0x8dc6a0
sub eax, 0xe72c88a2
and eax, edx
add eax, edx
ret