Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x1540b01e
sub ecx, 0xc56d9e69
add ecx, edx
popal
sub ecx, 0x56aa08a3
not ecx
mov edx, 0
mov ecx, eax
and ebx, esi
mov ebx, esi
add esi, esi
mov edi, ecx
dec ebx
not ebx
inc esi
mov eax, edi
mov esi, 0xeafdbe72
not esi
or esi, ebx
add edx, 1
not esi
or ebx, esi
and esi, ebx
cmp edx, 0x100a8ed
jne 0xa789c8
mov ebx, esi
add esi, 1
mov ecx, edx
and ecx, edx
sub edx, ecx
mov ecx, 0xa78796
add edi, eax
add eax, 0xaf61759
mov edx, 0xa7898a
dec eax
add ebx, edi
mov esi, dword [ecx]
mov ebx, edi
and ebx, edi
and esi, 0xff
add eax, 0xa4bfee57
or ebx, eax
xor dword [edx], esi
dec edi
sub eax, 1
dec ebx
inc edx
add ebx, 0x8dcf906
mov eax, 0xa0fa0ce2
or ebx, eax
inc ecx
add eax, 0x170f3233
sub eax, 0x4f92e799
cmp edx, entry0
jl 0xa78a1c
add eax, 0xe899ce1a
add ebx, 0x2a4b8074
not edi
dec edi
mov ebx, eax
or edi, edi
mov ecx, ebx
add ebx, 0x76234ccf
mov edx, 0xa7898e
sub esi, ebx
or edi, ebx
sub ecx, 1
mov edx, dword [edx]
not esi
mov edi, 0x5e4d3a3c
mov edx, dword [edx]
mov ebx, ecx
and edi, ecx
push edx
add edi, 1
sub esi, ebx
and esi, ecx
mov edx, 0xa7898a
mov edi, 0x2f39ccdb
add ebx, edi
and esi, edi
mov edx, dword [edx]
not edi
sub edi, esi
mov edx, dword [edx]
sub esi, ebx
add ebx, 0x38226ba0
push 0xa78992
or edi, edi
sub ebx, esi
call edx
sub edi, ebx
dec esi
pop edx
not ecx
mov ecx, 0x8765bf0
push 0xa7899f
inc ebx
add esi, edi
sub esp, 4
mov dword [esp], eax
mov ebx, 0x88f72d43
and esi, ebx
call edx
or esi, ebx
add ecx, 0x4b91e992
push 0x40
sub edi, 0x5bbdb461
dec esi
dec ecx
sub esp, 4
mov dword [esp], 0x3000
not edi
not ecx
sub esp, 4
mov dword [esp], 0x200009b2
not edi
add edi, 0x5627fe9f
or ebx, ecx
push 0
mov edi, ebx
not edi
call eax
not ebx
add edi, ecx
mov ecx, 0x868105a8
add eax, 0x2000092c
add edi, ecx
dec ebx
mov edx, 0x4b76bff6
add ebx, esi
mov ebx, esi
mov dword [eax], edx
add ecx, ecx
add ecx, 0xe928aa11
mov esi, edi
mov edx, dword [eax]
mov esi, 0xcce7d4bd
sub edi, ecx
mov ebx, esi
cmp edx, 0x4b76bff6
je 0xa78b73
mov ebx, 0
mov cl, byte [ebx]
inc esi
not esi
add edi, 0x23facf2a
not edi
not ebx
add edx, ecx
inc ecx
mov esi, section..reltc
mov ecx, edx
or edx, edx
mov ebx, 0xa78795
mov edx, ecx
not ecx
mov edi, 0
add ecx, 1
inc edx
dec edx
mov eax, 0xa78796
mov edx, ecx
mov edx, 0xd8e0f3c4
lea eax, [eax + edi]
dec ecx
mov edx, ecx
or ecx, ecx
mov eax, dword [eax]
sub ecx, 0xc9017c23
add ecx, 0x28284c0f
and eax, 0xff
not ecx
not edx
inc edi
or ecx, edx
sub ecx, 0x358df774
cmp edi, 0x1f4
jne 0xa78be4
mov edi, 0
add ecx, 0xc98c1b10
dec ecx
not edx
dec ecx
mov edx, 0xfb0e7cd3
not edx
xor dword [esi], eax
add ecx, 0x8f61ba72
mov ecx, 0x9fb35917
sub ecx, 0x77231647
add esi, 2
dec ecx
mov ecx, 0xc380162f
cmp esi, ebx
jl 0xa78ba2
and ecx, ecx
or ecx, ecx
sub edx, ecx
dec ecx
and edx, edx
mov edi, section..reltc
or esi, ecx
not esi
add ecx, 0xff094e42
mov edx, section..reltc
add ecx, esi
mov ecx, esi
mov eax, 0xa78795
add ecx, ecx
and ecx, ecx
mov ebx, 0
add esi, esi
sub ecx, esi
mov bl, byte [edx]
dec esi
sub esi, ecx
and esi, ecx
mov byte [edi], bl
mov esi, 0x3a91b695
and ecx, ecx
inc edi
not ecx
inc ecx
add edx, 2
add ecx, 0xa271c08
not ecx
cmp edx, eax
jle 0xa78c4f
add ecx, esi
not ecx
dec ecx
sub edx, 0x19e098b9
push 0x8dc6a0
sub edx, 1
mov ecx, 0x60dd58e5
add ecx, 0x2ec14c84
ret