Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe26926dc
mov edx, 0xf61ed11b
and esi, edx
popal
dec edx
mov edx, esi
mov eax, 0
mov esi, edi
add edx, 0x8d0a7684
and edx, edx
sub edx, 0xfc99c8b1
mov ebx, esi
add edx, edx
sub edx, ecx
mov edi, ebx
mov ecx, 0x7b48806d
add edx, 0x44029bf3
dec ecx
inc eax
or ecx, ecx
mov edx, 0x40453f8d
cmp eax, 0x100c62c
jne 0xa789c2
and ecx, ecx
add ecx, 0x958bcd1e
sub ecx, 0x280d190a
dec esi
add edx, 0x9ad5037a
sub esi, edx
mov edi, 0xa78796
sub edx, esi
add ebx, 0x707c51b0
mov eax, 0xa7898a
mov ebx, edx
dec ebx
mov ecx, dword [edi]
add ebx, esi
or ebx, edx
and edx, esi
and ecx, 0xff
sub edx, 0xc791eb59
or ebx, ebx
inc esi
xor dword [eax], ecx
or edx, edx
add edx, esi
inc eax
sub esi, 1
mov edx, 0xfcc256b2
and edx, edx
inc edi
inc esi
or esi, edx
cmp eax, entry0
jl 0xa78a26
add edx, ebx
not esi
mov edx, 0x91ead149
add esi, esi
mov esi, 0xc2e1715e
inc edx
or esi, ecx
mov ebx, 0xa7898e
or ecx, esi
sub edx, 0xf1a7d82f
mov ebx, dword [ebx]
add edi, 0xc786c2e7
sub edi, 1
add edi, 1
mov ebx, dword [ebx]
add edi, esi
sub edi, 1
push ebx
mov edx, edi
or esi, edx
mov ebx, 0xa7898a
or edi, edx
and esi, esi
mov ebx, dword [ebx]
add ecx, edi
dec edi
mov edi, 0xd97fc1d9
mov ebx, dword [ebx]
or edi, esi
sub edx, ecx
push 0xa78992
mov esi, 0xee967cc2
sub esi, 1
call ebx
mov esi, edi
inc edx
pop ebx
mov esi, edx
or ecx, esi
push 0xa7899f
mov edi, ecx
sub edi, 0xa4a429cf
add edx, 0xdadc0f0
push eax
dec edi
not ecx
and edx, ecx
call ebx
and edx, edx
add ecx, 0x9288dc49
push 0x40
sub edx, ecx
mov edi, 0x4b1a723e
add edx, edx
push 0x3000
not ecx
mov ecx, 0x88649f15
sub esp, 4
mov dword [esp], 0x200003e2
mov ecx, 0x59b67b12
and edx, esi
push 0
and edi, esi
mov esi, edx
add ecx, 0x478388b7
call eax
inc edx
add edi, 0x1a3bc848
add eax, 0x20000321
add esi, edi
sub esi, ecx
mov ebx, 0x3edcd045
mov ecx, 0xb9fdcc3b
add edx, ecx
mov dword [eax], ebx
mov ecx, esi
inc edx
not edi
mov ebx, dword [eax]
not ecx
sub edx, 0x17ae3b7a
inc edi
cmp ebx, 0x3edcd045
je 0xa78b74
mov eax, 0
mov dword [eax], edx
or esi, edi
mov esi, edi
or edx, esi
mov ecx, edx
or ecx, edi
dec esi
and edx, edx
mov eax, section..xdata
sub esi, edx
not edx
sub esi, edx
mov ecx, 0xa78795
add esi, 0xf28a2a05
add edx, 1
mov edi, 0
sub esi, edx
sub esi, edx
mov ebx, 0xa78796
and edx, edx
not edx
mov esi, edx
lea ebx, [ebx + edi]
mov edx, 0xc80c293
sub esi, 0xa920cb3f
mov ebx, dword [ebx]
add edx, 0xec097220
sub edx, esi
and ebx, 0xff
add esi, 0x26768ca3
add edx, 1
sub esi, 1
inc edi
mov esi, 0xf46ff212
sub edx, 1
cmp edi, 0x1f4
jne 0xa78bfa
mov edi, 0
and esi, edx
dec esi
mov edx, esi
sub edx, 0x6645d37d
mov esi, 0x5d550d0a
xor dword [eax], ebx
and esi, esi
dec edx
sub esi, edx
add eax, 2
add esi, 0x151cbf9b
and edx, esi
cmp eax, ecx
jl 0xa78ba6
sub edx, 0xf97ac591
not edx
and edx, edx
inc esi
sub edx, esi
mov edi, section..xdata
mov ebx, eax
add eax, ebx
add ebx, ebx
mov esi, section..xdata
or ebx, ebx
inc eax
mov edx, 0xa78795
inc eax
add eax, eax
mov ecx, 0
and ebx, ebx
or eax, ebx
mov cl, byte [esi]
sub eax, 1
mov eax, ebx
sub eax, 0x487505e0
mov byte [edi], cl
mov eax, 0xdc6109f3
and ebx, eax
inc edi
add eax, eax
sub eax, ebx
sub eax, ebx
add esi, 2
sub ebx, 0xe267daa7
not eax
cmp esi, edx
jle 0xa78c58
dec eax
sub ebx, 1
mov esi, edx
and edx, esi
sub esi, edx
sub esp, 4
mov dword [esp], 0x8dc6a0
mov esi, edx
mov esi, edx
ret