Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xce54b43e
add ecx, 0xdce7f60
add ecx, 0x64e2bdca
popal
mov edx, 0xcfde5751
sub edx, ecx
add edx, 0x7441293e
mov edi, 0
mov ebx, ecx
dec esi
or esi, esi
sub edx, 0x6ed4facf
mov eax, ebx
mov esi, 0x5968e0d3
not edx
mov ecx, eax
add esi, edx
dec edx
add edi, 1
add esi, esi
inc esi
inc esi
cmp edi, 0x100b581
jne 0xa789d1
and esi, edx
or esi, edx
add edx, edx
sub edx, 1
mov ecx, 0xc49cfa77
and edx, edx
mov eax, 0xa78796
or edi, ecx
add ecx, edi
sub ecx, edx
mov ebx, 0xa7898a
mov edx, edi
mov edi, edx
add edi, 0x621b228b
mov esi, dword [eax]
and edi, ecx
sub edi, 0x98eb83ea
and esi, 0xff
inc edi
sub edi, ecx
add edi, 0xe1ec2560
xor dword [ebx], esi
inc edx
sub edx, 0xbb9fc27d
inc ebx
mov edi, ecx
add edi, 0xee41b072
inc eax
mov edx, edi
or edx, ecx
cmp ebx, entry0
jl 0xa78a2d
and edi, ecx
dec edx
sub edi, 1
mov edx, 0x3a1d2072
or ecx, edx
sub edi, ebx
and esi, edi
mov edx, 0xa7898e
sub ebx, 0xc76de660
sub edi, ebx
mov edx, dword [edx]
or edi, ebx
sub esi, edi
sub ecx, ebx
mov edx, dword [edx]
inc edi
sub ebx, 0xfd5a0e6b
or edi, ebx
push edx
not edi
inc edi
mov edi, 0xfd18ab6b
mov edx, 0xa7898a
add ecx, 0x302e42cc
mov ebx, ecx
mov edi, 0x73adf7c0
mov edx, dword [edx]
or edi, ecx
dec esi
dec ecx
mov edx, dword [edx]
sub ebx, 0x1040d377
not edi
dec ebx
push 0xa78992
not ecx
sub esi, ecx
add edi, 0xce09fab0
call edx
mov ecx, ebx
dec ecx
mov edx, dword [esp]
add esp, 4
sub esi, edi
mov esi, 0x76f5689c
sub esp, 4
mov dword [esp], 0xa7899f
or ebx, edi
sub esi, ebx
push eax
sub esi, 0x2bdd5043
or edi, edi
not edi
call edx
add ebx, 0x44a8f224
inc edi
sub esp, 4
mov dword [esp], 0x40
or esi, edi
sub ecx, 0x77bbff9
mov ebx, esi
push 0x3000
not ebx
add ecx, esi
push 0x200008ef
sub ecx, 0xafbcb4c0
or ebx, edi
sub ebx, 0x78ae1e1c
push 0
mov ecx, edi
dec ebx
call eax
sub ecx, 0x1bb76c9f
add ecx, esi
add eax, 0x20000848
mov esi, ebx
add esi, 0x940618eb
mov edx, 0x3cb1194a
and ebx, edi
sub esi, 0x12d41a21
mov dword [eax], edx
sub esi, edi
mov ecx, ebx
or edi, ebx
mov edx, dword [eax]
not edi
mov ebx, 0x811a05ae
cmp edx, 0x3cb1194a
je 0xa78b89
mov ebx, 0
mov cl, byte [ebx]
add ecx, 1
not esi
not ebx
or edi, edi
not esi
mov ecx, 0x8ac6ecd6
add ecx, ecx
add edx, 0xffb13a17
mov eax, section..text
sub edx, 1
not ecx
add edx, 0x5db6d900
mov esi, 0xa78795
sub edx, ecx
and edx, ecx
dec ecx
mov ebx, 0
not edx
and ecx, edx
mov ecx, edx
mov edi, 0xa78796
sub ecx, edx
sub edx, 0x57bd2ea
lea edi, [edi + ebx]
or edx, ecx
mov ecx, edx
sub edx, ecx
mov edi, dword [edi]
or edx, edx
not ecx
sub ecx, 0x5a0f4bbf
and edi, 0xff
sub ecx, 1
not ecx
inc ebx
not ecx
add ecx, ecx
cmp ebx, 0x1f4
jne 0xa78c0e
mov ebx, 0
or edx, ecx
add ecx, 0x6268b7d7
dec ecx
sub ecx, edx
xor dword [eax], edi
sub ecx, 0xfb9d055b
and edx, edx
mov ecx, edx
add eax, 2
dec ecx
add ecx, 0x22757364
cmp eax, esi
jl 0xa78bcc
sub ecx, edx
mov edx, ecx
or edx, edx
sub edx, ecx
not edx
mov ecx, section..text
dec edx
sub eax, 0x77910fd
and eax, eax
mov edi, section..text
sub eax, edx
add edx, eax
add eax, 1
mov esi, 0xa78795
add edx, 0x82f04ebb
add edx, 0x1d08b55
mov ebx, 0
sub eax, edx
add eax, 0xed854268
mov bl, byte [edi]
or edx, eax
and eax, edx
add edx, 0x792f1d9c
mov byte [ecx], bl
mov eax, 0x82c17ab
sub edx, eax
add ecx, 1
and edx, eax
dec edx
mov eax, edx
add edi, 2
sub eax, edx
not eax
cmp edi, esi
jle 0xa78c7f
sub edx, eax
and eax, eax
mov ecx, edx
mov ecx, 0x364a547a
add ecx, ecx
push 0x8dc6a0
mov edx, 0x9225050e
sub edx, ecx
sub edx, 0x9addedd
ret