asn1/tasn_utl.c: fix logical error in and overhaul asn1_do_lock.