gl_linkedhash_list.c:gl_linked_nx_create_empty:
   45|      2|{
   46|      2|  struct gl_list_impl *list =
   47|      2|    (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
   48|       |
   49|      2|  if (list == NULL)
  ------------------
  |  Branch (49:7): [True: 0, False: 2]
  ------------------
   50|      0|    return NULL;
   51|       |
   52|      2|  list->base.vtable = implementation;
   53|      2|  list->base.equals_fn = equals_fn;
   54|      2|  list->base.hashcode_fn = hashcode_fn;
   55|      2|  list->base.dispose_fn = dispose_fn;
   56|      2|  list->base.allow_duplicates = allow_duplicates;
   57|      2|#if WITH_HASHTABLE
   58|      2|  list->table_size = 11;
   59|      2|  list->table =
   60|      2|    (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t));
   61|      2|  if (list->table == NULL)
  ------------------
  |  Branch (61:7): [True: 0, False: 2]
  ------------------
   62|      0|    goto fail;
   63|      2|#endif
   64|      2|  list->root.next = &list->root;
   65|      2|  list->root.prev = &list->root;
   66|      2|  list->count = 0;
   67|       |
   68|      2|  return list;
   69|       |
   70|      0|#if WITH_HASHTABLE
   71|      0| fail:
   72|      0|  free (list);
   73|      0|  return NULL;
   74|      2|#endif
   75|      2|}

gl_list_nx_create_empty:
  607|      2|{
  608|      2|  return implementation->nx_create_empty (implementation, equals_fn,
  609|      2|                                          hashcode_fn, dispose_fn,
  610|      2|                                          allow_duplicates);
  611|      2|}

_gnutls_register_accel_crypto:
   33|      2|{
   34|      2|#if defined(ASM_X86)
   35|      2|	register_x86_crypto();
   36|      2|#endif
   37|       |
   38|       |#if defined(ASM_AARCH64)
   39|       |	register_aarch64_crypto();
   40|       |#endif
   41|       |
   42|      2|	return;
   43|      2|}

_gnutls_afalg_init:
  864|      2|{
  865|      2|	return 0;
  866|      2|}

_gnutls_cryptodev_init:
  505|      2|{
  506|      2|	return 0;
  507|      2|}

register_x86_crypto:
 1235|      2|{
 1236|      2|	unsigned capabilities = 0;
 1237|      2|	char *p;
 1238|      2|	p = secure_getenv("GNUTLS_CPUID_OVERRIDE");
 1239|      2|	if (p) {
  ------------------
  |  Branch (1239:6): [True: 0, False: 2]
  ------------------
 1240|      0|		capabilities = strtol(p, NULL, 0);
 1241|      0|	}
 1242|       |
 1243|      2|	register_x86_intel_crypto(capabilities);
 1244|      2|#ifdef ENABLE_PADLOCK
 1245|      2|	register_x86_padlock_crypto(capabilities);
 1246|      2|#endif
 1247|      2|}
x86-common.c:register_x86_intel_crypto:
  900|      2|{
  901|      2|	int ret;
  902|      2|	enum x86_cpu_vendor vendor;
  903|       |
  904|      2|	memset(GNUTLS_x86_cpuid_s, 0, sizeof(GNUTLS_x86_cpuid_s));
  905|       |
  906|      2|	vendor = check_x86_cpu_vendor();
  907|      2|	if (vendor == X86_CPU_VENDOR_OTHER) {
  ------------------
  |  Branch (907:6): [True: 0, False: 2]
  ------------------
  908|      0|		return;
  909|      0|	}
  910|       |
  911|      2|	if (capabilities == 0) {
  ------------------
  |  Branch (911:6): [True: 2, False: 0]
  ------------------
  912|      2|		if (!read_cpuid_vals(GNUTLS_x86_cpuid_s))
  ------------------
  |  Branch (912:7): [True: 0, False: 2]
  ------------------
  913|      0|			return;
  914|      2|		if (!check_4th_gen_intel_features(GNUTLS_x86_cpuid_s[1])) {
  ------------------
  |  Branch (914:7): [True: 0, False: 2]
  ------------------
  915|      0|			GNUTLS_x86_cpuid_s[1] &= ~bit_AVX;
  916|       |
  917|       |			/* Clear AVX2 bits as well, according to what
  918|       |			 * OpenSSL does.  Should we clear
  919|       |			 * bit_AVX512DQ, bit_AVX512PF, bit_AVX512ER,
  920|       |			 * and bit_AVX512CD? */
  921|      0|			GNUTLS_x86_cpuid_s[2] &= ~(bit_AVX2 |
  922|      0|						   bit_AVX512F |
  923|      0|						   bit_AVX512IFMA |
  924|      0|						   bit_AVX512BW | bit_AVX512BW);
  925|      0|		}
  926|      2|	} else {
  927|      0|		capabilities_to_intel_cpuid(capabilities);
  928|      0|	}
  929|       |
  930|       |	/* CRYPTOGAMS uses the (1 << 30) bit as an indicator of Intel CPUs */
  931|      2|	if (vendor == X86_CPU_VENDOR_INTEL) {
  ------------------
  |  Branch (931:6): [True: 0, False: 2]
  ------------------
  932|      0|		GNUTLS_x86_cpuid_s[0] |= 1 << 30;
  933|      2|	} else {
  934|      2|		GNUTLS_x86_cpuid_s[0] &= ~(1 << 30);
  935|      2|	}
  936|       |
  937|      2|	if (check_ssse3()) {
  ------------------
  |  Branch (937:6): [True: 2, False: 0]
  ------------------
  938|      2|		_gnutls_debug_log("Intel SSSE3 was detected\n");
  ------------------
  |  |  139|      2|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      2|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      2|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      2|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  939|       |
  940|      2|		ret =
  941|      2|		    gnutls_crypto_single_cipher_register
  942|      2|		    (GNUTLS_CIPHER_AES_128_GCM, 90,
  943|      2|		     &_gnutls_aes_gcm_x86_ssse3, 0);
  944|      2|		if (ret < 0) {
  ------------------
  |  Branch (944:7): [True: 0, False: 2]
  ------------------
  945|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  946|      0|		}
  947|       |
  948|      2|		ret =
  949|      2|		    gnutls_crypto_single_cipher_register
  950|      2|		    (GNUTLS_CIPHER_AES_192_GCM, 90,
  951|      2|		     &_gnutls_aes_gcm_x86_ssse3, 0);
  952|      2|		if (ret < 0) {
  ------------------
  |  Branch (952:7): [True: 0, False: 2]
  ------------------
  953|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  954|      0|		}
  955|       |
  956|      2|		ret =
  957|      2|		    gnutls_crypto_single_cipher_register
  958|      2|		    (GNUTLS_CIPHER_AES_256_GCM, 90,
  959|      2|		     &_gnutls_aes_gcm_x86_ssse3, 0);
  960|      2|		if (ret < 0) {
  ------------------
  |  Branch (960:7): [True: 0, False: 2]
  ------------------
  961|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  962|      0|		}
  963|       |
  964|      2|		ret =
  965|      2|		    gnutls_crypto_single_cipher_register
  966|      2|		    (GNUTLS_CIPHER_AES_128_CBC, 90, &_gnutls_aes_ssse3, 0);
  967|      2|		if (ret < 0) {
  ------------------
  |  Branch (967:7): [True: 0, False: 2]
  ------------------
  968|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  969|      0|		}
  970|       |
  971|      2|		ret =
  972|      2|		    gnutls_crypto_single_cipher_register
  973|      2|		    (GNUTLS_CIPHER_AES_192_CBC, 90, &_gnutls_aes_ssse3, 0);
  974|      2|		if (ret < 0) {
  ------------------
  |  Branch (974:7): [True: 0, False: 2]
  ------------------
  975|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  976|      0|		}
  977|       |
  978|      2|		ret =
  979|      2|		    gnutls_crypto_single_cipher_register
  980|      2|		    (GNUTLS_CIPHER_AES_256_CBC, 90, &_gnutls_aes_ssse3, 0);
  981|      2|		if (ret < 0) {
  ------------------
  |  Branch (981:7): [True: 0, False: 2]
  ------------------
  982|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  983|      0|		}
  984|      2|	}
  985|       |
  986|      2|	if (check_sha() || check_ssse3()) {
  ------------------
  |  Branch (986:6): [True: 2, False: 0]
  |  Branch (986:21): [True: 0, False: 0]
  ------------------
  987|      2|		if (check_sha())
  ------------------
  |  Branch (987:7): [True: 2, False: 0]
  ------------------
  988|      2|			_gnutls_debug_log("Intel SHA was detected\n");
  ------------------
  |  |  139|      2|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      2|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      2|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      2|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  989|       |
  990|      2|		ret =
  991|      2|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
  992|      2|							 80,
  993|      2|							 &_gnutls_sha_x86_ssse3,
  994|      2|							 0);
  995|      2|		if (ret < 0) {
  ------------------
  |  Branch (995:7): [True: 0, False: 2]
  ------------------
  996|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  997|      0|		}
  998|       |
  999|      2|		ret =
 1000|      2|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
 1001|      2|							 80,
 1002|      2|							 &_gnutls_sha_x86_ssse3,
 1003|      2|							 0);
 1004|      2|		if (ret < 0) {
  ------------------
  |  Branch (1004:7): [True: 0, False: 2]
  ------------------
 1005|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1006|      0|		}
 1007|       |
 1008|      2|		ret =
 1009|      2|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
 1010|      2|							 80,
 1011|      2|							 &_gnutls_sha_x86_ssse3,
 1012|      2|							 0);
 1013|      2|		if (ret < 0) {
  ------------------
  |  Branch (1013:7): [True: 0, False: 2]
  ------------------
 1014|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1015|      0|		}
 1016|       |
 1017|      2|		ret =
 1018|      2|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
 1019|      2|						      80,
 1020|      2|						      &_gnutls_hmac_sha_x86_ssse3,
 1021|      2|						      0);
 1022|      2|		if (ret < 0)
  ------------------
  |  Branch (1022:7): [True: 0, False: 2]
  ------------------
 1023|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1024|       |
 1025|      2|		ret =
 1026|      2|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA224,
 1027|      2|						      80,
 1028|      2|						      &_gnutls_hmac_sha_x86_ssse3,
 1029|      2|						      0);
 1030|      2|		if (ret < 0)
  ------------------
  |  Branch (1030:7): [True: 0, False: 2]
  ------------------
 1031|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1032|       |
 1033|      2|		ret =
 1034|      2|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
 1035|      2|						      80,
 1036|      2|						      &_gnutls_hmac_sha_x86_ssse3,
 1037|      2|						      0);
 1038|      2|		if (ret < 0)
  ------------------
  |  Branch (1038:7): [True: 0, False: 2]
  ------------------
 1039|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1040|       |
 1041|      2|		ret =
 1042|      2|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA384,
 1043|      2|							 80,
 1044|      2|							 &_gnutls_sha_x86_ssse3,
 1045|      2|							 0);
 1046|      2|		if (ret < 0)
  ------------------
  |  Branch (1046:7): [True: 0, False: 2]
  ------------------
 1047|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1048|       |
 1049|      2|		ret =
 1050|      2|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA512,
 1051|      2|							 80,
 1052|      2|							 &_gnutls_sha_x86_ssse3,
 1053|      2|							 0);
 1054|      2|		if (ret < 0)
  ------------------
  |  Branch (1054:7): [True: 0, False: 2]
  ------------------
 1055|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1056|      2|		ret =
 1057|      2|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA384,
 1058|      2|						      80,
 1059|      2|						      &_gnutls_hmac_sha_x86_ssse3,
 1060|      2|						      0);
 1061|      2|		if (ret < 0)
  ------------------
  |  Branch (1061:7): [True: 0, False: 2]
  ------------------
 1062|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1063|       |
 1064|      2|		ret =
 1065|      2|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA512,
 1066|      2|						      80,
 1067|      2|						      &_gnutls_hmac_sha_x86_ssse3,
 1068|      2|						      0);
 1069|      2|		if (ret < 0)
  ------------------
  |  Branch (1069:7): [True: 0, False: 2]
  ------------------
 1070|      2|			gnutls_assert();
  ------------------
  |  |   33|      2|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1071|      2|	}
 1072|       |
 1073|      2|	if (check_optimized_aes()) {
  ------------------
  |  Branch (1073:6): [True: 2, False: 0]
  ------------------
 1074|      2|		_gnutls_debug_log("Intel AES accelerator was detected\n");
  ------------------
  |  |  139|      2|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      2|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      2|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      2|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1075|      2|		ret =
 1076|      2|		    gnutls_crypto_single_cipher_register
 1077|      2|		    (GNUTLS_CIPHER_AES_128_CBC, 80, &_gnutls_aesni_x86, 0);
 1078|      2|		if (ret < 0) {
  ------------------
  |  Branch (1078:7): [True: 0, False: 2]
  ------------------
 1079|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1080|      0|		}
 1081|       |
 1082|      2|		ret =
 1083|      2|		    gnutls_crypto_single_cipher_register
 1084|      2|		    (GNUTLS_CIPHER_AES_192_CBC, 80, &_gnutls_aesni_x86, 0);
 1085|      2|		if (ret < 0) {
  ------------------
  |  Branch (1085:7): [True: 0, False: 2]
  ------------------
 1086|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1087|      0|		}
 1088|       |
 1089|      2|		ret =
 1090|      2|		    gnutls_crypto_single_cipher_register
 1091|      2|		    (GNUTLS_CIPHER_AES_256_CBC, 80, &_gnutls_aesni_x86, 0);
 1092|      2|		if (ret < 0) {
  ------------------
  |  Branch (1092:7): [True: 0, False: 2]
  ------------------
 1093|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1094|      0|		}
 1095|       |
 1096|      2|		ret =
 1097|      2|		    gnutls_crypto_single_cipher_register
 1098|      2|		    (GNUTLS_CIPHER_AES_128_CCM, 80,
 1099|      2|		     &_gnutls_aes_ccm_x86_aesni, 0);
 1100|      2|		if (ret < 0) {
  ------------------
  |  Branch (1100:7): [True: 0, False: 2]
  ------------------
 1101|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1102|      0|		}
 1103|       |
 1104|      2|		ret =
 1105|      2|		    gnutls_crypto_single_cipher_register
 1106|      2|		    (GNUTLS_CIPHER_AES_256_CCM, 80,
 1107|      2|		     &_gnutls_aes_ccm_x86_aesni, 0);
 1108|      2|		if (ret < 0) {
  ------------------
  |  Branch (1108:7): [True: 0, False: 2]
  ------------------
 1109|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1110|      0|		}
 1111|       |
 1112|      2|		ret =
 1113|      2|		    gnutls_crypto_single_cipher_register
 1114|      2|		    (GNUTLS_CIPHER_AES_128_CCM_8, 80,
 1115|      2|		     &_gnutls_aes_ccm_x86_aesni, 0);
 1116|      2|		if (ret < 0) {
  ------------------
  |  Branch (1116:7): [True: 0, False: 2]
  ------------------
 1117|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1118|      0|		}
 1119|       |
 1120|      2|		ret =
 1121|      2|		    gnutls_crypto_single_cipher_register
 1122|      2|		    (GNUTLS_CIPHER_AES_256_CCM_8, 80,
 1123|      2|		     &_gnutls_aes_ccm_x86_aesni, 0);
 1124|      2|		if (ret < 0) {
  ------------------
  |  Branch (1124:7): [True: 0, False: 2]
  ------------------
 1125|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1126|      0|		}
 1127|       |
 1128|      2|		ret =
 1129|      2|		    gnutls_crypto_single_cipher_register
 1130|      2|		    (GNUTLS_CIPHER_AES_128_XTS, 80,
 1131|      2|		     &_gnutls_aes_xts_x86_aesni, 0);
 1132|      2|		if (ret < 0) {
  ------------------
  |  Branch (1132:7): [True: 0, False: 2]
  ------------------
 1133|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1134|      0|		}
 1135|       |
 1136|      2|		ret =
 1137|      2|		    gnutls_crypto_single_cipher_register
 1138|      2|		    (GNUTLS_CIPHER_AES_256_XTS, 80,
 1139|      2|		     &_gnutls_aes_xts_x86_aesni, 0);
 1140|      2|		if (ret < 0) {
  ------------------
  |  Branch (1140:7): [True: 0, False: 2]
  ------------------
 1141|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1142|      0|		}
 1143|       |
 1144|      2|#ifdef ASM_X86_64
 1145|      2|		if (check_pclmul()) {
  ------------------
  |  Branch (1145:7): [True: 2, False: 0]
  ------------------
 1146|       |			/* register GCM ciphers */
 1147|      2|			if (check_avx_movbe()) {
  ------------------
  |  Branch (1147:8): [True: 2, False: 0]
  ------------------
 1148|      2|				_gnutls_debug_log
  ------------------
  |  |  139|      2|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      2|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      2|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      2|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1149|      2|				    ("Intel GCM accelerator (AVX) was detected\n");
 1150|      2|				ret =
 1151|      2|				    gnutls_crypto_single_cipher_register
 1152|      2|				    (GNUTLS_CIPHER_AES_128_GCM, 80,
 1153|      2|				     &_gnutls_aes_gcm_pclmul_avx, 0);
 1154|      2|				if (ret < 0) {
  ------------------
  |  Branch (1154:9): [True: 0, False: 2]
  ------------------
 1155|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1156|      0|				}
 1157|       |
 1158|      2|				ret =
 1159|      2|				    gnutls_crypto_single_cipher_register
 1160|      2|				    (GNUTLS_CIPHER_AES_192_GCM, 80,
 1161|      2|				     &_gnutls_aes_gcm_pclmul_avx, 0);
 1162|      2|				if (ret < 0) {
  ------------------
  |  Branch (1162:9): [True: 0, False: 2]
  ------------------
 1163|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1164|      0|				}
 1165|       |
 1166|      2|				ret =
 1167|      2|				    gnutls_crypto_single_cipher_register
 1168|      2|				    (GNUTLS_CIPHER_AES_256_GCM, 80,
 1169|      2|				     &_gnutls_aes_gcm_pclmul_avx, 0);
 1170|      2|				if (ret < 0) {
  ------------------
  |  Branch (1170:9): [True: 0, False: 2]
  ------------------
 1171|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1172|      0|				}
 1173|      2|			} else {
 1174|      0|				_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1175|      0|				    ("Intel GCM accelerator was detected\n");
 1176|      0|				ret =
 1177|      0|				    gnutls_crypto_single_cipher_register
 1178|      0|				    (GNUTLS_CIPHER_AES_128_GCM, 80,
 1179|      0|				     &_gnutls_aes_gcm_pclmul, 0);
 1180|      0|				if (ret < 0) {
  ------------------
  |  Branch (1180:9): [True: 0, False: 0]
  ------------------
 1181|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1182|      0|				}
 1183|       |
 1184|      0|				ret =
 1185|      0|				    gnutls_crypto_single_cipher_register
 1186|      0|				    (GNUTLS_CIPHER_AES_192_GCM, 80,
 1187|      0|				     &_gnutls_aes_gcm_pclmul, 0);
 1188|      0|				if (ret < 0) {
  ------------------
  |  Branch (1188:9): [True: 0, False: 0]
  ------------------
 1189|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1190|      0|				}
 1191|       |
 1192|      0|				ret =
 1193|      0|				    gnutls_crypto_single_cipher_register
 1194|      0|				    (GNUTLS_CIPHER_AES_256_GCM, 80,
 1195|      0|				     &_gnutls_aes_gcm_pclmul, 0);
 1196|      0|				if (ret < 0) {
  ------------------
  |  Branch (1196:9): [True: 0, False: 0]
  ------------------
 1197|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1198|      0|				}
 1199|      0|			}
 1200|      2|		} else
 1201|      0|#endif
 1202|      0|		{
 1203|      0|			ret =
 1204|      0|			    gnutls_crypto_single_cipher_register
 1205|      0|			    (GNUTLS_CIPHER_AES_128_GCM, 80,
 1206|      0|			     &_gnutls_aes_gcm_x86_aesni, 0);
 1207|      0|			if (ret < 0) {
  ------------------
  |  Branch (1207:8): [True: 0, False: 0]
  ------------------
 1208|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1209|      0|			}
 1210|       |
 1211|      0|			ret =
 1212|      0|			    gnutls_crypto_single_cipher_register
 1213|      0|			    (GNUTLS_CIPHER_AES_192_GCM, 80,
 1214|      0|			     &_gnutls_aes_gcm_x86_aesni, 0);
 1215|      0|			if (ret < 0) {
  ------------------
  |  Branch (1215:8): [True: 0, False: 0]
  ------------------
 1216|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1217|      0|			}
 1218|       |
 1219|      0|			ret =
 1220|      0|			    gnutls_crypto_single_cipher_register
 1221|      0|			    (GNUTLS_CIPHER_AES_256_GCM, 80,
 1222|      0|			     &_gnutls_aes_gcm_x86_aesni, 0);
 1223|      0|			if (ret < 0) {
  ------------------
  |  Branch (1223:8): [True: 0, False: 0]
  ------------------
 1224|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1225|      0|			}
 1226|      0|		}
 1227|      2|	} else {
 1228|      0|		_gnutls_priority_update_non_aesni();
 1229|      0|	}
 1230|       |
 1231|      2|	return;
 1232|      2|}
x86-common.c:check_x86_cpu_vendor:
  878|      2|{
  879|      2|	unsigned int a, b, c, d;
  880|       |
  881|      2|	if (!__get_cpuid(0, &a, &b, &c, &d)) {
  ------------------
  |  Branch (881:6): [True: 0, False: 2]
  ------------------
  882|      0|		return X86_CPU_VENDOR_OTHER;
  883|      0|	}
  884|       |
  885|      2|	if (memcmp(&b, "Genu", 4) == 0 &&
  ------------------
  |  Branch (885:6): [True: 0, False: 2]
  ------------------
  886|      2|	    memcmp(&d, "ineI", 4) == 0 && memcmp(&c, "ntel", 4) == 0) {
  ------------------
  |  Branch (886:6): [True: 0, False: 0]
  |  Branch (886:36): [True: 0, False: 0]
  ------------------
  887|      0|		return X86_CPU_VENDOR_INTEL;
  888|      0|	}
  889|       |
  890|      2|	if (memcmp(&b, "Auth", 4) == 0 &&
  ------------------
  |  Branch (890:6): [True: 2, False: 0]
  ------------------
  891|      2|	    memcmp(&d, "enti", 4) == 0 && memcmp(&c, "cAMD", 4) == 0) {
  ------------------
  |  Branch (891:6): [True: 2, False: 0]
  |  Branch (891:36): [True: 2, False: 0]
  ------------------
  892|      2|		return X86_CPU_VENDOR_AMD;
  893|      2|	}
  894|       |
  895|      0|	return X86_CPU_VENDOR_OTHER;
  896|      2|}
x86-common.c:read_cpuid_vals:
  145|      2|{
  146|      2|	unsigned t1, t2, t3;
  147|      2|	vals[0] = vals[1] = vals[2] = vals[3] = 0;
  148|       |
  149|      2|	if (!__get_cpuid(1, &t1, &t2, &vals[1], &vals[0]))
  ------------------
  |  Branch (149:6): [True: 0, False: 2]
  ------------------
  150|      0|		return 0;
  151|       |	/* suppress AVX512; it works conditionally on certain CPUs on the original code */
  152|      2|	vals[1] &= 0xfffff7ff;
  153|       |
  154|      2|	get_cpuid_level7(&t1, &vals[2], &t2, &t3);
  ------------------
  |  |  141|      2|# define get_cpuid_level7(a,b,c,d) __get_cpuid_count(7, 0, a, b, c, d)
  ------------------
  155|       |
  156|      2|	return 1;
  157|      2|}
x86-common.c:check_4th_gen_intel_features:
  164|      2|{
  165|      2|	uint32_t xcr0;
  166|       |
  167|      2|	if ((ecx & bit_OSXSAVE) != bit_OSXSAVE)
  ------------------
  |  Branch (167:6): [True: 0, False: 2]
  ------------------
  168|      0|		return 0;
  169|       |
  170|       |#if defined(_MSC_VER) && !defined(__clang__)
  171|       |	xcr0 = _xgetbv(0);
  172|       |#else
  173|      2| __asm__("xgetbv": "=a"(xcr0): "c"(0):"%edx");
  174|      2|#endif
  175|       |	/* Check if xmm and ymm state are enabled in XCR0. */
  176|      2|	return (xcr0 & 6) == 6;
  177|      2|}
x86-common.c:check_ssse3:
  243|      2|{
  244|      2|	return (GNUTLS_x86_cpuid_s[1] & bit_SSSE3);
  245|      2|}
x86-common.c:check_sha:
  248|      4|{
  249|      4|	return (GNUTLS_x86_cpuid_s[2] & bit_SHA);
  250|      4|}
x86-common.c:check_optimized_aes:
  238|      2|{
  239|      2|	return (GNUTLS_x86_cpuid_s[1] & bit_AES);
  240|      2|}
x86-common.c:check_pclmul:
  260|      2|{
  261|      2|	return (GNUTLS_x86_cpuid_s[1] & bit_PCLMUL);
  262|      2|}
x86-common.c:check_avx_movbe:
  254|      2|{
  255|      2|	return (GNUTLS_x86_cpuid_s[1] & (bit_AVX | bit_MOVBE)) ==
  256|      2|	    (bit_AVX | bit_MOVBE);
  257|      2|}
x86-common.c:register_x86_padlock_crypto:
  384|      2|{
  385|      2|	int ret, phe;
  386|      2|	unsigned edx;
  387|       |
  388|      2|	if (check_zhaoxin() == 0)
  ------------------
  |  Branch (388:6): [True: 2, False: 0]
  ------------------
  389|      2|		return;
  390|       |
  391|      0|	memset(GNUTLS_x86_cpuid_s, 0, sizeof(GNUTLS_x86_cpuid_s));
  392|       |
  393|      0|	if (capabilities == 0) {
  ------------------
  |  Branch (393:6): [True: 0, False: 0]
  ------------------
  394|      0|		if (!read_cpuid_vals(GNUTLS_x86_cpuid_s))
  ------------------
  |  Branch (394:7): [True: 0, False: 0]
  ------------------
  395|      0|			return;
  396|      0|		edx = padlock_capability();
  397|      0|	} else {
  398|      0|		capabilities_to_intel_cpuid(capabilities);
  399|      0|		edx = capabilities_to_zhaoxin_edx(capabilities);
  400|      0|	}
  401|       |
  402|      0|	if (check_ssse3()) {
  ------------------
  |  Branch (402:6): [True: 0, False: 0]
  ------------------
  403|      0|		_gnutls_debug_log("Zhaoxin SSSE3 was detected\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  404|       |
  405|      0|		ret =
  406|      0|		    gnutls_crypto_single_cipher_register
  407|      0|		    (GNUTLS_CIPHER_AES_128_GCM, 90,
  408|      0|		     &_gnutls_aes_gcm_x86_ssse3, 0);
  409|      0|		if (ret < 0) {
  ------------------
  |  Branch (409:7): [True: 0, False: 0]
  ------------------
  410|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  411|      0|		}
  412|       |
  413|      0|		ret =
  414|      0|		    gnutls_crypto_single_cipher_register
  415|      0|		    (GNUTLS_CIPHER_AES_192_GCM, 90,
  416|      0|		     &_gnutls_aes_gcm_x86_ssse3, 0);
  417|      0|		if (ret < 0) {
  ------------------
  |  Branch (417:7): [True: 0, False: 0]
  ------------------
  418|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  419|      0|		}
  420|       |
  421|      0|		ret =
  422|      0|		    gnutls_crypto_single_cipher_register
  423|      0|		    (GNUTLS_CIPHER_AES_256_GCM, 90,
  424|      0|		     &_gnutls_aes_gcm_x86_ssse3, 0);
  425|      0|		if (ret < 0) {
  ------------------
  |  Branch (425:7): [True: 0, False: 0]
  ------------------
  426|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  427|      0|		}
  428|       |
  429|      0|		ret =
  430|      0|		    gnutls_crypto_single_cipher_register
  431|      0|		    (GNUTLS_CIPHER_AES_128_CBC, 90, &_gnutls_aes_ssse3, 0);
  432|      0|		if (ret < 0) {
  ------------------
  |  Branch (432:7): [True: 0, False: 0]
  ------------------
  433|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  434|      0|		}
  435|       |
  436|      0|		ret =
  437|      0|		    gnutls_crypto_single_cipher_register
  438|      0|		    (GNUTLS_CIPHER_AES_192_CBC, 90, &_gnutls_aes_ssse3, 0);
  439|      0|		if (ret < 0) {
  ------------------
  |  Branch (439:7): [True: 0, False: 0]
  ------------------
  440|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  441|      0|		}
  442|       |
  443|      0|		ret =
  444|      0|		    gnutls_crypto_single_cipher_register
  445|      0|		    (GNUTLS_CIPHER_AES_256_CBC, 90, &_gnutls_aes_ssse3, 0);
  446|      0|		if (ret < 0) {
  ------------------
  |  Branch (446:7): [True: 0, False: 0]
  ------------------
  447|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  448|      0|		}
  449|      0|	}
  450|       |
  451|      0|	if (check_sha() || check_ssse3()) {
  ------------------
  |  Branch (451:6): [True: 0, False: 0]
  |  Branch (451:21): [True: 0, False: 0]
  ------------------
  452|      0|		if (check_sha())
  ------------------
  |  Branch (452:7): [True: 0, False: 0]
  ------------------
  453|      0|			_gnutls_debug_log("Zhaoxin SHA was detected\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  454|       |
  455|      0|		ret =
  456|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
  457|      0|							 80,
  458|      0|							 &_gnutls_sha_x86_ssse3,
  459|      0|							 0);
  460|      0|		if (ret < 0) {
  ------------------
  |  Branch (460:7): [True: 0, False: 0]
  ------------------
  461|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  462|      0|		}
  463|       |
  464|      0|		ret =
  465|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
  466|      0|							 80,
  467|      0|							 &_gnutls_sha_x86_ssse3,
  468|      0|							 0);
  469|      0|		if (ret < 0) {
  ------------------
  |  Branch (469:7): [True: 0, False: 0]
  ------------------
  470|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  471|      0|		}
  472|       |
  473|      0|		ret =
  474|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
  475|      0|							 80,
  476|      0|							 &_gnutls_sha_x86_ssse3,
  477|      0|							 0);
  478|      0|		if (ret < 0) {
  ------------------
  |  Branch (478:7): [True: 0, False: 0]
  ------------------
  479|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  480|      0|		}
  481|       |
  482|      0|		ret =
  483|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
  484|      0|						      80,
  485|      0|						      &_gnutls_hmac_sha_x86_ssse3,
  486|      0|						      0);
  487|      0|		if (ret < 0)
  ------------------
  |  Branch (487:7): [True: 0, False: 0]
  ------------------
  488|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  489|       |
  490|      0|		ret =
  491|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA224,
  492|      0|						      80,
  493|      0|						      &_gnutls_hmac_sha_x86_ssse3,
  494|      0|						      0);
  495|      0|		if (ret < 0)
  ------------------
  |  Branch (495:7): [True: 0, False: 0]
  ------------------
  496|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  497|       |
  498|      0|		ret =
  499|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
  500|      0|						      80,
  501|      0|						      &_gnutls_hmac_sha_x86_ssse3,
  502|      0|						      0);
  503|      0|		if (ret < 0)
  ------------------
  |  Branch (503:7): [True: 0, False: 0]
  ------------------
  504|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  505|       |
  506|      0|		ret =
  507|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA384,
  508|      0|							 80,
  509|      0|							 &_gnutls_sha_x86_ssse3,
  510|      0|							 0);
  511|      0|		if (ret < 0)
  ------------------
  |  Branch (511:7): [True: 0, False: 0]
  ------------------
  512|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  513|       |
  514|      0|		ret =
  515|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA512,
  516|      0|							 80,
  517|      0|							 &_gnutls_sha_x86_ssse3,
  518|      0|							 0);
  519|      0|		if (ret < 0)
  ------------------
  |  Branch (519:7): [True: 0, False: 0]
  ------------------
  520|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  521|      0|		ret =
  522|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA384,
  523|      0|						      80,
  524|      0|						      &_gnutls_hmac_sha_x86_ssse3,
  525|      0|						      0);
  526|      0|		if (ret < 0)
  ------------------
  |  Branch (526:7): [True: 0, False: 0]
  ------------------
  527|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  528|       |
  529|      0|		ret =
  530|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA512,
  531|      0|						      80,
  532|      0|						      &_gnutls_hmac_sha_x86_ssse3,
  533|      0|						      0);
  534|      0|		if (ret < 0)
  ------------------
  |  Branch (534:7): [True: 0, False: 0]
  ------------------
  535|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  536|      0|	}
  537|       |
  538|      0|	if (check_optimized_aes()) {
  ------------------
  |  Branch (538:6): [True: 0, False: 0]
  ------------------
  539|      0|		_gnutls_debug_log("Zhaoxin AES accelerator was detected\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  540|      0|		ret =
  541|      0|		    gnutls_crypto_single_cipher_register
  542|      0|		    (GNUTLS_CIPHER_AES_128_CBC, 80, &_gnutls_aesni_x86, 0);
  543|      0|		if (ret < 0) {
  ------------------
  |  Branch (543:7): [True: 0, False: 0]
  ------------------
  544|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  545|      0|		}
  546|       |
  547|      0|		ret =
  548|      0|		    gnutls_crypto_single_cipher_register
  549|      0|		    (GNUTLS_CIPHER_AES_192_CBC, 80, &_gnutls_aesni_x86, 0);
  550|      0|		if (ret < 0) {
  ------------------
  |  Branch (550:7): [True: 0, False: 0]
  ------------------
  551|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  552|      0|		}
  553|       |
  554|      0|		ret =
  555|      0|		    gnutls_crypto_single_cipher_register
  556|      0|		    (GNUTLS_CIPHER_AES_256_CBC, 80, &_gnutls_aesni_x86, 0);
  557|      0|		if (ret < 0) {
  ------------------
  |  Branch (557:7): [True: 0, False: 0]
  ------------------
  558|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  559|      0|		}
  560|       |
  561|      0|		ret =
  562|      0|		    gnutls_crypto_single_cipher_register
  563|      0|		    (GNUTLS_CIPHER_AES_128_CCM, 80,
  564|      0|		     &_gnutls_aes_ccm_x86_aesni, 0);
  565|      0|		if (ret < 0) {
  ------------------
  |  Branch (565:7): [True: 0, False: 0]
  ------------------
  566|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|      0|		}
  568|       |
  569|      0|		ret =
  570|      0|		    gnutls_crypto_single_cipher_register
  571|      0|		    (GNUTLS_CIPHER_AES_256_CCM, 80,
  572|      0|		     &_gnutls_aes_ccm_x86_aesni, 0);
  573|      0|		if (ret < 0) {
  ------------------
  |  Branch (573:7): [True: 0, False: 0]
  ------------------
  574|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  575|      0|		}
  576|       |
  577|      0|		ret =
  578|      0|		    gnutls_crypto_single_cipher_register
  579|      0|		    (GNUTLS_CIPHER_AES_128_CCM_8, 80,
  580|      0|		     &_gnutls_aes_ccm_x86_aesni, 0);
  581|      0|		if (ret < 0) {
  ------------------
  |  Branch (581:7): [True: 0, False: 0]
  ------------------
  582|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  583|      0|		}
  584|       |
  585|      0|		ret =
  586|      0|		    gnutls_crypto_single_cipher_register
  587|      0|		    (GNUTLS_CIPHER_AES_256_CCM_8, 80,
  588|      0|		     &_gnutls_aes_ccm_x86_aesni, 0);
  589|      0|		if (ret < 0) {
  ------------------
  |  Branch (589:7): [True: 0, False: 0]
  ------------------
  590|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  591|      0|		}
  592|       |
  593|      0|		ret =
  594|      0|		    gnutls_crypto_single_cipher_register
  595|      0|		    (GNUTLS_CIPHER_AES_128_XTS, 80,
  596|      0|		     &_gnutls_aes_xts_x86_aesni, 0);
  597|      0|		if (ret < 0) {
  ------------------
  |  Branch (597:7): [True: 0, False: 0]
  ------------------
  598|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  599|      0|		}
  600|       |
  601|      0|		ret =
  602|      0|		    gnutls_crypto_single_cipher_register
  603|      0|		    (GNUTLS_CIPHER_AES_256_XTS, 80,
  604|      0|		     &_gnutls_aes_xts_x86_aesni, 0);
  605|      0|		if (ret < 0) {
  ------------------
  |  Branch (605:7): [True: 0, False: 0]
  ------------------
  606|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  607|      0|		}
  608|       |
  609|      0|# ifdef ASM_X86_64
  610|      0|		if (check_pclmul()) {
  ------------------
  |  Branch (610:7): [True: 0, False: 0]
  ------------------
  611|       |			/* register GCM ciphers */
  612|      0|			_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  613|      0|			    ("Zhaoxin GCM accelerator was detected\n");
  614|      0|			if (check_avx_movbe() && check_fast_pclmul()) {
  ------------------
  |  Branch (614:8): [True: 0, False: 0]
  |  Branch (614:29): [True: 0, False: 0]
  ------------------
  615|      0|				_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  616|      0|				    ("Zhaoxin GCM accelerator (AVX) was detected\n");
  617|      0|				ret =
  618|      0|				    gnutls_crypto_single_cipher_register
  619|      0|				    (GNUTLS_CIPHER_AES_128_GCM, 80,
  620|      0|				     &_gnutls_aes_gcm_pclmul_avx, 0);
  621|      0|				if (ret < 0) {
  ------------------
  |  Branch (621:9): [True: 0, False: 0]
  ------------------
  622|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  623|      0|				}
  624|       |
  625|      0|				ret =
  626|      0|				    gnutls_crypto_single_cipher_register
  627|      0|				    (GNUTLS_CIPHER_AES_192_GCM, 80,
  628|      0|				     &_gnutls_aes_gcm_pclmul_avx, 0);
  629|      0|				if (ret < 0) {
  ------------------
  |  Branch (629:9): [True: 0, False: 0]
  ------------------
  630|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  631|      0|				}
  632|       |
  633|      0|				ret =
  634|      0|				    gnutls_crypto_single_cipher_register
  635|      0|				    (GNUTLS_CIPHER_AES_256_GCM, 80,
  636|      0|				     &_gnutls_aes_gcm_pclmul_avx, 0);
  637|      0|				if (ret < 0) {
  ------------------
  |  Branch (637:9): [True: 0, False: 0]
  ------------------
  638|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  639|      0|				}
  640|      0|			} else {
  641|      0|				ret =
  642|      0|				    gnutls_crypto_single_cipher_register
  643|      0|				    (GNUTLS_CIPHER_AES_128_GCM, 80,
  644|      0|				     &_gnutls_aes_gcm_pclmul, 0);
  645|      0|				if (ret < 0) {
  ------------------
  |  Branch (645:9): [True: 0, False: 0]
  ------------------
  646|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  647|      0|				}
  648|       |
  649|      0|				ret =
  650|      0|				    gnutls_crypto_single_cipher_register
  651|      0|				    (GNUTLS_CIPHER_AES_192_GCM, 80,
  652|      0|				     &_gnutls_aes_gcm_pclmul, 0);
  653|      0|				if (ret < 0) {
  ------------------
  |  Branch (653:9): [True: 0, False: 0]
  ------------------
  654|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  655|      0|				}
  656|       |
  657|      0|				ret =
  658|      0|				    gnutls_crypto_single_cipher_register
  659|      0|				    (GNUTLS_CIPHER_AES_256_GCM, 80,
  660|      0|				     &_gnutls_aes_gcm_pclmul, 0);
  661|      0|				if (ret < 0) {
  ------------------
  |  Branch (661:9): [True: 0, False: 0]
  ------------------
  662|      0|					gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  663|      0|				}
  664|      0|			}
  665|      0|		} else
  666|      0|# endif
  667|      0|		{
  668|      0|			ret =
  669|      0|			    gnutls_crypto_single_cipher_register
  670|      0|			    (GNUTLS_CIPHER_AES_128_GCM, 80,
  671|      0|			     &_gnutls_aes_gcm_x86_aesni, 0);
  672|      0|			if (ret < 0) {
  ------------------
  |  Branch (672:8): [True: 0, False: 0]
  ------------------
  673|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  674|      0|			}
  675|       |
  676|      0|			ret =
  677|      0|			    gnutls_crypto_single_cipher_register
  678|      0|			    (GNUTLS_CIPHER_AES_192_GCM, 80,
  679|      0|			     &_gnutls_aes_gcm_x86_aesni, 0);
  680|      0|			if (ret < 0) {
  ------------------
  |  Branch (680:8): [True: 0, False: 0]
  ------------------
  681|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  682|      0|			}
  683|       |
  684|      0|			ret =
  685|      0|			    gnutls_crypto_single_cipher_register
  686|      0|			    (GNUTLS_CIPHER_AES_256_GCM, 80,
  687|      0|			     &_gnutls_aes_gcm_x86_aesni, 0);
  688|      0|			if (ret < 0) {
  ------------------
  |  Branch (688:8): [True: 0, False: 0]
  ------------------
  689|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  690|      0|			}
  691|      0|		}
  692|      0|	}
  693|       |
  694|      0|	if (check_padlock(edx)) {
  ------------------
  |  Branch (694:6): [True: 0, False: 0]
  ------------------
  695|      0|		_gnutls_debug_log("Padlock AES accelerator was detected\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  696|      0|		ret =
  697|      0|		    gnutls_crypto_single_cipher_register
  698|      0|		    (GNUTLS_CIPHER_AES_128_CBC, 80, &_gnutls_aes_padlock, 0);
  699|      0|		if (ret < 0) {
  ------------------
  |  Branch (699:7): [True: 0, False: 0]
  ------------------
  700|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  701|      0|		}
  702|       |
  703|      0|		ret =
  704|      0|		    gnutls_crypto_single_cipher_register
  705|      0|		    (GNUTLS_CIPHER_AES_192_CBC, 80, &_gnutls_aes_padlock, 0);
  706|      0|		if (ret < 0) {
  ------------------
  |  Branch (706:7): [True: 0, False: 0]
  ------------------
  707|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  708|      0|		}
  709|       |
  710|       |		/* register GCM ciphers */
  711|      0|		ret =
  712|      0|		    gnutls_crypto_single_cipher_register
  713|      0|		    (GNUTLS_CIPHER_AES_128_GCM, 90,
  714|      0|		     &_gnutls_aes_gcm_padlock, 0);
  715|      0|		if (ret < 0) {
  ------------------
  |  Branch (715:7): [True: 0, False: 0]
  ------------------
  716|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  717|      0|		}
  718|       |
  719|      0|		ret =
  720|      0|		    gnutls_crypto_single_cipher_register
  721|      0|		    (GNUTLS_CIPHER_AES_256_CBC, 80, &_gnutls_aes_padlock, 0);
  722|      0|		if (ret < 0) {
  ------------------
  |  Branch (722:7): [True: 0, False: 0]
  ------------------
  723|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  724|      0|		}
  725|       |
  726|      0|		ret =
  727|      0|		    gnutls_crypto_single_cipher_register
  728|      0|		    (GNUTLS_CIPHER_AES_256_GCM, 90,
  729|      0|		     &_gnutls_aes_gcm_padlock, 0);
  730|      0|		if (ret < 0) {
  ------------------
  |  Branch (730:7): [True: 0, False: 0]
  ------------------
  731|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  732|      0|		}
  733|      0|	}
  734|       |
  735|      0|	if (!check_optimized_aes() && !check_padlock(edx))
  ------------------
  |  Branch (735:6): [True: 0, False: 0]
  |  Branch (735:32): [True: 0, False: 0]
  ------------------
  736|      0|		_gnutls_priority_update_non_aesni();
  737|       |
  738|      0|# ifdef HAVE_LIBNETTLE
  739|      0|	phe = check_phe(edx);
  740|       |
  741|      0|	if (phe && check_phe_partial()) {
  ------------------
  |  Branch (741:6): [True: 0, False: 0]
  |  Branch (741:13): [True: 0, False: 0]
  ------------------
  742|      0|		_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  743|      0|		    ("Padlock SHA1 and SHA256 (partial) accelerator was detected\n");
  744|      0|		if (check_phe_sha512(edx)) {
  ------------------
  |  Branch (744:7): [True: 0, False: 0]
  ------------------
  745|      0|			_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  746|      0|			    ("Padlock SHA512 (partial) accelerator was detected\n");
  747|      0|			ret =
  748|      0|			    gnutls_crypto_single_digest_register
  749|      0|			    (GNUTLS_DIG_SHA384, 80, &_gnutls_sha_padlock, 0);
  750|      0|			if (ret < 0) {
  ------------------
  |  Branch (750:8): [True: 0, False: 0]
  ------------------
  751|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  752|      0|			}
  753|       |
  754|      0|			ret =
  755|      0|			    gnutls_crypto_single_digest_register
  756|      0|			    (GNUTLS_DIG_SHA512, 80, &_gnutls_sha_padlock, 0);
  757|      0|			if (ret < 0) {
  ------------------
  |  Branch (757:8): [True: 0, False: 0]
  ------------------
  758|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  759|      0|			}
  760|       |
  761|      0|			ret =
  762|      0|			    gnutls_crypto_single_mac_register
  763|      0|			    (GNUTLS_MAC_SHA384, 80,
  764|      0|			     &_gnutls_hmac_sha_padlock, 0);
  765|      0|			if (ret < 0) {
  ------------------
  |  Branch (765:8): [True: 0, False: 0]
  ------------------
  766|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  767|      0|			}
  768|       |
  769|      0|			ret =
  770|      0|			    gnutls_crypto_single_mac_register
  771|      0|			    (GNUTLS_MAC_SHA512, 80,
  772|      0|			     &_gnutls_hmac_sha_padlock, 0);
  773|      0|			if (ret < 0) {
  ------------------
  |  Branch (773:8): [True: 0, False: 0]
  ------------------
  774|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  775|      0|			}
  776|      0|		}
  777|       |
  778|      0|		ret =
  779|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
  780|      0|							 90,
  781|      0|							 &_gnutls_sha_padlock,
  782|      0|							 0);
  783|      0|		if (ret < 0) {
  ------------------
  |  Branch (783:7): [True: 0, False: 0]
  ------------------
  784|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  785|      0|		}
  786|       |
  787|      0|		ret =
  788|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
  789|      0|							 90,
  790|      0|							 &_gnutls_sha_padlock,
  791|      0|							 0);
  792|      0|		if (ret < 0) {
  ------------------
  |  Branch (792:7): [True: 0, False: 0]
  ------------------
  793|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  794|      0|		}
  795|       |
  796|      0|		ret =
  797|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
  798|      0|							 90,
  799|      0|							 &_gnutls_sha_padlock,
  800|      0|							 0);
  801|      0|		if (ret < 0) {
  ------------------
  |  Branch (801:7): [True: 0, False: 0]
  ------------------
  802|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  803|      0|		}
  804|       |
  805|      0|		ret =
  806|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
  807|      0|						      90,
  808|      0|						      &_gnutls_hmac_sha_padlock,
  809|      0|						      0);
  810|      0|		if (ret < 0) {
  ------------------
  |  Branch (810:7): [True: 0, False: 0]
  ------------------
  811|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  812|      0|		}
  813|       |
  814|       |		/* we don't register MAC_SHA224 because it is not used by TLS */
  815|       |
  816|      0|		ret =
  817|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
  818|      0|						      90,
  819|      0|						      &_gnutls_hmac_sha_padlock,
  820|      0|						      0);
  821|      0|		if (ret < 0) {
  ------------------
  |  Branch (821:7): [True: 0, False: 0]
  ------------------
  822|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  823|      0|		}
  824|      0|	} else if (phe) {
  ------------------
  |  Branch (824:13): [True: 0, False: 0]
  ------------------
  825|       |		/* Original padlock PHE. Does not support incremental operations.
  826|       |		 */
  827|      0|		_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  828|      0|		    ("Padlock SHA1 and SHA256 accelerator was detected\n");
  829|      0|		ret =
  830|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
  831|      0|							 90,
  832|      0|							 &_gnutls_sha_padlock_oneshot,
  833|      0|							 0);
  834|      0|		if (ret < 0) {
  ------------------
  |  Branch (834:7): [True: 0, False: 0]
  ------------------
  835|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  836|      0|		}
  837|       |
  838|      0|		ret =
  839|      0|		    gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
  840|      0|							 90,
  841|      0|							 &_gnutls_sha_padlock_oneshot,
  842|      0|							 0);
  843|      0|		if (ret < 0) {
  ------------------
  |  Branch (843:7): [True: 0, False: 0]
  ------------------
  844|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  845|      0|		}
  846|       |
  847|      0|		ret =
  848|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
  849|      0|						      90,
  850|      0|						      &_gnutls_hmac_sha_padlock_oneshot,
  851|      0|						      0);
  852|      0|		if (ret < 0) {
  ------------------
  |  Branch (852:7): [True: 0, False: 0]
  ------------------
  853|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  854|      0|		}
  855|       |
  856|      0|		ret =
  857|      0|		    gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
  858|      0|						      90,
  859|      0|						      &_gnutls_hmac_sha_padlock_oneshot,
  860|      0|						      0);
  861|      0|		if (ret < 0) {
  ------------------
  |  Branch (861:7): [True: 0, False: 0]
  ------------------
  862|      0|			gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  863|      0|		}
  864|      0|	}
  865|      0|# endif
  866|       |
  867|      0|	return;
  868|      0|}
x86-common.c:check_zhaoxin:
  364|      2|{
  365|      2|	unsigned int a, b, c, d;
  366|       |
  367|      2|	if (!__get_cpuid(0, &a, &b, &c, &d))
  ------------------
  |  Branch (367:6): [True: 0, False: 2]
  ------------------
  368|      0|		return 0;
  369|       |
  370|       |	/* Zhaoxin and VIA CPU was detected */
  371|      2|	if ((memcmp(&b, "Cent", 4) == 0 &&
  ------------------
  |  Branch (371:7): [True: 0, False: 2]
  ------------------
  372|      2|	     memcmp(&d, "aurH", 4) == 0 &&
  ------------------
  |  Branch (372:7): [True: 0, False: 0]
  ------------------
  373|      2|	     memcmp(&c, "auls", 4) == 0) ||
  ------------------
  |  Branch (373:7): [True: 0, False: 0]
  ------------------
  374|      2|	    (memcmp(&b, "  Sh", 4) == 0 &&
  ------------------
  |  Branch (374:7): [True: 0, False: 2]
  ------------------
  375|      2|	     memcmp(&d, "angh", 4) == 0 && memcmp(&c, "ai  ", 4) == 0)) {
  ------------------
  |  Branch (375:7): [True: 0, False: 0]
  |  Branch (375:37): [True: 0, False: 0]
  ------------------
  376|      0|		return 1;
  377|      0|	}
  378|       |
  379|      2|	return 0;
  380|      2|}

_gnutls_register_fork_handler:
   51|      2|{
   52|      2|	if (__register_atfork(NULL, NULL, fork_handler, __dso_handle) != 0)
  ------------------
  |  Branch (52:6): [True: 0, False: 2]
  ------------------
   53|      0|		return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
   54|      2|	return 0;
   55|      2|}

gnutls_crypto_single_cipher_register:
  180|     36|{
  181|       |	/* we override const in case free_s is set */
  182|     36|	return _algo_register(&glob_cl, algorithm, priority, (void *)s, free_s);
  183|     36|}
gnutls_crypto_single_mac_register:
  359|     10|{
  360|     10|	return _algo_register(&glob_ml, algorithm, priority, (void *)s, free_s);
  361|     10|}
gnutls_crypto_single_digest_register:
  394|     10|{
  395|     10|	return _algo_register(&glob_dl, algorithm, priority, (void *)s, free_s);
  396|     10|}
crypto-backend.c:_algo_register:
   52|     56|{
   53|     56|	algo_list *cl;
   54|     56|	algo_list *last_cl = al;
   55|     56|	int ret;
   56|       |
   57|     56|	if (al == NULL) {
  ------------------
  |  Branch (57:6): [True: 0, False: 56]
  ------------------
   58|      0|		ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
   59|      0|		goto cleanup;
   60|      0|	}
   61|       |
   62|       |	/* look if there is any cipher with lowest priority. In that case do not add.
   63|       |	 */
   64|     56|	cl = al;
   65|    258|	while (cl && cl->alg_data) {
  ------------------
  |  Branch (65:9): [True: 258, False: 0]
  |  Branch (65:15): [True: 214, False: 44]
  ------------------
   66|    214|		if (cl->algorithm == algorithm) {
  ------------------
  |  Branch (66:7): [True: 12, False: 202]
  ------------------
   67|     12|			if (cl->priority < priority) {
  ------------------
  |  Branch (67:8): [True: 0, False: 12]
  ------------------
   68|      0|				gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   69|      0|				ret = GNUTLS_E_CRYPTO_ALREADY_REGISTERED;
  ------------------
  |  | 3522|      0|# define GNUTLS_E_CRYPTO_ALREADY_REGISTERED GNUTLS_E_ALREADY_REGISTERED
  |  |  ------------------
  |  |  |  | 3523|      0|# define GNUTLS_E_ALREADY_REGISTERED -209
  |  |  ------------------
  ------------------
   70|      0|				goto cleanup;
   71|     12|			} else {
   72|       |				/* the current has higher priority -> overwrite */
   73|     12|				cl->algorithm = algorithm;
   74|     12|				cl->priority = priority;
   75|     12|				cl->alg_data = s;
   76|     12|				cl->free_alg_data = free_s;
   77|     12|				return 0;
   78|     12|			}
   79|     12|		}
   80|    202|		cl = cl->next;
   81|    202|		if (cl)
  ------------------
  |  Branch (81:7): [True: 202, False: 0]
  ------------------
   82|    202|			last_cl = cl;
   83|    202|	}
   84|       |
   85|     44|	cl = gnutls_calloc(1, sizeof(cipher_list));
   86|       |
   87|     44|	if (cl == NULL) {
  ------------------
  |  Branch (87:6): [True: 0, False: 44]
  ------------------
   88|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   89|      0|		ret = GNUTLS_E_MEMORY_ERROR;
  ------------------
  |  | 3406|      0|# define GNUTLS_E_MEMORY_ERROR -25
  ------------------
   90|      0|		goto cleanup;
   91|      0|	}
   92|       |
   93|     44|	last_cl->algorithm = algorithm;
   94|     44|	last_cl->priority = priority;
   95|     44|	last_cl->alg_data = s;
   96|     44|	last_cl->free_alg_data = free_s;
   97|     44|	last_cl->next = cl;
   98|       |
   99|     44|	return 0;
  100|      0| cleanup:
  101|      0|	if (free_s)
  ------------------
  |  Branch (101:6): [True: 0, False: 0]
  ------------------
  102|      0|		gnutls_free(s);
  ------------------
  |  | 2296|      0|#  define gnutls_free(a) gnutls_free((void *) (a)), a=NULL
  ------------------
  103|      0|	return ret;
  104|     44|}

global.c:_gnutls_switch_lib_state:
   48|      4|{
   49|       |	/* Once into zombie state no errors can change us */
   50|      4|	_gnutls_lib_state = state;
   51|      4|}

_gnutls_global_init_skip:
   60|      2|{
   61|      2|	return 0;
   62|      2|}
global.c:lib_init:
  488|      2|{
  489|      2|	int ret;
  490|      2|	const char *e;
  491|       |
  492|      2|	if (_gnutls_global_init_skip() != 0)
  ------------------
  |  Branch (492:6): [True: 0, False: 2]
  ------------------
  493|      0|		return;
  494|       |
  495|      2|	e = secure_getenv("GNUTLS_NO_IMPLICIT_INIT");
  496|      2|	if (e != NULL) {
  ------------------
  |  Branch (496:6): [True: 0, False: 2]
  ------------------
  497|      0|		ret = atoi(e);
  498|      0|		if (ret == 1)
  ------------------
  |  Branch (498:7): [True: 0, False: 0]
  ------------------
  499|      0|			return;
  500|      0|	}
  501|       |
  502|      2|	e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT");
  503|      2|	if (e != NULL) {
  ------------------
  |  Branch (503:6): [True: 0, False: 2]
  ------------------
  504|      0|		_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  505|      0|		    ("GNUTLS_NO_EXPLICIT_INIT is deprecated; use GNUTLS_NO_IMPLICIT_INIT\n");
  506|      0|		ret = atoi(e);
  507|      0|		if (ret == 1)
  ------------------
  |  Branch (507:7): [True: 0, False: 0]
  ------------------
  508|      0|			return;
  509|      0|	}
  510|       |
  511|      2|	ret = _gnutls_global_init(1);
  512|      2|	if (ret < 0) {
  ------------------
  |  Branch (512:6): [True: 0, False: 2]
  ------------------
  513|      0|		fprintf(stderr, "Error in GnuTLS initialization: %s\n",
  514|      0|			gnutls_strerror(ret));
  515|      0|		_gnutls_switch_lib_state(LIB_STATE_ERROR);
  516|      0|	}
  517|      2|}
global.c:_gnutls_global_init:
  228|      2|{
  229|      2|	int ret = 0, res;
  230|      2|	int level;
  231|      2|	const char *e;
  232|       |
  233|      2|	if (!constructor) {
  ------------------
  |  Branch (233:6): [True: 0, False: 2]
  ------------------
  234|      0|		ret = gnutls_static_mutex_lock(&global_init_mutex);
  ------------------
  |  |   45|      0|	(unlikely(glthread_lock_lock(LOCK)) ?		\
  |  |  ------------------
  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|      0|	gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
  |  |  ------------------
  |  |  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  |  |  ------------------
  ------------------
  235|      0|		if (ret < 0) {
  ------------------
  |  Branch (235:7): [True: 0, False: 0]
  ------------------
  236|      0|			return gnutls_assert_val(ret);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
  237|      0|		}
  238|      0|	}
  239|       |
  240|      2|	_gnutls_init++;
  241|      2|	if (_gnutls_init > 1) {
  ------------------
  |  Branch (241:6): [True: 0, False: 2]
  ------------------
  242|      0|		ret = _gnutls_init_ret;
  243|      0|		goto out;
  244|      0|	}
  245|       |
  246|      2|	_gnutls_switch_lib_state(LIB_STATE_INIT);
  247|       |
  248|      2|	e = secure_getenv("GNUTLS_DEBUG_LEVEL");
  249|      2|	if (e != NULL) {
  ------------------
  |  Branch (249:6): [True: 0, False: 2]
  ------------------
  250|      0|		level = atoi(e);
  251|      0|		gnutls_global_set_log_level(level);
  252|      0|		if (_gnutls_log_func == NULL)
  ------------------
  |  Branch (252:7): [True: 0, False: 0]
  ------------------
  253|      0|			gnutls_global_set_log_function(default_log_func);
  254|      0|		_gnutls_debug_log("Enabled GnuTLS " VERSION " logging...\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  255|      0|	}
  256|       |
  257|      2|#ifdef HAVE_DCGETTEXT
  258|      2|	bindtextdomain(PACKAGE, LOCALEDIR);
  ------------------
  |  | 1835|      2|#define PACKAGE "gnutls"
  ------------------
  259|      2|#endif
  260|       |
  261|      2|	res = gnutls_crypto_init();
  262|      2|	if (res != 0) {
  ------------------
  |  Branch (262:6): [True: 0, False: 2]
  ------------------
  263|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|      0|		ret = GNUTLS_E_CRYPTO_INIT_FAILED;
  ------------------
  |  | 3561|      0|# define GNUTLS_E_CRYPTO_INIT_FAILED -318
  ------------------
  265|      0|		goto out;
  266|      0|	}
  267|       |
  268|      2|	ret = _gnutls_system_key_init();
  269|      2|	if (ret != 0) {
  ------------------
  |  Branch (269:6): [True: 0, False: 2]
  ------------------
  270|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  271|      0|	}
  272|       |
  273|       |	/* initialize ASN.1 parser
  274|       |	 */
  275|      2|	if (asn1_check_version(GNUTLS_MIN_LIBTASN1_VERSION) == NULL) {
  ------------------
  |  |   45|      2|#define GNUTLS_MIN_LIBTASN1_VERSION "0.3.4"
  ------------------
  |  Branch (275:6): [True: 0, False: 2]
  ------------------
  276|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  277|      0|		_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  278|      0|		    ("Checking for libtasn1 failed: %s < %s\n",
  279|      0|		     asn1_check_version(NULL), GNUTLS_MIN_LIBTASN1_VERSION);
  280|      0|		ret = GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY;
  ------------------
  |  | 3512|      0|# define GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY -203
  ------------------
  281|      0|		goto out;
  282|      0|	}
  283|       |
  284|      2|	_gnutls_pkix1_asn = NULL;
  285|      2|	res = asn1_array2tree(pkix_asn1_tab, &_gnutls_pkix1_asn, NULL);
  286|      2|	if (res != ASN1_SUCCESS) {
  ------------------
  |  |  116|      2|# define ASN1_SUCCESS			0
  ------------------
  |  Branch (286:6): [True: 0, False: 2]
  ------------------
  287|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  288|      0|		ret = _gnutls_asn2err(res);
  289|      0|		goto out;
  290|      0|	}
  291|       |
  292|      2|	res = asn1_array2tree(gnutls_asn1_tab, &_gnutls_gnutls_asn, NULL);
  293|      2|	if (res != ASN1_SUCCESS) {
  ------------------
  |  |  116|      2|# define ASN1_SUCCESS			0
  ------------------
  |  Branch (293:6): [True: 0, False: 2]
  ------------------
  294|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  295|      0|		ret = _gnutls_asn2err(res);
  296|      0|		goto out;
  297|      0|	}
  298|       |
  299|       |	/* Initialize the random generator */
  300|      2|	ret = _gnutls_rnd_preinit();
  301|      2|	if (ret < 0) {
  ------------------
  |  Branch (301:6): [True: 0, False: 2]
  ------------------
  302|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  303|      0|		goto out;
  304|      0|	}
  305|       |
  306|       |	/* Initialize the default TLS extensions */
  307|      2|	ret = _gnutls_hello_ext_init();
  308|      2|	if (ret < 0) {
  ------------------
  |  Branch (308:6): [True: 0, False: 2]
  ------------------
  309|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  310|      0|		goto out;
  311|      0|	}
  312|       |
  313|      2|	ret = gnutls_system_global_init();
  314|      2|	if (ret < 0) {
  ------------------
  |  Branch (314:6): [True: 0, False: 2]
  ------------------
  315|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|      0|		goto out;
  317|      0|	}
  318|       |
  319|      2|#ifndef _WIN32
  320|      2|	ret = _gnutls_register_fork_handler();
  321|      2|	if (ret < 0) {
  ------------------
  |  Branch (321:6): [True: 0, False: 2]
  ------------------
  322|      0|		gnutls_assert();
  ------------------
  |  |   33|      0|#   define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
  |  |  ------------------
  |  |  |  |  140|      0|#  define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  323|      0|		goto out;
  324|      0|	}
  325|      2|#endif
  326|       |
  327|       |#ifdef ENABLE_FIPS140
  328|       |	res = _gnutls_fips_mode_enabled();
  329|       |	/* res == 1 -> fips140-2 mode enabled
  330|       |	 * res == 2 -> only self checks performed - but no failure
  331|       |	 * res == not in fips140 mode
  332|       |	 */
  333|       |	if (res != 0) {
  334|       |		_gnutls_debug_log("FIPS140-2 mode: %d\n", res);
  335|       |		_gnutls_priority_update_fips();
  336|       |
  337|       |		/* first round of self checks, these are done on the
  338|       |		 * nettle algorithms which are used internally */
  339|       |		_gnutls_switch_lib_state(LIB_STATE_SELFTEST);
  340|       |		ret = _gnutls_fips_perform_self_checks1();
  341|       |		if (ret < 0) {
  342|       |			_gnutls_switch_lib_state(LIB_STATE_ERROR);
  343|       |			_gnutls_audit_log(NULL,
  344|       |					  "FIPS140-2 self testing part1 failed\n");
  345|       |			if (res != 2) {
  346|       |				gnutls_assert();
  347|       |				goto out;
  348|       |			}
  349|       |		}
  350|       |	}
  351|       |#endif
  352|       |
  353|      2|	_gnutls_register_accel_crypto();
  354|      2|	_gnutls_cryptodev_init();
  355|      2|	_gnutls_afalg_init();
  356|       |
  357|       |#ifdef ENABLE_FIPS140
  358|       |	/* These self tests are performed on the overridden algorithms
  359|       |	 * (e.g., AESNI overridden AES). They are after _gnutls_register_accel_crypto()
  360|       |	 * intentionally */
  361|       |	if (res != 0) {
  362|       |		_gnutls_switch_lib_state(LIB_STATE_SELFTEST);
  363|       |		ret = _gnutls_fips_perform_self_checks2();
  364|       |		if (ret < 0) {
  365|       |			_gnutls_switch_lib_state(LIB_STATE_ERROR);
  366|       |			_gnutls_audit_log(NULL,
  367|       |					  "FIPS140-2 self testing part 2 failed\n");
  368|       |			if (res != 2) {
  369|       |				gnutls_assert();
  370|       |				goto out;
  371|       |			}
  372|       |		}
  373|       |		_gnutls_fips_mode_reset_zombie();
  374|       |	}
  375|       |#endif
  376|      2|	_gnutls_prepare_to_load_system_priorities();
  377|      2|	_gnutls_switch_lib_state(LIB_STATE_OPERATIONAL);
  378|      2|	ret = 0;
  379|       |
  380|      2| out:
  381|      2|	_gnutls_init_ret = ret;
  382|      2|	if (!constructor) {
  ------------------
  |  Branch (382:6): [True: 0, False: 2]
  ------------------
  383|      0|		(void)gnutls_static_mutex_unlock(&global_init_mutex);
  ------------------
  |  |   49|      0|	(unlikely(glthread_lock_unlock(LOCK)) ?		\
  |  |  ------------------
  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|	gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
  |  |  ------------------
  |  |  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  |  |  ------------------
  ------------------
  384|      0|	}
  385|      2|	return ret;
  386|      2|}

_gnutls_hello_ext_init:
  477|      2|{
  478|      2|	return GNUTLS_E_SUCCESS;
  ------------------
  |  | 3388|      2|# define GNUTLS_E_SUCCESS 0
  ------------------
  479|      2|}

_asn1_str_cat:
   33|    532|{
   34|    532|  size_t str_size = strlen (src);
   35|    532|  size_t dest_size = strlen (dest);
   36|       |
   37|    532|  if (dest_tot_size - dest_size > str_size)
  ------------------
  |  Branch (37:7): [True: 532, False: 0]
  ------------------
   38|    532|    {
   39|    532|      strcat (dest, src);
   40|    532|    }
   41|      0|  else
   42|      0|    {
   43|      0|      if (dest_tot_size > dest_size)
  ------------------
  |  Branch (43:11): [True: 0, False: 0]
  ------------------
   44|      0|	{
   45|      0|	  strncat (dest, src, (dest_tot_size - dest_size) - 1);
   46|      0|	  dest[dest_tot_size - 1] = 0;
   47|      0|	}
   48|      0|    }
   49|    532|}
_asn1_str_cpy:
   54|  1.43k|{
   55|  1.43k|  size_t str_size = strlen (src);
   56|       |
   57|  1.43k|  if (dest_tot_size > str_size)
  ------------------
  |  Branch (57:7): [True: 1.43k, False: 0]
  ------------------
   58|  1.43k|    {
   59|  1.43k|      strcpy (dest, src);
   60|  1.43k|      return str_size;
   61|  1.43k|    }
   62|      0|  else
   63|      0|    {
   64|      0|      if (dest_tot_size > 0)
  ------------------
  |  Branch (64:11): [True: 0, False: 0]
  ------------------
   65|      0|	{
   66|      0|	  str_size = dest_tot_size - 1;
   67|      0|	  memcpy (dest, src, str_size);
   68|      0|	  dest[str_size] = 0;
   69|      0|	  return str_size;
   70|      0|	}
   71|      0|      else
   72|      0|	return 0;
   73|      0|    }
   74|  1.43k|}

parser_aux.c:type_field:
  179|  5.64k|{
  180|  5.64k|  return (ntype & 0xff);
  181|  5.64k|}
structure.c:convert_old_type:
  186|  1.14k|{
  187|  1.14k|  unsigned int type = ntype & 0xff;
  188|  1.14k|  if (type == ASN1_ETYPE_TIME)
  ------------------
  |  |  172|  1.14k|# define ASN1_ETYPE_TIME 17
  ------------------
  |  Branch (188:7): [True: 0, False: 1.14k]
  ------------------
  189|      0|    {
  190|      0|      if (ntype & CONST_UTC)
  ------------------
  |  |  160|      0|# define CONST_UTC         (1U<<24)
  ------------------
  |  Branch (190:11): [True: 0, False: 0]
  ------------------
  191|      0|	type = ASN1_ETYPE_UTC_TIME;
  ------------------
  |  |  244|      0|# define ASN1_ETYPE_UTC_TIME       36
  ------------------
  192|      0|      else
  193|      0|	type = ASN1_ETYPE_GENERALIZED_TIME;
  ------------------
  |  |  245|      0|# define ASN1_ETYPE_GENERALIZED_TIME 37
  ------------------
  194|       |
  195|      0|      ntype &= ~(CONST_UTC | CONST_GENERALIZED);
  ------------------
  |  |  160|      0|# define CONST_UTC         (1U<<24)
  ------------------
                    ntype &= ~(CONST_UTC | CONST_GENERALIZED);
  ------------------
  |  |  159|      0|# define CONST_GENERALIZED (1U<<23)
  ------------------
  196|      0|      ntype &= 0xffffff00;
  197|      0|      ntype |= type;
  198|       |
  199|      0|      return ntype;
  200|      0|    }
  201|  1.14k|  else
  202|  1.14k|    return ntype;
  203|  1.14k|}

_asn1_add_static_node:
   66|  1.14k|{
   67|  1.14k|  list_type *p;
   68|  1.14k|  asn1_node punt;
   69|       |
   70|  1.14k|  punt = calloc (1, sizeof (struct asn1_node_st));
   71|  1.14k|  if (punt == NULL)
  ------------------
  |  Branch (71:7): [True: 0, False: 1.14k]
  ------------------
   72|      0|    return NULL;
   73|       |
   74|  1.14k|  p = malloc (sizeof (list_type));
   75|  1.14k|  if (p == NULL)
  ------------------
  |  Branch (75:7): [True: 0, False: 1.14k]
  ------------------
   76|      0|    {
   77|      0|      free (punt);
   78|      0|      return NULL;
   79|      0|    }
   80|       |
   81|  1.14k|  p->node = punt;
   82|  1.14k|  p->next = *e_list;
   83|  1.14k|  *e_list = p;
   84|       |
   85|  1.14k|  punt->type = type;
   86|       |
   87|  1.14k|  return punt;
   88|  1.14k|}
asn1_find_node:
  122|    266|{
  123|    266|  asn1_node_const p;
  124|    266|  char *n_end, n[ASN1_MAX_NAME_SIZE + 1];
  125|    266|  const char *n_start;
  126|    266|  unsigned int nsize;
  127|    266|  unsigned int nhash;
  128|       |
  129|    266|  if (pointer == NULL)
  ------------------
  |  Branch (129:7): [True: 0, False: 266]
  ------------------
  130|      0|    return NULL;
  131|       |
  132|    266|  if (name == NULL)
  ------------------
  |  Branch (132:7): [True: 0, False: 266]
  ------------------
  133|      0|    return NULL;
  134|       |
  135|    266|  p = pointer;
  136|    266|  n_start = name;
  137|       |
  138|    266|  if (name[0] == '?' && name[1] == 'C' && p->name[0] == '?')
  ------------------
  |  Branch (138:7): [True: 0, False: 266]
  |  Branch (138:25): [True: 0, False: 0]
  |  Branch (138:43): [True: 0, False: 0]
  ------------------
  139|      0|    {				/* ?CURRENT */
  140|      0|      n_start = strchr (n_start, '.');
  141|      0|      if (n_start)
  ------------------
  |  Branch (141:11): [True: 0, False: 0]
  ------------------
  142|      0|	n_start++;
  143|      0|    }
  144|    266|  else if (p->name[0] != 0)
  ------------------
  |  Branch (144:12): [True: 266, False: 0]
  ------------------
  145|    266|    {				/* has *pointer got a name ? */
  146|    266|      n_end = strchr (n_start, '.');	/* search the first dot */
  147|    266|      if (n_end)
  ------------------
  |  Branch (147:11): [True: 266, False: 0]
  ------------------
  148|    266|	{
  149|    266|	  nsize = n_end - n_start;
  150|    266|	  if (nsize >= sizeof (n))
  ------------------
  |  Branch (150:8): [True: 0, False: 266]
  ------------------
  151|      0|	    return NULL;
  152|       |
  153|    266|	  memcpy (n, n_start, nsize);
  154|    266|	  n[nsize] = 0;
  155|    266|	  n_start = n_end;
  156|    266|	  n_start++;
  157|       |
  158|    266|	  nhash = _asn1_hash_name (n);
  159|    266|	}
  160|      0|      else
  161|      0|	{
  162|      0|	  _asn1_str_cpy (n, sizeof (n), n_start);
  163|      0|	  nhash = _asn1_hash_name (n);
  164|       |
  165|      0|	  n_start = NULL;
  166|      0|	}
  167|       |
  168|    266|      while (p)
  ------------------
  |  Branch (168:14): [True: 266, False: 0]
  ------------------
  169|    266|	{
  170|    266|	  if (nhash == p->name_hash && (!strcmp (p->name, n)))
  ------------------
  |  Branch (170:8): [True: 266, False: 0]
  |  Branch (170:33): [True: 266, False: 0]
  ------------------
  171|    266|	    break;
  172|      0|	  else
  173|      0|	    p = p->right;
  174|    266|	}			/* while */
  175|       |
  176|    266|      if (p == NULL)
  ------------------
  |  Branch (176:11): [True: 0, False: 266]
  ------------------
  177|      0|	return NULL;
  178|    266|    }
  179|      0|  else
  180|      0|    {				/* *pointer doesn't have a name */
  181|      0|      if (n_start[0] == 0)
  ------------------
  |  Branch (181:11): [True: 0, False: 0]
  ------------------
  182|      0|	return (asn1_node) p;
  183|      0|    }
  184|       |
  185|    532|  while (n_start)
  ------------------
  |  Branch (185:10): [True: 266, False: 266]
  ------------------
  186|    266|    {				/* Has the end of NAME been reached? */
  187|    266|      n_end = strchr (n_start, '.');	/* search the next dot */
  188|    266|      if (n_end)
  ------------------
  |  Branch (188:11): [True: 0, False: 266]
  ------------------
  189|      0|	{
  190|      0|	  nsize = n_end - n_start;
  191|      0|	  if (nsize >= sizeof (n))
  ------------------
  |  Branch (191:8): [True: 0, False: 0]
  ------------------
  192|      0|	    return NULL;
  193|       |
  194|      0|	  memcpy (n, n_start, nsize);
  195|      0|	  n[nsize] = 0;
  196|      0|	  n_start = n_end;
  197|      0|	  n_start++;
  198|       |
  199|      0|	  nhash = _asn1_hash_name (n);
  200|      0|	}
  201|    266|      else
  202|    266|	{
  203|    266|	  _asn1_str_cpy (n, sizeof (n), n_start);
  204|    266|	  nhash = _asn1_hash_name (n);
  205|    266|	  n_start = NULL;
  206|    266|	}
  207|       |
  208|    266|      if (p->down == NULL)
  ------------------
  |  Branch (208:11): [True: 0, False: 266]
  ------------------
  209|      0|	return NULL;
  210|       |
  211|    266|      p = p->down;
  212|    266|      if (p == NULL)
  ------------------
  |  Branch (212:11): [True: 0, False: 266]
  ------------------
  213|      0|	return NULL;
  214|       |
  215|       |      /* The identifier "?LAST" indicates the last element
  216|       |         in the right chain. */
  217|    266|      if (n[0] == '?' && n[1] == 'L')	/* ?LAST */
  ------------------
  |  Branch (217:11): [True: 0, False: 266]
  |  Branch (217:26): [True: 0, False: 0]
  ------------------
  218|      0|	{
  219|      0|	  while (p->right)
  ------------------
  |  Branch (219:11): [True: 0, False: 0]
  ------------------
  220|      0|	    p = p->right;
  221|      0|	}
  222|    266|      else
  223|    266|	{			/* no "?LAST" */
  224|  11.1k|	  while (p)
  ------------------
  |  Branch (224:11): [True: 11.1k, False: 0]
  ------------------
  225|  11.1k|	    {
  226|  11.1k|	      if (p->name_hash == nhash && !strcmp (p->name, n))
  ------------------
  |  Branch (226:12): [True: 266, False: 10.8k]
  |  Branch (226:37): [True: 266, False: 0]
  ------------------
  227|    266|		break;
  228|  10.8k|	      else
  229|  10.8k|		p = p->right;
  230|  11.1k|	    }
  231|    266|	}
  232|    266|      if (p == NULL)
  ------------------
  |  Branch (232:11): [True: 0, False: 266]
  ------------------
  233|      0|	return NULL;
  234|    266|    }				/* while */
  235|       |
  236|    266|  return (asn1_node) p;
  237|    266|}
_asn1_set_value:
  252|    462|{
  253|    462|  if (node == NULL)
  ------------------
  |  Branch (253:7): [True: 0, False: 462]
  ------------------
  254|      0|    return node;
  255|    462|  if (node->value)
  ------------------
  |  Branch (255:7): [True: 0, False: 462]
  ------------------
  256|      0|    {
  257|      0|      if (node->value != node->small_value)
  ------------------
  |  Branch (257:11): [True: 0, False: 0]
  ------------------
  258|      0|	free (node->value);
  259|      0|      node->value = NULL;
  260|      0|      node->value_len = 0;
  261|      0|    }
  262|       |
  263|    462|  if (!len)
  ------------------
  |  Branch (263:7): [True: 0, False: 462]
  ------------------
  264|      0|    return node;
  265|       |
  266|    462|  if (len < sizeof (node->small_value))
  ------------------
  |  Branch (266:7): [True: 314, False: 148]
  ------------------
  267|    314|    {
  268|    314|      node->value = node->small_value;
  269|    314|    }
  270|    148|  else
  271|    148|    {
  272|    148|      node->value = malloc (len);
  273|    148|      if (node->value == NULL)
  ------------------
  |  Branch (273:11): [True: 0, False: 148]
  ------------------
  274|      0|	return NULL;
  275|    148|    }
  276|    462|  node->value_len = len;
  277|       |
  278|    462|  memcpy (node->value, value, len);
  279|    462|  return node;
  280|    462|}
_asn1_set_name:
  409|    898|{
  410|    898|  if (node == NULL)
  ------------------
  |  Branch (410:7): [True: 0, False: 898]
  ------------------
  411|      0|    return node;
  412|       |
  413|    898|  _asn1_str_cpy (node->name, sizeof (node->name), name ? name : "");
  ------------------
  |  Branch (413:51): [True: 898, False: 0]
  ------------------
  414|    898|  node->name_hash = _asn1_hash_name (node->name);
  415|       |
  416|    898|  return node;
  417|    898|}
_asn1_set_right:
  457|    714|{
  458|    714|  if (node == NULL)
  ------------------
  |  Branch (458:7): [True: 0, False: 714]
  ------------------
  459|      0|    return node;
  460|    714|  node->right = right;
  461|    714|  if (right)
  ------------------
  |  Branch (461:7): [True: 714, False: 0]
  ------------------
  462|    714|    right->left = node;
  463|    714|  return node;
  464|    714|}
_asn1_find_up:
  523|  2.12k|{
  524|  2.12k|  asn1_node_const p;
  525|       |
  526|  2.12k|  if (node == NULL)
  ------------------
  |  Branch (526:7): [True: 0, False: 2.12k]
  ------------------
  527|      0|    return NULL;
  528|       |
  529|  2.12k|  p = node;
  530|       |
  531|  5.69k|  while ((p->left != NULL) && (p->left->right == p))
  ------------------
  |  Branch (531:10): [True: 5.69k, False: 0]
  |  Branch (531:31): [True: 3.57k, False: 2.12k]
  ------------------
  532|  3.57k|    p = p->left;
  533|       |
  534|  2.12k|  return p->left;
  535|  2.12k|}
_asn1_delete_list:
  581|      4|{
  582|      4|  list_type *p;
  583|       |
  584|  1.14k|  while (e_list)
  ------------------
  |  Branch (584:10): [True: 1.14k, False: 4]
  ------------------
  585|  1.14k|    {
  586|  1.14k|      p = e_list;
  587|  1.14k|      e_list = e_list->next;
  588|  1.14k|      free (p);
  589|  1.14k|    }
  590|      4|}
_asn1_change_integer_value:
  662|      4|{
  663|      4|  asn1_node p;
  664|      4|  unsigned char val[SIZEOF_UNSIGNED_LONG_INT];
  665|      4|  unsigned char val2[SIZEOF_UNSIGNED_LONG_INT + 1];
  666|      4|  int len;
  667|       |
  668|      4|  if (node == NULL)
  ------------------
  |  Branch (668:7): [True: 0, False: 4]
  ------------------
  669|      0|    return ASN1_ELEMENT_NOT_FOUND;
  ------------------
  |  |  118|      0|# define ASN1_ELEMENT_NOT_FOUND		2
  ------------------
  670|       |
  671|      4|  p = node;
  672|  1.14k|  while (p)
  ------------------
  |  Branch (672:10): [True: 1.14k, False: 4]
  ------------------
  673|  1.14k|    {
  674|  1.14k|      if ((type_field (p->type) == ASN1_ETYPE_INTEGER)
  ------------------
  |  |  217|  1.14k|# define ASN1_ETYPE_INTEGER        3
  ------------------
  |  Branch (674:11): [True: 124, False: 1.01k]
  ------------------
  675|  1.14k|	  && (p->type & CONST_ASSIGN))
  ------------------
  |  |  166|    124|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (675:7): [True: 0, False: 124]
  ------------------
  676|      0|	{
  677|      0|	  if (p->value)
  ------------------
  |  Branch (677:8): [True: 0, False: 0]
  ------------------
  678|      0|	    {
  679|      0|	      _asn1_convert_integer (p->value, val, sizeof (val), &len);
  680|      0|	      asn1_octet_der (val, len, val2, &len);
  681|      0|	      _asn1_set_value (p, val2, len);
  682|      0|	    }
  683|      0|	}
  684|       |
  685|  1.14k|      if (p->down)
  ------------------
  |  Branch (685:11): [True: 424, False: 718]
  ------------------
  686|    424|	{
  687|    424|	  p = p->down;
  688|    424|	}
  689|    718|      else
  690|    718|	{
  691|    718|	  if (p == node)
  ------------------
  |  Branch (691:8): [True: 0, False: 718]
  ------------------
  692|      0|	    p = NULL;
  693|    718|	  else if (p->right)
  ------------------
  |  Branch (693:13): [True: 392, False: 326]
  ------------------
  694|    392|	    p = p->right;
  695|    326|	  else
  696|    326|	    {
  697|    424|	      while (1)
  ------------------
  |  Branch (697:15): [Folded - Ignored]
  ------------------
  698|    424|		{
  699|    424|		  p = _asn1_find_up (p);
  700|    424|		  if (p == node)
  ------------------
  |  Branch (700:9): [True: 4, False: 420]
  ------------------
  701|      4|		    {
  702|      4|		      p = NULL;
  703|      4|		      break;
  704|      4|		    }
  705|    420|		  if (p && p->right)
  ------------------
  |  Branch (705:9): [True: 420, False: 0]
  |  Branch (705:14): [True: 322, False: 98]
  ------------------
  706|    322|		    {
  707|    322|		      p = p->right;
  708|    322|		      break;
  709|    322|		    }
  710|    420|		}
  711|    326|	    }
  712|    718|	}
  713|  1.14k|    }
  714|       |
  715|      4|  return ASN1_SUCCESS;
  ------------------
  |  |  116|      4|# define ASN1_SUCCESS			0
  ------------------
  716|      4|}
_asn1_expand_object_id:
  731|      4|{
  732|      4|  asn1_node p, p2, p3, p4, p5;
  733|      4|  char name_root[ASN1_MAX_NAME_SIZE], name2[2 * ASN1_MAX_NAME_SIZE + 1];
  734|      4|  int move, tlen, tries;
  735|      4|  unsigned max_constants;
  736|       |
  737|      4|  if (node == NULL)
  ------------------
  |  Branch (737:7): [True: 0, False: 4]
  ------------------
  738|      0|    return ASN1_ELEMENT_NOT_FOUND;
  ------------------
  |  |  118|      0|# define ASN1_ELEMENT_NOT_FOUND		2
  ------------------
  739|       |
  740|      4|  _asn1_str_cpy (name_root, sizeof (name_root), node->name);
  741|       |
  742|      4|  p = node;
  743|      4|  move = DOWN;
  ------------------
  |  |  131|      4|# define DOWN   3
  ------------------
  744|      4|  tries = 0;
  745|       |
  746|  1.56k|  while (!((p == node) && (move == UP)))
  ------------------
  |  |  129|      8|# define UP     1
  ------------------
  |  Branch (746:12): [True: 8, False: 1.55k]
  |  Branch (746:27): [True: 4, False: 4]
  ------------------
  747|  1.56k|    {
  748|  1.56k|      if (move != UP)
  ------------------
  |  |  129|  1.56k|# define UP     1
  ------------------
  |  Branch (748:11): [True: 1.14k, False: 420]
  ------------------
  749|  1.14k|	{
  750|  1.14k|	  if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID)
  ------------------
  |  |  226|  1.14k|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (750:8): [True: 68, False: 1.07k]
  ------------------
  751|  1.14k|	      && (p->type & CONST_ASSIGN))
  ------------------
  |  |  166|     68|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (751:11): [True: 2, False: 66]
  ------------------
  752|      2|	    {
  753|      2|	      p2 = p->down;
  754|      2|	      if (p2 && (type_field (p2->type) == ASN1_ETYPE_CONSTANT))
  ------------------
  |  |  215|      2|# define ASN1_ETYPE_CONSTANT       1
  ------------------
  |  Branch (754:12): [True: 2, False: 0]
  |  Branch (754:18): [True: 2, False: 0]
  ------------------
  755|      2|		{
  756|      2|		  if (p2->value && !c_isdigit (p2->value[0]))
  ------------------
  |  Branch (756:9): [True: 2, False: 0]
  |  Branch (756:22): [True: 0, False: 2]
  ------------------
  757|      0|		    {
  758|      0|		      _asn1_str_cpy (name2, sizeof (name2), name_root);
  759|      0|		      _asn1_str_cat (name2, sizeof (name2), ".");
  760|      0|		      _asn1_str_cat (name2, sizeof (name2),
  761|      0|				     (char *) p2->value);
  762|      0|		      p3 = asn1_find_node (node, name2);
  763|      0|		      if (!p3 || _asn1_is_up (p2, p3) ||
  ------------------
  |  Branch (763:13): [True: 0, False: 0]
  |  Branch (763:20): [True: 0, False: 0]
  ------------------
  764|      0|			  (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID) ||
  ------------------
  |  |  226|      0|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (764:6): [True: 0, False: 0]
  ------------------
  765|      0|			  !(p3->type & CONST_ASSIGN))
  ------------------
  |  |  166|      0|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (765:6): [True: 0, False: 0]
  ------------------
  766|      0|			return ASN1_ELEMENT_NOT_FOUND;
  ------------------
  |  |  118|      0|# define ASN1_ELEMENT_NOT_FOUND		2
  ------------------
  767|       |
  768|      0|		      _asn1_set_down (p, p2->right);
  769|      0|		      if (p2->down)
  ------------------
  |  Branch (769:13): [True: 0, False: 0]
  ------------------
  770|      0|			_asn1_delete_structure (*list, &p2->down, 0);
  771|      0|		      _asn1_delete_node_from_list (*list, p2);
  772|      0|		      _asn1_remove_node (p2, 0);
  773|      0|		      p2 = p;
  774|      0|		      p4 = p3->down;
  775|      0|		      max_constants = 0;
  776|      0|		      while (p4)
  ------------------
  |  Branch (776:16): [True: 0, False: 0]
  ------------------
  777|      0|			{
  778|      0|			  if (type_field (p4->type) == ASN1_ETYPE_CONSTANT)
  ------------------
  |  |  215|      0|# define ASN1_ETYPE_CONSTANT       1
  ------------------
  |  Branch (778:10): [True: 0, False: 0]
  ------------------
  779|      0|			    {
  780|      0|			      max_constants++;
  781|      0|			      if (max_constants == MAX_CONSTANTS)
  ------------------
  |  |  718|      0|#define MAX_CONSTANTS 1024
  ------------------
  |  Branch (781:14): [True: 0, False: 0]
  ------------------
  782|      0|				return ASN1_RECURSION;
  ------------------
  |  |  135|      0|# define ASN1_RECURSION			19
  ------------------
  783|       |
  784|      0|			      p5 =
  785|      0|				_asn1_add_single_node (ASN1_ETYPE_CONSTANT);
  ------------------
  |  |  215|      0|# define ASN1_ETYPE_CONSTANT       1
  ------------------
  786|      0|			      _asn1_set_name (p5, p4->name);
  787|      0|			      if (p4->value)
  ------------------
  |  Branch (787:14): [True: 0, False: 0]
  ------------------
  788|      0|				{
  789|      0|				  tlen = _asn1_strlen (p4->value);
  ------------------
  |  |  113|      0|# define _asn1_strlen(s) strlen((const char *) s)
  ------------------
  790|      0|				  if (tlen > 0)
  ------------------
  |  Branch (790:11): [True: 0, False: 0]
  ------------------
  791|      0|				    _asn1_set_value (p5, p4->value, tlen + 1);
  792|      0|				}
  793|      0|			      _asn1_add_static_node2 (list, p5);
  794|       |
  795|      0|			      if (p2 == p)
  ------------------
  |  Branch (795:14): [True: 0, False: 0]
  ------------------
  796|      0|				{
  797|      0|				  _asn1_set_right (p5, p->down);
  798|      0|				  _asn1_set_down (p, p5);
  799|      0|				}
  800|      0|			      else
  801|      0|				{
  802|      0|				  _asn1_set_right (p5, p2->right);
  803|      0|				  _asn1_set_right (p2, p5);
  804|      0|				}
  805|      0|			      p2 = p5;
  806|      0|			    }
  807|      0|			  p4 = p4->right;
  808|      0|			}
  809|      0|		      move = DOWN;
  ------------------
  |  |  131|      0|# define DOWN   3
  ------------------
  810|       |
  811|      0|		      tries++;
  812|      0|		      if (tries >= EXPAND_OBJECT_ID_MAX_RECURSION)
  ------------------
  |  |   76|      0|# define EXPAND_OBJECT_ID_MAX_RECURSION 16
  ------------------
  |  Branch (812:13): [True: 0, False: 0]
  ------------------
  813|      0|			return ASN1_RECURSION;
  ------------------
  |  |  135|      0|# define ASN1_RECURSION			19
  ------------------
  814|       |
  815|      0|		      continue;
  816|      0|		    }
  817|      2|		}
  818|      2|	    }
  819|  1.14k|	  move = DOWN;
  ------------------
  |  |  131|  1.14k|# define DOWN   3
  ------------------
  820|  1.14k|	}
  821|    420|      else
  822|    420|	move = RIGHT;
  ------------------
  |  |  130|    420|# define RIGHT  2
  ------------------
  823|       |
  824|  1.56k|      tries = 0;
  825|  1.56k|      if (move == DOWN)
  ------------------
  |  |  131|  1.56k|# define DOWN   3
  ------------------
  |  Branch (825:11): [True: 1.14k, False: 420]
  ------------------
  826|  1.14k|	{
  827|  1.14k|	  if (p->down)
  ------------------
  |  Branch (827:8): [True: 424, False: 718]
  ------------------
  828|    424|	    p = p->down;
  829|    718|	  else
  830|    718|	    move = RIGHT;
  ------------------
  |  |  130|    718|# define RIGHT  2
  ------------------
  831|  1.14k|	}
  832|       |
  833|  1.56k|      if (p == node)
  ------------------
  |  Branch (833:11): [True: 0, False: 1.56k]
  ------------------
  834|      0|	{
  835|      0|	  move = UP;
  ------------------
  |  |  129|      0|# define UP     1
  ------------------
  836|      0|	  continue;
  837|      0|	}
  838|       |
  839|  1.56k|      if (move == RIGHT)
  ------------------
  |  |  130|  1.56k|# define RIGHT  2
  ------------------
  |  Branch (839:11): [True: 1.13k, False: 424]
  ------------------
  840|  1.13k|	{
  841|  1.13k|	  if (p && p->right)
  ------------------
  |  Branch (841:8): [True: 1.13k, False: 0]
  |  Branch (841:13): [True: 714, False: 424]
  ------------------
  842|    714|	    p = p->right;
  843|    424|	  else
  844|    424|	    move = UP;
  ------------------
  |  |  129|    424|# define UP     1
  ------------------
  845|  1.13k|	}
  846|  1.56k|      if (move == UP)
  ------------------
  |  |  129|  1.56k|# define UP     1
  ------------------
  |  Branch (846:11): [True: 424, False: 1.13k]
  ------------------
  847|    424|	p = _asn1_find_up (p);
  848|  1.56k|    }
  849|       |
  850|       |  /*******************************/
  851|       |  /*       expand DEFAULT        */
  852|       |  /*******************************/
  853|      4|  p = node;
  854|      4|  move = DOWN;
  ------------------
  |  |  131|      4|# define DOWN   3
  ------------------
  855|       |
  856|  1.56k|  while (!((p == node) && (move == UP)))
  ------------------
  |  |  129|      8|# define UP     1
  ------------------
  |  Branch (856:12): [True: 8, False: 1.55k]
  |  Branch (856:27): [True: 4, False: 4]
  ------------------
  857|  1.56k|    {
  858|  1.56k|      if (move != UP)
  ------------------
  |  |  129|  1.56k|# define UP     1
  ------------------
  |  Branch (858:11): [True: 1.14k, False: 420]
  ------------------
  859|  1.14k|	{
  860|  1.14k|	  if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
  ------------------
  |  |  226|  1.14k|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (860:8): [True: 68, False: 1.07k]
  ------------------
  861|  1.14k|	      (p->type & CONST_DEFAULT))
  ------------------
  |  |  145|     68|# define CONST_DEFAULT     (1U<<15)
  ------------------
  |  Branch (861:8): [True: 0, False: 68]
  ------------------
  862|      0|	    {
  863|      0|	      p2 = p->down;
  864|      0|	      if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT))
  ------------------
  |  |  223|      0|# define ASN1_ETYPE_DEFAULT        9
  ------------------
  |  Branch (864:12): [True: 0, False: 0]
  |  Branch (864:18): [True: 0, False: 0]
  ------------------
  865|      0|		{
  866|      0|		  _asn1_str_cpy (name2, sizeof (name2), name_root);
  867|      0|		  _asn1_str_cat (name2, sizeof (name2), ".");
  868|      0|		  if (p2->value)
  ------------------
  |  Branch (868:9): [True: 0, False: 0]
  ------------------
  869|      0|		    _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
  870|      0|		  p3 = asn1_find_node (node, name2);
  871|      0|		  if (!p3 || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID)
  ------------------
  |  |  226|      0|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (871:9): [True: 0, False: 0]
  |  Branch (871:16): [True: 0, False: 0]
  ------------------
  872|      0|		      || !(p3->type & CONST_ASSIGN))
  ------------------
  |  |  166|      0|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (872:12): [True: 0, False: 0]
  ------------------
  873|      0|		    return ASN1_ELEMENT_NOT_FOUND;
  ------------------
  |  |  118|      0|# define ASN1_ELEMENT_NOT_FOUND		2
  ------------------
  874|      0|		  p4 = p3->down;
  875|      0|		  name2[0] = 0;
  876|      0|		  while (p4)
  ------------------
  |  Branch (876:12): [True: 0, False: 0]
  ------------------
  877|      0|		    {
  878|      0|		      if (type_field (p4->type) == ASN1_ETYPE_CONSTANT)
  ------------------
  |  |  215|      0|# define ASN1_ETYPE_CONSTANT       1
  ------------------
  |  Branch (878:13): [True: 0, False: 0]
  ------------------
  879|      0|			{
  880|      0|			  if (p4->value == NULL)
  ------------------
  |  Branch (880:10): [True: 0, False: 0]
  ------------------
  881|      0|			    return ASN1_VALUE_NOT_FOUND;
  ------------------
  |  |  121|      0|# define ASN1_VALUE_NOT_FOUND		5
  ------------------
  882|       |
  883|      0|			  if (name2[0])
  ------------------
  |  Branch (883:10): [True: 0, False: 0]
  ------------------
  884|      0|			    _asn1_str_cat (name2, sizeof (name2), ".");
  885|      0|			  _asn1_str_cat (name2, sizeof (name2),
  886|      0|					 (char *) p4->value);
  887|      0|			}
  888|      0|		      p4 = p4->right;
  889|      0|		    }
  890|      0|		  tlen = strlen (name2);
  891|      0|		  if (tlen > 0)
  ------------------
  |  Branch (891:9): [True: 0, False: 0]
  ------------------
  892|      0|		    _asn1_set_value (p2, name2, tlen + 1);
  893|      0|		}
  894|      0|	    }
  895|  1.14k|	  move = DOWN;
  ------------------
  |  |  131|  1.14k|# define DOWN   3
  ------------------
  896|  1.14k|	}
  897|    420|      else
  898|    420|	move = RIGHT;
  ------------------
  |  |  130|    420|# define RIGHT  2
  ------------------
  899|       |
  900|  1.56k|      if (move == DOWN)
  ------------------
  |  |  131|  1.56k|# define DOWN   3
  ------------------
  |  Branch (900:11): [True: 1.14k, False: 420]
  ------------------
  901|  1.14k|	{
  902|  1.14k|	  if (p->down)
  ------------------
  |  Branch (902:8): [True: 424, False: 718]
  ------------------
  903|    424|	    p = p->down;
  904|    718|	  else
  905|    718|	    move = RIGHT;
  ------------------
  |  |  130|    718|# define RIGHT  2
  ------------------
  906|  1.14k|	}
  907|       |
  908|  1.56k|      if (p == node)
  ------------------
  |  Branch (908:11): [True: 0, False: 1.56k]
  ------------------
  909|      0|	{
  910|      0|	  move = UP;
  ------------------
  |  |  129|      0|# define UP     1
  ------------------
  911|      0|	  continue;
  912|      0|	}
  913|       |
  914|  1.56k|      if (move == RIGHT)
  ------------------
  |  |  130|  1.56k|# define RIGHT  2
  ------------------
  |  Branch (914:11): [True: 1.13k, False: 424]
  ------------------
  915|  1.13k|	{
  916|  1.13k|	  if (p && p->right)
  ------------------
  |  Branch (916:8): [True: 1.13k, False: 0]
  |  Branch (916:13): [True: 714, False: 424]
  ------------------
  917|    714|	    p = p->right;
  918|    424|	  else
  919|    424|	    move = UP;
  ------------------
  |  |  129|    424|# define UP     1
  ------------------
  920|  1.13k|	}
  921|  1.56k|      if (move == UP)
  ------------------
  |  |  129|  1.56k|# define UP     1
  ------------------
  |  Branch (921:11): [True: 424, False: 1.13k]
  ------------------
  922|    424|	p = _asn1_find_up (p);
  923|  1.56k|    }
  924|       |
  925|      4|  return ASN1_SUCCESS;
  ------------------
  |  |  116|      4|# define ASN1_SUCCESS			0
  ------------------
  926|      4|}
_asn1_check_identifier:
 1014|      4|{
 1015|      4|  asn1_node_const p, p2;
 1016|      4|  char name2[ASN1_MAX_NAME_SIZE * 2 + 2];
 1017|       |
 1018|      4|  if (node == NULL)
  ------------------
  |  Branch (1018:7): [True: 0, False: 4]
  ------------------
 1019|      0|    return ASN1_ELEMENT_NOT_FOUND;
  ------------------
  |  |  118|      0|# define ASN1_ELEMENT_NOT_FOUND		2
  ------------------
 1020|       |
 1021|      4|  p = node;
 1022|  1.14k|  while (p)
  ------------------
  |  Branch (1022:10): [True: 1.14k, False: 4]
  ------------------
 1023|  1.14k|    {
 1024|  1.14k|      if (p->value && type_field (p->type) == ASN1_ETYPE_IDENTIFIER)
  ------------------
  |  |  216|    462|# define ASN1_ETYPE_IDENTIFIER     2
  ------------------
  |  Branch (1024:11): [True: 462, False: 680]
  |  Branch (1024:23): [True: 266, False: 196]
  ------------------
 1025|    266|	{
 1026|    266|	  _asn1_str_cpy (name2, sizeof (name2), node->name);
 1027|    266|	  _asn1_str_cat (name2, sizeof (name2), ".");
 1028|    266|	  _asn1_str_cat (name2, sizeof (name2), (char *) p->value);
 1029|    266|	  p2 = asn1_find_node (node, name2);
 1030|    266|	  if (p2 == NULL)
  ------------------
  |  Branch (1030:8): [True: 0, False: 266]
  ------------------
 1031|      0|	    {
 1032|      0|	      if (p->value)
  ------------------
  |  Branch (1032:12): [True: 0, False: 0]
  ------------------
 1033|      0|		_asn1_str_cpy (_asn1_identifierMissing,
 1034|      0|			       sizeof (_asn1_identifierMissing),
 1035|      0|			       (char *) p->value);
 1036|      0|	      else
 1037|      0|		_asn1_strcpy (_asn1_identifierMissing, "(null)");
  ------------------
  |  |  117|      0|# define _asn1_strcpy(a,b) strcpy((char *)a, (const char *)b)
  ------------------
 1038|      0|	      return ASN1_IDENTIFIER_NOT_FOUND;
  ------------------
  |  |  119|      0|# define ASN1_IDENTIFIER_NOT_FOUND	3
  ------------------
 1039|      0|	    }
 1040|    266|	}
 1041|    876|      else if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
  ------------------
  |  |  226|    876|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (1041:16): [True: 68, False: 808]
  ------------------
 1042|    876|	       (p->type & CONST_DEFAULT))
  ------------------
  |  |  145|     68|# define CONST_DEFAULT     (1U<<15)
  ------------------
  |  Branch (1042:9): [True: 0, False: 68]
  ------------------
 1043|      0|	{
 1044|      0|	  p2 = p->down;
 1045|      0|	  if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT))
  ------------------
  |  |  223|      0|# define ASN1_ETYPE_DEFAULT        9
  ------------------
  |  Branch (1045:8): [True: 0, False: 0]
  |  Branch (1045:14): [True: 0, False: 0]
  ------------------
 1046|      0|	    {
 1047|      0|	      _asn1_str_cpy (name2, sizeof (name2), node->name);
 1048|      0|	      if (p2->value)
  ------------------
  |  Branch (1048:12): [True: 0, False: 0]
  ------------------
 1049|      0|		{
 1050|      0|		  _asn1_str_cat (name2, sizeof (name2), ".");
 1051|      0|		  _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
 1052|      0|		  _asn1_str_cpy (_asn1_identifierMissing,
 1053|      0|				 sizeof (_asn1_identifierMissing),
 1054|      0|				 (char *) p2->value);
 1055|      0|		}
 1056|      0|	      else
 1057|      0|		_asn1_strcpy (_asn1_identifierMissing, "(null)");
  ------------------
  |  |  117|      0|# define _asn1_strcpy(a,b) strcpy((char *)a, (const char *)b)
  ------------------
 1058|       |
 1059|      0|	      p2 = asn1_find_node (node, name2);
 1060|      0|	      if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) ||
  ------------------
  |  |  226|      0|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (1060:12): [True: 0, False: 0]
  |  Branch (1060:19): [True: 0, False: 0]
  ------------------
 1061|      0|		  !(p2->type & CONST_ASSIGN))
  ------------------
  |  |  166|      0|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (1061:5): [True: 0, False: 0]
  ------------------
 1062|      0|		return ASN1_IDENTIFIER_NOT_FOUND;
  ------------------
  |  |  119|      0|# define ASN1_IDENTIFIER_NOT_FOUND	3
  ------------------
 1063|      0|	      else
 1064|      0|		_asn1_identifierMissing[0] = 0;
 1065|      0|	    }
 1066|      0|	}
 1067|    876|      else if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
  ------------------
  |  |  226|    876|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (1067:16): [True: 68, False: 808]
  ------------------
 1068|    876|	       (p->type & CONST_ASSIGN))
  ------------------
  |  |  166|     68|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (1068:9): [True: 2, False: 66]
  ------------------
 1069|      2|	{
 1070|      2|	  p2 = p->down;
 1071|      2|	  if (p2 && (type_field (p2->type) == ASN1_ETYPE_CONSTANT))
  ------------------
  |  |  215|      2|# define ASN1_ETYPE_CONSTANT       1
  ------------------
  |  Branch (1071:8): [True: 2, False: 0]
  |  Branch (1071:14): [True: 2, False: 0]
  ------------------
 1072|      2|	    {
 1073|      2|	      if (p2->value && !c_isdigit (p2->value[0]))
  ------------------
  |  Branch (1073:12): [True: 2, False: 0]
  |  Branch (1073:25): [True: 0, False: 2]
  ------------------
 1074|      0|		{
 1075|      0|		  _asn1_str_cpy (name2, sizeof (name2), node->name);
 1076|      0|		  _asn1_str_cat (name2, sizeof (name2), ".");
 1077|      0|		  _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
 1078|      0|		  _asn1_str_cpy (_asn1_identifierMissing,
 1079|      0|				 sizeof (_asn1_identifierMissing),
 1080|      0|				 (char *) p2->value);
 1081|       |
 1082|      0|		  p2 = asn1_find_node (node, name2);
 1083|      0|		  if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID)
  ------------------
  |  |  226|      0|# define ASN1_ETYPE_OBJECT_ID     12
  ------------------
  |  Branch (1083:9): [True: 0, False: 0]
  |  Branch (1083:16): [True: 0, False: 0]
  ------------------
 1084|      0|		      || !(p2->type & CONST_ASSIGN))
  ------------------
  |  |  166|      0|# define CONST_ASSIGN      (1U<<28)
  ------------------
  |  Branch (1084:12): [True: 0, False: 0]
  ------------------
 1085|      0|		    return ASN1_IDENTIFIER_NOT_FOUND;
  ------------------
  |  |  119|      0|# define ASN1_IDENTIFIER_NOT_FOUND	3
  ------------------
 1086|      0|		  else
 1087|      0|		    _asn1_identifierMissing[0] = 0;
 1088|      0|		}
 1089|      2|	    }
 1090|      2|	}
 1091|       |
 1092|  1.14k|      if (p->down)
  ------------------
  |  Branch (1092:11): [True: 424, False: 718]
  ------------------
 1093|    424|	{
 1094|    424|	  p = p->down;
 1095|    424|	}
 1096|    718|      else if (p->right)
  ------------------
  |  Branch (1096:16): [True: 392, False: 326]
  ------------------
 1097|    392|	p = p->right;
 1098|    326|      else
 1099|    326|	{
 1100|    424|	  while (p)
  ------------------
  |  Branch (1100:11): [True: 424, False: 0]
  ------------------
 1101|    424|	    {
 1102|    424|	      p = _asn1_find_up (p);
 1103|    424|	      if (p == node)
  ------------------
  |  Branch (1103:12): [True: 4, False: 420]
  ------------------
 1104|      4|		{
 1105|      4|		  p = NULL;
 1106|      4|		  break;
 1107|      4|		}
 1108|    420|	      if (p && p->right)
  ------------------
  |  Branch (1108:12): [True: 420, False: 0]
  |  Branch (1108:17): [True: 322, False: 98]
  ------------------
 1109|    322|		{
 1110|    322|		  p = p->right;
 1111|    322|		  break;
 1112|    322|		}
 1113|    420|	    }
 1114|    326|	}
 1115|  1.14k|    }
 1116|       |
 1117|      4|  return ASN1_SUCCESS;
  ------------------
  |  |  116|      4|# define ASN1_SUCCESS			0
  ------------------
 1118|      4|}
parser_aux.c:_asn1_hash_name:
   44|  1.43k|{
   45|  1.43k|  const unsigned char *s = (unsigned char *) x;
   46|  1.43k|  unsigned h = 0;
   47|       |
   48|  17.9k|  while (*s)
  ------------------
  |  Branch (48:10): [True: 16.5k, False: 1.43k]
  ------------------
   49|  16.5k|    h = (*s++) + ((h << 9) | (h >> (WORD_BIT - 9)));
   50|       |
   51|  1.43k|  return h;
   52|  1.43k|}

structure.c:_asn1_set_down:
  112|    424|{
  113|    424|  if (node == NULL)
  ------------------
  |  Branch (113:7): [True: 0, False: 424]
  ------------------
  114|      0|    return node;
  115|    424|  node->down = down;
  116|    424|  if (down)
  ------------------
  |  Branch (116:7): [True: 424, False: 0]
  ------------------
  117|    424|    down->left = node;
  118|    424|  return node;
  119|    424|}

asn1_array2tree:
  179|      4|{
  180|      4|  asn1_node p, p_last = NULL;
  181|      4|  unsigned long k;
  182|      4|  int move;
  183|      4|  int result;
  184|      4|  unsigned int type;
  185|      4|  list_type *e_list = NULL;
  186|       |
  187|      4|  if (errorDescription)
  ------------------
  |  Branch (187:7): [True: 0, False: 4]
  ------------------
  188|      0|    errorDescription[0] = 0;
  189|       |
  190|      4|  if (*definitions != NULL)
  ------------------
  |  Branch (190:7): [True: 0, False: 4]
  ------------------
  191|      0|    return ASN1_ELEMENT_NOT_EMPTY;
  ------------------
  |  |  133|      0|# define ASN1_ELEMENT_NOT_EMPTY		17
  ------------------
  192|       |
  193|      4|  move = UP;
  ------------------
  |  |  129|      4|# define UP     1
  ------------------
  194|       |
  195|  1.14k|  for (k = 0; array[k].value || array[k].type || array[k].name; k++)
  ------------------
  |  Branch (195:15): [True: 462, False: 684]
  |  Branch (195:33): [True: 680, False: 4]
  |  Branch (195:50): [True: 0, False: 4]
  ------------------
  196|  1.14k|    {
  197|  1.14k|      type = convert_old_type (array[k].type);
  198|       |
  199|  1.14k|      p = _asn1_add_static_node (&e_list, type & (~CONST_DOWN));
  ------------------
  |  |  168|  1.14k|# define CONST_DOWN        (1U<<29)
  ------------------
  200|  1.14k|      if (array[k].name)
  ------------------
  |  Branch (200:11): [True: 898, False: 244]
  ------------------
  201|    898|	_asn1_set_name (p, array[k].name);
  202|  1.14k|      if (array[k].value)
  ------------------
  |  Branch (202:11): [True: 462, False: 680]
  ------------------
  203|    462|	_asn1_set_value (p, array[k].value, strlen (array[k].value) + 1);
  204|       |
  205|  1.14k|      if (*definitions == NULL)
  ------------------
  |  Branch (205:11): [True: 4, False: 1.13k]
  ------------------
  206|      4|	*definitions = p;
  207|       |
  208|  1.14k|      if (move == DOWN)
  ------------------
  |  |  131|  1.14k|# define DOWN   3
  ------------------
  |  Branch (208:11): [True: 424, False: 718]
  ------------------
  209|    424|	{
  210|    424|	  if (p_last && p_last->down)
  ------------------
  |  Branch (210:8): [True: 424, False: 0]
  |  Branch (210:18): [True: 0, False: 424]
  ------------------
  211|      0|	    _asn1_delete_structure (e_list, &p_last->down, 0);
  212|    424|	  _asn1_set_down (p_last, p);
  213|    424|	}
  214|    718|      else if (move == RIGHT)
  ------------------
  |  |  130|    718|# define RIGHT  2
  ------------------
  |  Branch (214:16): [True: 714, False: 4]
  ------------------
  215|    714|	{
  216|    714|	  if (p_last && p_last->right)
  ------------------
  |  Branch (216:8): [True: 714, False: 0]
  |  Branch (216:18): [True: 0, False: 714]
  ------------------
  217|      0|	    _asn1_delete_structure (e_list, &p_last->right, 0);
  218|    714|	  _asn1_set_right (p_last, p);
  219|    714|	}
  220|       |
  221|  1.14k|      p_last = p;
  222|       |
  223|  1.14k|      if (type & CONST_DOWN)
  ------------------
  |  |  168|  1.14k|# define CONST_DOWN        (1U<<29)
  ------------------
  |  Branch (223:11): [True: 424, False: 718]
  ------------------
  224|    424|	move = DOWN;
  ------------------
  |  |  131|    424|# define DOWN   3
  ------------------
  225|    718|      else if (type & CONST_RIGHT)
  ------------------
  |  |  169|    718|# define CONST_RIGHT       (1U<<30)
  ------------------
  |  Branch (225:16): [True: 392, False: 326]
  ------------------
  226|    392|	move = RIGHT;
  ------------------
  |  |  130|    392|# define RIGHT  2
  ------------------
  227|    326|      else
  228|    326|	{
  229|    428|	  while (p_last != *definitions)
  ------------------
  |  Branch (229:11): [True: 424, False: 4]
  ------------------
  230|    424|	    {
  231|    424|	      p_last = _asn1_find_up (p_last);
  232|       |
  233|    424|	      if (p_last == NULL)
  ------------------
  |  Branch (233:12): [True: 0, False: 424]
  ------------------
  234|      0|		break;
  235|       |
  236|    424|	      if (p_last->type & CONST_RIGHT)
  ------------------
  |  |  169|    424|# define CONST_RIGHT       (1U<<30)
  ------------------
  |  Branch (236:12): [True: 322, False: 102]
  ------------------
  237|    322|		{
  238|    322|		  p_last->type &= ~CONST_RIGHT;
  ------------------
  |  |  169|    322|# define CONST_RIGHT       (1U<<30)
  ------------------
  239|    322|		  move = RIGHT;
  ------------------
  |  |  130|    322|# define RIGHT  2
  ------------------
  240|    322|		  break;
  241|    322|		}
  242|    424|	    }			/* while */
  243|    326|	}
  244|  1.14k|    }				/* while */
  245|       |
  246|      4|  if (p_last == *definitions)
  ------------------
  |  Branch (246:7): [True: 4, False: 0]
  ------------------
  247|      4|    {
  248|      4|      result = _asn1_check_identifier (*definitions);
  249|      4|      if (result == ASN1_SUCCESS)
  ------------------
  |  |  116|      4|# define ASN1_SUCCESS			0
  ------------------
  |  Branch (249:11): [True: 4, False: 0]
  ------------------
  250|      4|	{
  251|      4|	  _asn1_change_integer_value (*definitions);
  252|      4|	  result = _asn1_expand_object_id (&e_list, *definitions);
  253|      4|	}
  254|      4|    }
  255|      0|  else
  256|      0|    {
  257|      0|      result = ASN1_ARRAY_ERROR;
  ------------------
  |  |  132|      0|# define ASN1_ARRAY_ERROR		16
  ------------------
  258|      0|    }
  259|       |
  260|      4|  if (errorDescription != NULL)
  ------------------
  |  Branch (260:7): [True: 0, False: 4]
  ------------------
  261|      0|    {
  262|      0|      if (result == ASN1_IDENTIFIER_NOT_FOUND)
  ------------------
  |  |  119|      0|# define ASN1_IDENTIFIER_NOT_FOUND	3
  ------------------
  |  Branch (262:11): [True: 0, False: 0]
  ------------------
  263|      0|	{
  264|      0|	  Estrcpy (errorDescription, ":: identifier '");
  ------------------
  |  |   29|      0|# define Estrcpy(x,y) _asn1_str_cpy(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y)
  |  |  ------------------
  |  |  |  |  315|      0|# define ASN1_MAX_ERROR_DESCRIPTION_SIZE 128
  |  |  ------------------
  ------------------
  265|      0|	  Estrcat (errorDescription, _asn1_identifierMissing);
  ------------------
  |  |   30|      0|# define Estrcat(x,y) _asn1_str_cat(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y)
  |  |  ------------------
  |  |  |  |  315|      0|# define ASN1_MAX_ERROR_DESCRIPTION_SIZE 128
  |  |  ------------------
  ------------------
  266|      0|	  Estrcat (errorDescription, "' not found");
  ------------------
  |  |   30|      0|# define Estrcat(x,y) _asn1_str_cat(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y)
  |  |  ------------------
  |  |  |  |  315|      0|# define ASN1_MAX_ERROR_DESCRIPTION_SIZE 128
  |  |  ------------------
  ------------------
  267|      0|	}
  268|      0|      else
  269|      0|	errorDescription[0] = 0;
  270|      0|    }
  271|       |
  272|      4|  if (result != ASN1_SUCCESS)
  ------------------
  |  |  116|      4|# define ASN1_SUCCESS			0
  ------------------
  |  Branch (272:7): [True: 0, False: 4]
  ------------------
  273|      0|    {
  274|      0|      _asn1_delete_list_and_nodes (e_list);
  275|      0|      *definitions = NULL;
  276|      0|    }
  277|      4|  else
  278|      4|    _asn1_delete_list (e_list);
  279|       |
  280|      4|  return result;
  281|      4|}

asn1_check_version:
   46|      2|{
   47|      2|  if (!req_version || strverscmp (req_version, ASN1_VERSION) <= 0)
  ------------------
  |  |   71|      2|# define ASN1_VERSION "4.19.0"
  ------------------
  |  Branch (47:7): [True: 0, False: 2]
  |  Branch (47:23): [True: 2, False: 0]
  ------------------
   48|      2|    return ASN1_VERSION;
  ------------------
  |  |   71|      2|# define ASN1_VERSION "4.19.0"
  ------------------
   49|       |
   50|      0|  return NULL;
   51|      2|}

gnutls_crypto_init:
   41|      2|{
   42|      2|	void *(*defallocfunc)(size_t);
   43|      2|	void *(*defreallocfunc)(void *, size_t, size_t);
   44|      2|	void (*deffreefunc)(void *, size_t);
   45|       |
   46|       |	/* Check if non-default allocators are being used.
   47|       |	 * Some applications like guile override GMP allocators
   48|       |	 * with GC capable alternatives. Do nothing if this is
   49|       |	 * the case.
   50|       |	 */
   51|      2|	mp_get_memory_functions(&allocfunc, &reallocfunc, &freefunc);
   52|      2|	mp_set_memory_functions(NULL, NULL, NULL);
   53|      2|	mp_get_memory_functions(&defallocfunc, &defreallocfunc, &deffreefunc);
   54|      2|	if (reallocfunc != defreallocfunc || freefunc != deffreefunc) {
  ------------------
  |  Branch (54:6): [True: 0, False: 2]
  |  Branch (54:39): [True: 0, False: 2]
  ------------------
   55|      0|		mp_set_memory_functions(allocfunc, reallocfunc, freefunc);
   56|      0|		return (0);
   57|      0|	}
   58|       |
   59|       |	/* Overload GMP allocators with safe alternatives */
   60|      2|	mp_set_memory_functions(NULL, gnutls_realloc_zero, gnutls_free_zero);
   61|      2|	return 0;
   62|      2|}

_rnd_system_entropy_init:
  161|      2|{
  162|      2|	int urandom_fd;
  163|       |
  164|      2|#if defined(__linux__)
  165|       |	/* Enable getrandom() usage if available */
  166|      2|	if (have_getrandom()) {
  ------------------
  |  Branch (166:6): [True: 2, False: 0]
  ------------------
  167|      2|		_rnd_get_system_entropy = _rnd_get_system_entropy_getrandom;
  168|      2|		_gnutls_debug_log("getrandom random generator was selected\n");
  ------------------
  |  |  139|      2|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      2|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      2|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      2|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  169|      2|		return 0;
  170|      2|	} else {
  171|      0|		_gnutls_debug_log("getrandom is not available\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  172|      0|	}
  173|      0|#endif
  174|       |
  175|       |	/* Fallback: /dev/urandom */
  176|       |
  177|       |	/* Check that we can open it */
  178|      0|	urandom_fd = open("/dev/urandom", O_RDONLY);
  179|      0|	if (urandom_fd < 0) {
  ------------------
  |  Branch (179:6): [True: 0, False: 0]
  ------------------
  180|      0|		_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  181|      0|		    ("Cannot open /dev/urandom during initialization!\n");
  182|      0|		return gnutls_assert_val(GNUTLS_E_RANDOM_DEVICE_ERROR);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
  183|      0|	}
  184|      0|	close(urandom_fd);
  185|       |
  186|      0|	_rnd_get_system_entropy = _rnd_get_system_entropy_urandom;
  187|      0|	_gnutls_debug_log("/dev/urandom random generator was selected\n");
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  188|       |
  189|      0|	return 0;
  190|      0|}
sysrng-linux.c:have_getrandom:
   71|      2|{
   72|      2|	char c;
   73|      2|	int ret;
   74|      2|	ret = getrandom(&c, 1, 1 /*GRND_NONBLOCK */ );
   75|      2|	if (ret == 1 || (ret == -1 && errno == EAGAIN))
  ------------------
  |  Branch (75:6): [True: 2, False: 0]
  |  Branch (75:19): [True: 0, False: 0]
  |  Branch (75:32): [True: 0, False: 0]
  ------------------
   76|      2|		return 1;
   77|      0|	return 0;
   78|      2|}

_gnutls_prepare_to_load_system_priorities:
 2425|      2|{
 2426|      2|	const char *p;
 2427|      2|	int ret;
 2428|       |
 2429|      2|	p = secure_getenv("GNUTLS_SYSTEM_PRIORITY_FILE");
 2430|      2|	if (p != NULL)
  ------------------
  |  Branch (2430:6): [True: 0, False: 2]
  ------------------
 2431|      0|		system_priority_file = p;
 2432|       |
 2433|      2|	p = secure_getenv("GNUTLS_SYSTEM_PRIORITY_FAIL_ON_INVALID");
 2434|      2|	if (p != NULL && p[0] == '1' && p[1] == 0)
  ------------------
  |  Branch (2434:6): [True: 0, False: 2]
  |  Branch (2434:19): [True: 0, False: 0]
  |  Branch (2434:34): [True: 0, False: 0]
  ------------------
 2435|      0|		fail_on_invalid_config = 1;
 2436|       |
 2437|      2|	ret = _gnutls_update_system_priorities(true /* defer_system_wide */ );
 2438|      2|	if (ret < 0) {
  ------------------
  |  Branch (2438:6): [True: 0, False: 2]
  ------------------
 2439|      0|		_gnutls_debug_log("failed to update system priorities: %s\n",
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2440|      0|				  gnutls_strerror(ret));
 2441|      0|	}
 2442|      2|}
priority.c:_gnutls_update_system_priorities:
 2302|      2|{
 2303|      2|	int ret, err = 0;
 2304|      2|	struct stat sb;
 2305|      2|	FILE *fp;
 2306|      2|	gnutls_buffer_st buf;
 2307|      2|	struct ini_ctx ctx;
 2308|       |
 2309|      2|	ret = gnutls_rwlock_rdlock(&system_wide_config_rwlock);
  ------------------
  |  |   60|      2|	(unlikely(glthread_rwlock_rdlock(RWLOCK)) ?	\
  |  |  ------------------
  |  |  |  |   73|      6|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  Branch (73:44): [True: 2, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   61|      2|	gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
  |  |  ------------------
  |  |  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  |  |  ------------------
  ------------------
 2310|      2|	if (ret < 0) {
  ------------------
  |  Branch (2310:6): [True: 0, False: 2]
  ------------------
 2311|      0|		return gnutls_assert_val(ret);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
 2312|      0|	}
 2313|       |
 2314|      2|	if (stat(system_priority_file, &sb) < 0) {
  ------------------
  |  Branch (2314:6): [True: 2, False: 0]
  ------------------
 2315|      2|		_gnutls_debug_log("cfg: unable to access: %s: %d\n",
  ------------------
  |  |  139|      2|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      2|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      2|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      2|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2316|      2|				  system_priority_file, errno);
 2317|      2|		goto out;
 2318|      2|	}
 2319|       |
 2320|      0|	if (system_priority_file_loaded &&
  ------------------
  |  Branch (2320:6): [True: 0, False: 0]
  ------------------
 2321|      0|	    system_priority_last_mod == sb.st_mtime) {
  ------------------
  |  Branch (2321:6): [True: 0, False: 0]
  ------------------
 2322|      0|		_gnutls_debug_log("cfg: system priority %s has not changed\n",
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2323|      0|				  system_priority_file);
 2324|      0|		if (system_wide_config.priority_string) {
  ------------------
  |  Branch (2324:7): [True: 0, False: 0]
  ------------------
 2325|      0|			goto out;	/* nothing to do */
 2326|      0|		}
 2327|      0|	}
 2328|       |
 2329|      0|	(void)gnutls_rwlock_unlock(&system_wide_config_rwlock);
  ------------------
  |  |   68|      0|	(unlikely(glthread_rwlock_unlock(RWLOCK)) ?	\
  |  |  ------------------
  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   69|      0|	gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
  |  |  ------------------
  |  |  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  |  |  ------------------
  ------------------
 2330|       |
 2331|      0|	ret = gnutls_rwlock_wrlock(&system_wide_config_rwlock);
  ------------------
  |  |   64|      0|	(unlikely(glthread_rwlock_wrlock(RWLOCK)) ?	\
  |  |  ------------------
  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   65|      0|	gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
  |  |  ------------------
  |  |  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  |  |  ------------------
  ------------------
 2332|      0|	if (ret < 0) {
  ------------------
  |  Branch (2332:6): [True: 0, False: 0]
  ------------------
 2333|      0|		return gnutls_assert_val(ret);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
 2334|      0|	}
 2335|       |
 2336|       |	/* Another thread could have successfully re-read system-wide config,
 2337|       |	 * skip re-reading if the mtime it has used is exactly the same.
 2338|       |	 */
 2339|      0|	if (system_priority_file_loaded) {
  ------------------
  |  Branch (2339:6): [True: 0, False: 0]
  ------------------
 2340|      0|		system_priority_file_loaded =
 2341|      0|		    (system_priority_last_mod == sb.st_mtime);
 2342|      0|	}
 2343|       |
 2344|      0|	if (!system_priority_file_loaded) {
  ------------------
  |  Branch (2344:6): [True: 0, False: 0]
  ------------------
 2345|      0|		_name_val_array_clear(&system_wide_config.priority_strings);
 2346|       |
 2347|      0|		gnutls_free(system_wide_config.priority_string);
  ------------------
  |  | 2296|      0|#  define gnutls_free(a) gnutls_free((void *) (a)), a=NULL
  ------------------
 2348|      0|		system_wide_config.priority_string = NULL;
 2349|       |
 2350|      0|		fp = fopen(system_priority_file, "re");
 2351|      0|		if (fp == NULL) {
  ------------------
  |  Branch (2351:7): [True: 0, False: 0]
  ------------------
 2352|      0|			_gnutls_debug_log("cfg: unable to open: %s: %d\n",
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2353|      0|					  system_priority_file, errno);
 2354|      0|			goto out;
 2355|      0|		}
 2356|       |		/* Parsing the configuration file needs to be done in 2 phases:
 2357|       |		 * first parsing the [global] section
 2358|       |		 * and then the other sections,
 2359|       |		 * because the [global] section modifies the parsing behavior.
 2360|       |		 */
 2361|      0|		memset(&ctx, 0, sizeof(ctx));
 2362|      0|		err = ini_parse_file(fp, global_ini_handler, &ctx);
 2363|      0|		if (!err) {
  ------------------
  |  Branch (2363:7): [True: 0, False: 0]
  ------------------
 2364|      0|			if (fseek(fp, 0L, SEEK_SET) < 0) {
  ------------------
  |  Branch (2364:8): [True: 0, False: 0]
  ------------------
 2365|      0|				_gnutls_debug_log("cfg: unable to rewind: %s\n",
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2366|      0|						  system_priority_file);
 2367|      0|				if (fail_on_invalid_config)
  ------------------
  |  Branch (2367:9): [True: 0, False: 0]
  ------------------
 2368|      0|					exit(1);
 2369|      0|			}
 2370|      0|			err = ini_parse_file(fp, cfg_ini_handler, &ctx);
 2371|      0|		}
 2372|      0|		fclose(fp);
 2373|      0|		if (err) {
  ------------------
  |  Branch (2373:7): [True: 0, False: 0]
  ------------------
 2374|      0|			ini_ctx_deinit(&ctx);
 2375|      0|			_gnutls_debug_log("cfg: unable to parse: %s: %d\n",
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2376|      0|					  system_priority_file, err);
 2377|      0|			goto out;
 2378|      0|		}
 2379|      0|		cfg_apply(&system_wide_config, &ctx);
 2380|      0|		ini_ctx_deinit(&ctx);
 2381|      0|		_gnutls_debug_log("cfg: loaded system config %s mtime %lld\n",
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2382|      0|				  system_priority_file,
 2383|      0|				  (unsigned long long)sb.st_mtime);
 2384|       |
 2385|      0|	}
 2386|       |
 2387|      0|	if (system_wide_config.allowlisting) {
  ------------------
  |  Branch (2387:6): [True: 0, False: 0]
  ------------------
 2388|      0|		if (defer_system_wide) {
  ------------------
  |  Branch (2388:7): [True: 0, False: 0]
  ------------------
 2389|       |			/* try constructing a priority string,
 2390|       |			 * but don't apply it yet, at this point
 2391|       |			 * we're only interested in whether we can */
 2392|      0|			ret = construct_system_wide_priority_string(&buf);
 2393|      0|			_gnutls_buffer_clear(&buf);
 2394|      0|			_gnutls_debug_log("cfg: deferred setting "
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2395|      0|					  "system-wide priority string\n");
 2396|      0|		} else {
 2397|      0|			ret = update_system_wide_priority_string();
 2398|      0|			_gnutls_debug_log("cfg: finalized "
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2399|      0|					  "system-wide priority string\n");
 2400|      0|		}
 2401|      0|		if (ret < 0) {
  ------------------
  |  Branch (2401:7): [True: 0, False: 0]
  ------------------
 2402|      0|			_gnutls_debug_log
  ------------------
  |  |  139|      0|#  define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |  136|      0|#  define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |   73|      0|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (73:26): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  137|      0|      _gnutls_log( l, __VA_ARGS__); } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (137:45): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2403|      0|			    ("cfg: unable to build priority string: %s\n",
 2404|      0|			     gnutls_strerror(ret));
 2405|      0|			if (fail_on_invalid_config)
  ------------------
  |  Branch (2405:8): [True: 0, False: 0]
  ------------------
 2406|      0|				exit(1);
 2407|      0|			goto out;
 2408|      0|		}
 2409|      0|	}
 2410|       |
 2411|      0|	system_priority_file_loaded = 1;
 2412|      0|	system_priority_last_mod = sb.st_mtime;
 2413|       |
 2414|      2| out:
 2415|      2|	(void)gnutls_rwlock_unlock(&system_wide_config_rwlock);
  ------------------
  |  |   68|      2|	(unlikely(glthread_rwlock_unlock(RWLOCK)) ?	\
  |  |  ------------------
  |  |  |  |   73|      6|#  define unlikely(x)    __builtin_expect((x), 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (73:26): [True: 0, False: 2]
  |  |  |  |  |  Branch (73:44): [True: 2, False: 0]
  |  |  |  |  |  Branch (73:44): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   69|      2|	gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
  |  |  ------------------
  |  |  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  |  |  ------------------
  ------------------
 2416|       |
 2417|      2|	if (err && fail_on_invalid_config) {
  ------------------
  |  Branch (2417:6): [True: 0, False: 2]
  |  Branch (2417:13): [True: 0, False: 0]
  ------------------
 2418|      0|		exit(1);
 2419|      0|	}
 2420|       |
 2421|      2|	return ret;
 2422|      2|}

_gnutls_rnd_preinit:
  106|      2|{
  107|      2|	int ret;
  108|       |
  109|       |#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
  110|       |# warning Insecure PRNG is enabled
  111|       |	ret = gnutls_crypto_rnd_register(100, &_gnutls_fuzz_rnd_ops);
  112|       |	if (ret < 0)
  113|       |		return ret;
  114|       |
  115|       |#elif defined(ENABLE_FIPS140)
  116|       |	/* The FIPS140 random generator is only enabled when we are compiled
  117|       |	 * with FIPS support, _and_ the system is in FIPS installed state.
  118|       |	 */
  119|       |	if (_gnutls_fips_mode_enabled()) {
  120|       |		ret = gnutls_crypto_rnd_register(100, &_gnutls_fips_rnd_ops);
  121|       |		if (ret < 0)
  122|       |			return ret;
  123|       |	}
  124|       |#endif
  125|       |
  126|      2|	ret = _rnd_system_entropy_init();
  127|      2|	if (ret < 0)
  ------------------
  |  Branch (127:6): [True: 0, False: 2]
  ------------------
  128|      0|		return gnutls_assert_val(GNUTLS_E_RANDOM_FAILED);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
  129|       |
  130|      2|	ret = glthread_tls_key_init(&ctx_key, delete_ctx);
  ------------------
  |  |  135|      2|    (pthread_in_use ()                              \
  |  |  ------------------
  |  |  |  |  115|      2|      (pthread_mutexattr_gettype != NULL || c11_threads_in_use ())
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#  define c11_threads_in_use() (thrd_exit != NULL)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (89:32): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:8): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  136|      2|     ? pthread_key_create (&(KEY)->key, DESTRUCTOR) \
  |  |  137|      2|     : ((KEY)->singlethread_value = NULL, 0))
  ------------------
  131|      2|	if (ret)
  ------------------
  |  Branch (131:6): [True: 0, False: 2]
  ------------------
  132|      0|		return gnutls_assert_val(GNUTLS_E_RANDOM_FAILED);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
  133|       |
  134|      2|	list =
  135|      2|	    gl_list_nx_create_empty(GL_LINKEDHASH_LIST, NULL, NULL, free_ctx,
  ------------------
  |  |   28|      2|#define GL_LINKEDHASH_LIST &gl_linkedhash_list_implementation
  ------------------
  136|      2|				    false);
  137|      2|	if (list == NULL)
  ------------------
  |  Branch (137:6): [True: 0, False: 2]
  ------------------
  138|      0|		return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
  ------------------
  |  |  183|      0|# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
  ------------------
  139|       |
  140|      2|	return 0;
  141|      2|}

gnutls_system_global_init:
   69|      2|{
   70|       |#if defined(_WIN32) && defined(NEED_CERT_ENUM_CRLS)
   71|       |	/* used in system/certs.c */
   72|       |	HMODULE crypto;
   73|       |	crypto = LoadLibrary(TEXT("Crypt32.dll"));
   74|       |
   75|       |	if (crypto == NULL)
   76|       |		return GNUTLS_E_CRYPTO_INIT_FAILED;
   77|       |
   78|       |	pCertEnumCRLsInStore =
   79|       |	    (CertEnumCRLsInStoreFunc) GetProcAddress(crypto,
   80|       |						     "CertEnumCRLsInStore");
   81|       |	if (pCertEnumCRLsInStore == NULL) {
   82|       |		FreeLibrary(crypto);
   83|       |		return GNUTLS_E_CRYPTO_INIT_FAILED;
   84|       |	}
   85|       |
   86|       |	Crypt32_dll = crypto;
   87|       |#endif
   88|      2|	gnutls_time = time;
   89|      2|	gnutls_gettime = _gnutls_gettime;
   90|      2|	return 0;
   91|      2|}

_gnutls_system_key_init:
   70|      2|{
   71|      2|	return 0;
   72|      2|}

nettle_des_set_key:
  205|  1.20k|{
  206|  1.20k|  register uint32_t n, w;
  207|  1.20k|  register char * b0, * b1;
  208|  1.20k|  char bits0[56], bits1[56];
  209|  1.20k|  uint32_t *method;
  210|  1.20k|  const uint8_t *k;
  211|       |
  212|       |  /* explode the bits */
  213|  1.20k|  n = 56;
  214|  1.20k|  b0 = bits0;
  215|  1.20k|  b1 = bits1;
  216|  1.20k|  k = key;
  217|  9.66k|  do {
  218|  9.66k|    w = (256 | *k++) << 2;
  219|  67.6k|    do {
  220|  67.6k|      --n;
  221|  67.6k|      b1[n] = 8 & w;
  222|  67.6k|      w >>= 1;
  223|  67.6k|      b0[n] = 4 & w;
  224|  67.6k|    } while ( w >= 16 );
  ------------------
  |  Branch (224:15): [True: 57.9k, False: 9.66k]
  ------------------
  225|  9.66k|  } while ( n );
  ------------------
  |  Branch (225:13): [True: 8.45k, False: 1.20k]
  ------------------
  226|       |
  227|       |  /* put the bits in the correct places */
  228|  1.20k|  n = 16;
  229|  1.20k|  k = rotors;
  230|  1.20k|  method = ctx->key;
  231|       |  
  232|  19.3k|  do {
  233|  19.3k|    w   = (b1[k[ 0   ]] | b0[k[ 1   ]]) << 4;
  234|  19.3k|    w  |= (b1[k[ 2   ]] | b0[k[ 3   ]]) << 2;
  235|  19.3k|    w  |=  b1[k[ 4   ]] | b0[k[ 5   ]];
  236|  19.3k|    w <<= 8;
  237|  19.3k|    w  |= (b1[k[ 6   ]] | b0[k[ 7   ]]) << 4;
  238|  19.3k|    w  |= (b1[k[ 8   ]] | b0[k[ 9   ]]) << 2;
  239|  19.3k|    w  |=  b1[k[10   ]] | b0[k[11   ]];
  240|  19.3k|    w <<= 8;
  241|  19.3k|    w  |= (b1[k[12   ]] | b0[k[13   ]]) << 4;
  242|  19.3k|    w  |= (b1[k[14   ]] | b0[k[15   ]]) << 2;
  243|  19.3k|    w  |=  b1[k[16   ]] | b0[k[17   ]];
  244|  19.3k|    w <<= 8;
  245|  19.3k|    w  |= (b1[k[18   ]] | b0[k[19   ]]) << 4;
  246|  19.3k|    w  |= (b1[k[20   ]] | b0[k[21   ]]) << 2;
  247|  19.3k|    w  |=  b1[k[22   ]] | b0[k[23   ]];
  248|       |
  249|  19.3k|    method[0] = w;
  250|       |
  251|  19.3k|    w   = (b1[k[ 0+24]] | b0[k[ 1+24]]) << 4;
  252|  19.3k|    w  |= (b1[k[ 2+24]] | b0[k[ 3+24]]) << 2;
  253|  19.3k|    w  |=  b1[k[ 4+24]] | b0[k[ 5+24]];
  254|  19.3k|    w <<= 8;
  255|  19.3k|    w  |= (b1[k[ 6+24]] | b0[k[ 7+24]]) << 4;
  256|  19.3k|    w  |= (b1[k[ 8+24]] | b0[k[ 9+24]]) << 2;
  257|  19.3k|    w  |=  b1[k[10+24]] | b0[k[11+24]];
  258|  19.3k|    w <<= 8;
  259|  19.3k|    w  |= (b1[k[12+24]] | b0[k[13+24]]) << 4;
  260|  19.3k|    w  |= (b1[k[14+24]] | b0[k[15+24]]) << 2;
  261|  19.3k|    w  |=  b1[k[16+24]] | b0[k[17+24]];
  262|  19.3k|    w <<= 8;
  263|  19.3k|    w  |= (b1[k[18+24]] | b0[k[19+24]]) << 4;
  264|  19.3k|    w  |= (b1[k[20+24]] | b0[k[21+24]]) << 2;
  265|  19.3k|    w  |=  b1[k[22+24]] | b0[k[23+24]];
  266|       |
  267|  19.3k|    ROR(w, 4, 28);		/* could be eliminated */
  ------------------
  |  |  220|  19.3k|#define	ROR(d,c,o)	d = d >> c | d << o
  ------------------
  268|  19.3k|    method[1] = w;
  269|       |
  270|  19.3k|    k	+= 48;
  271|  19.3k|    method	+= 2;
  272|  19.3k|  } while ( --n );
  ------------------
  |  Branch (272:13): [True: 18.1k, False: 1.20k]
  ------------------
  273|       |
  274|  1.20k|  return !des_weak_p (key);
  275|  1.20k|}
nettle_des_encrypt:
  281|  1.20k|{
  282|  1.20k|  assert(!(length % DES_BLOCK_SIZE));
  283|       |  
  284|  2.41k|  while (length)
  ------------------
  |  Branch (284:10): [True: 1.20k, False: 1.20k]
  ------------------
  285|  1.20k|    {
  286|  1.20k|      DesSmallFipsEncrypt(dst, ctx->key, src);
  287|  1.20k|      length -= DES_BLOCK_SIZE;
  ------------------
  |  |   64|  1.20k|#define DES_BLOCK_SIZE 8
  ------------------
  288|  1.20k|      src += DES_BLOCK_SIZE;
  ------------------
  |  |   64|  1.20k|#define DES_BLOCK_SIZE 8
  ------------------
  289|  1.20k|      dst += DES_BLOCK_SIZE;
  ------------------
  |  |   64|  1.20k|#define DES_BLOCK_SIZE 8
  ------------------
  290|  1.20k|    }
  291|  1.20k|}
des.c:des_weak_p:
  123|  1.20k|{
  124|       |  /* Hash function generated using gperf. */
  125|  1.20k|  static const unsigned char asso_values[0x81] =
  126|  1.20k|    {
  127|  1.20k|      16,  9, 26, 26, 26, 26, 26, 26, 26, 26,
  128|  1.20k|      26, 26, 26, 26, 26,  6,  2, 26, 26, 26,
  129|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  130|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  131|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  132|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  133|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  134|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  135|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  136|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  137|  1.20k|      26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
  138|  1.20k|      26, 26,  3,  1, 26, 26, 26, 26, 26, 26,
  139|  1.20k|      26, 26, 26, 26, 26, 26, 26,  0,  0
  140|  1.20k|    };
  141|       |
  142|  1.20k|  static const int8_t weak_key_hash[26][4] =
  143|  1.20k|    {
  144|  1.20k|      /*  0 */ {0x7f,0x7f, 0x7f,0x7f},
  145|  1.20k|      /*  1 */ {0x7f,0x70, 0x7f,0x78},
  146|  1.20k|      /*  2 */ {0x7f,0x0f, 0x7f,0x07},
  147|  1.20k|      /*  3 */ {0x70,0x7f, 0x78,0x7f},
  148|  1.20k|      /*  4 */ {0x70,0x70, 0x78,0x78},
  149|  1.20k|      /*  5 */ {0x70,0x0f, 0x78,0x07},
  150|  1.20k|      /*  6 */ {0x0f,0x7f, 0x07,0x7f},
  151|  1.20k|      /*  7 */ {0x0f,0x70, 0x07,0x78},
  152|  1.20k|      /*  8 */ {0x0f,0x0f, 0x07,0x07},
  153|  1.20k|      /*  9 */ {0x7f,0x00, 0x7f,0x00},
  154|  1.20k|      /* 10 */ {-1,-1,-1,-1},
  155|  1.20k|      /* 11 */ {-1,-1,-1,-1},
  156|  1.20k|      /* 12 */ {0x70,0x00, 0x78,0x00},
  157|  1.20k|      /* 13 */ {-1,-1,-1,-1},
  158|  1.20k|      /* 14 */ {-1,-1,-1,-1},
  159|  1.20k|      /* 15 */ {0x0f,0x00, 0x07,0x00},
  160|  1.20k|      /* 16 */ {0x00,0x7f, 0x00,0x7f},
  161|  1.20k|      /* 17 */ {0x00,0x70, 0x00,0x78},
  162|  1.20k|      /* 18 */ {0x00,0x0f, 0x00,0x07},
  163|  1.20k|      /* 19 */ {-1,-1,-1,-1},
  164|  1.20k|      /* 20 */ {-1,-1,-1,-1},
  165|  1.20k|      /* 21 */ {-1,-1,-1,-1},
  166|  1.20k|      /* 22 */ {-1,-1,-1,-1},
  167|  1.20k|      /* 23 */ {-1,-1,-1,-1},
  168|  1.20k|      /* 24 */ {-1,-1,-1,-1},
  169|  1.20k|      /* 25 */ {0x00,0x00, 0x00,0x00}
  170|  1.20k|    };
  171|       |
  172|  1.20k|  int8_t k0 = key[0] >> 1;
  173|  1.20k|  int8_t k1 = key[1] >> 1;
  174|       |
  175|  1.20k|  unsigned hash = asso_values[k1 + 1] + asso_values[k0];
  176|  1.20k|  const int8_t *candidate;
  177|       |
  178|  1.20k|  if (hash > 25)
  ------------------
  |  Branch (178:7): [True: 1.01k, False: 198]
  ------------------
  179|  1.01k|    return 0;
  180|       |
  181|    198|  candidate = weak_key_hash[hash];
  182|       |
  183|    198|  if (k0 != candidate[0]
  ------------------
  |  Branch (183:7): [True: 49, False: 149]
  ------------------
  184|    198|      || k1 != candidate[1])
  ------------------
  |  Branch (184:10): [True: 11, False: 138]
  ------------------
  185|     60|    return 0;
  186|       |  
  187|    138|  if ( (key[2] >> 1) != k0
  ------------------
  |  Branch (187:8): [True: 28, False: 110]
  ------------------
  188|    138|       || (key[3] >> 1) != k1)
  ------------------
  |  Branch (188:11): [True: 23, False: 87]
  ------------------
  189|     51|    return 0;
  190|       |
  191|     87|  k0 = key[4] >> 1;
  192|     87|  k1 = key[5] >> 1;
  193|     87|  if (k0 != candidate[2]
  ------------------
  |  Branch (193:7): [True: 13, False: 74]
  ------------------
  194|     87|      || k1 != candidate[3])
  ------------------
  |  Branch (194:10): [True: 9, False: 65]
  ------------------
  195|     22|    return 0;
  196|     65|  if ( (key[6] >> 1) != k0
  ------------------
  |  Branch (196:8): [True: 1, False: 64]
  ------------------
  197|     65|       || (key[7] >> 1) != k1)
  ------------------
  |  Branch (197:11): [True: 0, False: 64]
  ------------------
  198|      1|    return 0;
  199|       |
  200|     64|  return 1;
  201|     65|}

des.c:DesSmallFipsEncrypt:
  346|  1.20k|     REGISTER const uint8_t *s)			\
  347|  1.20k|{						\
  348|  1.20k|	register uint32_t x, y, z;		\
  349|  1.20k|						\
  350|  1.20k|	/* declare temps & load data */		\
  351|  1.20k|	TEMP(LOAD);				\
  ------------------
  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  ------------------
  |  |  |  |  239|  1.20k|	REGSMALL				\
  |  |  |  |  240|  1.20k|	LOAD()					\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  262|  1.20k|	LOADDATA(y, x);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  245|  1.20k|	FIXS					\
  |  |  |  |  |  |  |  |  |  |  246|  1.20k|	y  = PREV(s, 7); y<<= 8;		\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  247|  1.20k|	y |= PREV(s, 6); y<<= 8;		\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  248|  1.20k|	y |= PREV(s, 5); y<<= 8;		\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  249|  1.20k|	y |= PREV(s, 4);			\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  250|  1.20k|	x  = PREV(s, 3); x<<= 8;		\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  251|  1.20k|	x |= PREV(s, 2); x<<= 8;		\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  252|  1.20k|	x |= PREV(s, 1); x<<= 8;		\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  253|  1.20k|	x |= PREV(s, 0)				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   34|  1.20k|#define	PREV(v,o)	v[o]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  254|  1.20k|	SREGFREE
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  263|  1.20k|	SWAP(x, y, 0x0F0F0F0FL, 004);		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  264|  1.20k|	SWAP(y, x, 0x0000FFFFL, 020);		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  265|  1.20k|	SWAP(x, y, 0x33333333L, 002);		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  266|  1.20k|	SWAP(y, x, 0x00FF00FFL, 010);		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  267|  1.20k|	ROR1(x);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  222|  1.20k|#define	ROR1(d)		ROR(d, 1, 31)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  220|  1.20k|#define	ROR(d,c,o)	d = d >> c | d << o
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  268|  1.20k|	z  = (x ^ y) & 0x55555555L;		\
  |  |  |  |  |  |  |  |  269|  1.20k|	y ^= z;					\
  |  |  |  |  |  |  |  |  270|  1.20k|	x ^= z;					\
  |  |  |  |  |  |  |  |  271|  1.20k|	ROR1(y)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  222|  1.20k|#define	ROR1(d)		ROR(d, 1, 31)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  220|  1.20k|#define	ROR(d,c,o)	d = d >> c | d << o
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  241|  1.20k|	SETSMALL
  |  |  ------------------
  ------------------
  352|  1.20k|						\
  353|  1.20k|	/* do the 16 iterations */		\
  354|  1.20k|	ENCR(x,y,z,r, 0, 1,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  355|  1.20k|	ENCR(y,x,z,r, 2, 3,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  356|  1.20k|	ENCR(x,y,z,r, 4, 5,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  357|  1.20k|	ENCR(y,x,z,r, 6, 7,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  358|  1.20k|	ENCR(x,y,z,r, 8, 9,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  359|  1.20k|	ENCR(y,x,z,r,10,11,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  360|  1.20k|	ENCR(x,y,z,r,12,13,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|  1.20k|	ENCR(y,x,z,r,14,15,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  362|  1.20k|	ENCR(x,y,z,r,16,17,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  363|  1.20k|	ENCR(y,x,z,r,18,19,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  364|  1.20k|	ENCR(x,y,z,r,20,21,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  365|  1.20k|	ENCR(y,x,z,r,22,23,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  366|  1.20k|	ENCR(x,y,z,r,24,25,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  367|  1.20k|	ENCR(y,x,z,r,26,27,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|  1.20k|	ENCR(x,y,z,r,28,29,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  369|  1.20k|	ENCR(y,x,z,r,30,31,KEYMAP);		\
  ------------------
  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  ------------------
  |  |  |  |  293|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  304|  1.20k|	S7S1(x,y,z,r,m,KEYMAP,NEXT);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  294|  1.20k|	z ^= y;					\
  |  |  |  |  295|  1.20k|	KEYMAP(x,z,MQ0,MQ1,HQ0,LQ0,LQ1,SQ,MS0,MS1,MS2,MS3,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  ------------------
  |  |  |  |  298|  1.20k|	z  = LOAD(r, m);			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  305|  1.20k|	S6S0(x,y,z,r,n,KEYMAP,NEXT)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  299|  1.20k|	z ^= y;					\
  |  |  |  |  300|  1.20k|	ROL(z, 4, 28);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  ------------------
  |  |  |  |  301|  1.20k|	KEYMAP(x,z,MQ2,MQ3,HQ2,LQ2,LQ3,SQ,MS4,MS5,MS6,MS7,HS,LS0,LS1,LS2,LS3)
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  277|  1.20k|	hs(z)					\
  |  |  |  |  |  |  |  |  278|  1.20k|	x ^= *ADD(ms3, ls3(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  279|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  280|  1.20k|	x ^= *ADD(ms2, ls2(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  281|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  282|  1.20k|	x ^= *ADD(ms1, ls1(z));			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  283|  1.20k|	z>>= 8;					\
  |  |  |  |  |  |  |  |  284|  1.20k|	x ^= *ADD(ms0, ls0(z))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  215|  1.20k|#define	ADD(b,x)	(uint32_t *) ((uint8_t *)b + (x))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  370|  1.20k|						\
  371|  1.20k|	/* save result */			\
  372|  1.20k|	SAVE();					\
  ------------------
  |  |   62|  1.20k|static ENCRYPT(DesSmallFipsEncrypt,TEMPSMALL, LOADFIPS,KEYMAPSMALL,SAVEFIPS)
  |  |  ------------------
  |  |  |  |  327|  1.20k|	ROL1(x);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  1.20k|#define	ROL1(d)		ROL(d, 1, 31)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  328|  1.20k|	z  = (x ^ y) & 0x55555555L;		\
  |  |  |  |  329|  1.20k|	y ^= z;					\
  |  |  |  |  330|  1.20k|	x ^= z;					\
  |  |  |  |  331|  1.20k|	ROL1(y);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  1.20k|#define	ROL1(d)		ROL(d, 1, 31)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|  1.20k|#define	ROL(d,c,o)	d = d << c | d >> o
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  332|  1.20k|	SWAP(x, y, 0x00FF00FFL, 010);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  ------------------
  |  |  |  |  333|  1.20k|	SWAP(y, x, 0x33333333L, 002);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  ------------------
  |  |  |  |  334|  1.20k|	SWAP(x, y, 0x0000FFFFL, 020);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  ------------------
  |  |  |  |  335|  1.20k|	SWAP(y, x, 0x0F0F0F0FL, 004);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  226|  1.20k|	z  = ((x >> b) ^ y) & m;		\
  |  |  |  |  |  |  227|  1.20k|	x ^= z << b;				\
  |  |  |  |  |  |  228|  1.20k|	y ^= z
  |  |  |  |  ------------------
  |  |  |  |  336|  1.20k|	SAVEDATA(x, y)
  |  |  |  |  ------------------
  |  |  |  |  |  |  312|  1.20k|	NEXT(DEST, 0) = x; x>>= 8;		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  313|  1.20k|	NEXT(DEST, 1) = x; x>>= 8;		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  314|  1.20k|	NEXT(DEST, 2) = x; x>>= 8;		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  315|  1.20k|	NEXT(DEST, 3) = x;			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  316|  1.20k|	NEXT(DEST, 4) = y; y>>= 8;		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  317|  1.20k|	NEXT(DEST, 5) = y; y>>= 8;		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  318|  1.20k|	NEXT(DEST, 6) = y; y>>= 8;		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  319|  1.20k|	NEXT(DEST, 7) = y
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   35|  1.20k|#define	NEXT(v,o)	v[o]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  373|  1.20k|						\
  374|  1.20k|	return;					\
  375|  1.20k|}

fat-x86_64.c:fat_init:
  177|      2|{
  178|      2|  struct x86_features features;
  179|      2|  int verbose;
  180|       |
  181|       |  /* FIXME: Replace all getenv calls by getenv_secure? */
  182|      2|  verbose = getenv (ENV_VERBOSE) != NULL;
  ------------------
  |  |   93|      2|#define ENV_VERBOSE "NETTLE_FAT_VERBOSE"
  ------------------
  183|      2|  if (verbose)
  ------------------
  |  Branch (183:7): [True: 0, False: 2]
  ------------------
  184|      0|    fprintf (stderr, "libnettle: fat library initialization.\n");
  185|       |
  186|      2|  get_x86_features (&features);
  187|      2|  if (verbose)
  ------------------
  |  Branch (187:7): [True: 0, False: 2]
  ------------------
  188|      0|    {
  189|      0|      const char * const vendor_names[3] =
  190|      0|	{ "other", "intel", "amd" };
  191|      0|      fprintf (stderr, "libnettle: cpu features: vendor:%s%s%s%s\n",
  192|      0|	       vendor_names[features.vendor],
  193|      0|	       features.have_aesni ? ",aesni" : "",
  ------------------
  |  Branch (193:9): [True: 0, False: 0]
  ------------------
  194|      0|	       features.have_sha_ni ? ",sha_ni" : "",
  ------------------
  |  Branch (194:9): [True: 0, False: 0]
  ------------------
  195|      0|	       features.have_pclmul ? ",pclmul" : "");
  ------------------
  |  Branch (195:9): [True: 0, False: 0]
  ------------------
  196|      0|    }
  197|      2|  if (features.have_aesni)
  ------------------
  |  Branch (197:7): [True: 2, False: 0]
  ------------------
  198|      2|    {
  199|      2|      if (verbose)
  ------------------
  |  Branch (199:11): [True: 0, False: 2]
  ------------------
  200|      0|	fprintf (stderr, "libnettle: using aes instructions.\n");
  201|      2|      nettle_aes128_encrypt_vec = _nettle_aes128_encrypt_aesni;
  202|      2|      nettle_aes128_decrypt_vec = _nettle_aes128_decrypt_aesni;
  203|      2|      nettle_aes192_encrypt_vec = _nettle_aes192_encrypt_aesni;
  204|      2|      nettle_aes192_decrypt_vec = _nettle_aes192_decrypt_aesni;
  205|      2|      nettle_aes256_encrypt_vec = _nettle_aes256_encrypt_aesni;
  206|      2|      nettle_aes256_decrypt_vec = _nettle_aes256_decrypt_aesni;
  207|      2|      nettle_cbc_aes128_encrypt_vec = _nettle_cbc_aes128_encrypt_aesni;
  208|      2|      nettle_cbc_aes192_encrypt_vec = _nettle_cbc_aes192_encrypt_aesni;
  209|      2|      nettle_cbc_aes256_encrypt_vec = _nettle_cbc_aes256_encrypt_aesni;
  210|      2|    }
  211|      0|  else
  212|      0|    {
  213|      0|      if (verbose)
  ------------------
  |  Branch (213:11): [True: 0, False: 0]
  ------------------
  214|      0|	fprintf (stderr, "libnettle: not using aes instructions.\n");
  215|      0|      nettle_aes128_encrypt_vec = _nettle_aes128_encrypt_c;
  216|      0|      nettle_aes128_decrypt_vec = _nettle_aes128_decrypt_c;
  217|      0|      nettle_aes192_encrypt_vec = _nettle_aes192_encrypt_c;
  218|      0|      nettle_aes192_decrypt_vec = _nettle_aes192_decrypt_c;
  219|      0|      nettle_aes256_encrypt_vec = _nettle_aes256_encrypt_c;
  220|      0|      nettle_aes256_decrypt_vec = _nettle_aes256_decrypt_c;
  221|      0|      nettle_cbc_aes128_encrypt_vec = _nettle_cbc_aes128_encrypt_c;
  222|      0|      nettle_cbc_aes192_encrypt_vec = _nettle_cbc_aes192_encrypt_c;
  223|      0|      nettle_cbc_aes256_encrypt_vec = _nettle_cbc_aes256_encrypt_c;
  224|      0|    }
  225|       |
  226|      2|  if (features.have_sha_ni)
  ------------------
  |  Branch (226:7): [True: 2, False: 0]
  ------------------
  227|      2|    {
  228|      2|      if (verbose)
  ------------------
  |  Branch (228:11): [True: 0, False: 2]
  ------------------
  229|      0|	fprintf (stderr, "libnettle: using sha_ni instructions.\n");
  230|      2|      nettle_sha1_compress_vec = _nettle_sha1_compress_sha_ni;
  231|      2|      _nettle_sha256_compress_n_vec = _nettle_sha256_compress_n_sha_ni;
  232|      2|    }
  233|      0|  else
  234|      0|    {
  235|      0|      if (verbose)
  ------------------
  |  Branch (235:11): [True: 0, False: 0]
  ------------------
  236|      0|	fprintf (stderr, "libnettle: not using sha_ni instructions.\n");
  237|      0|      nettle_sha1_compress_vec = _nettle_sha1_compress_x86_64;
  238|      0|      _nettle_sha256_compress_n_vec = _nettle_sha256_compress_n_x86_64;
  239|      0|    }
  240|       |
  241|      2|  if (features.have_pclmul)
  ------------------
  |  Branch (241:7): [True: 2, False: 0]
  ------------------
  242|      2|    {
  243|      2|      if (verbose)
  ------------------
  |  Branch (243:11): [True: 0, False: 2]
  ------------------
  244|      0|	fprintf (stderr, "libnettle: using pclmulqdq instructions.\n");
  245|      2|      _nettle_ghash_set_key_vec = _nettle_ghash_set_key_pclmul;
  246|      2|      _nettle_ghash_update_vec = _nettle_ghash_update_pclmul;
  247|      2|    }
  248|      0|  else
  249|      0|    {
  250|      0|      if (verbose)
  ------------------
  |  Branch (250:11): [True: 0, False: 0]
  ------------------
  251|      0|	fprintf (stderr, "libnettle: not using pclmulqdq instructions.\n");
  252|      0|      _nettle_ghash_set_key_vec = _nettle_ghash_set_key_c;
  253|      0|      _nettle_ghash_update_vec = _nettle_ghash_update_table;
  254|      0|    }
  255|       |
  256|      2|  if (features.vendor == X86_INTEL)
  ------------------
  |  Branch (256:7): [True: 0, False: 2]
  ------------------
  257|      0|    {
  258|      0|      if (verbose)
  ------------------
  |  Branch (258:11): [True: 0, False: 0]
  ------------------
  259|      0|	fprintf (stderr, "libnettle: intel SSE2 will be used for memxor.\n");
  260|      0|      nettle_memxor_vec = _nettle_memxor_sse2;
  261|      0|    }
  262|      2|  else
  263|      2|    {
  264|      2|      if (verbose)
  ------------------
  |  Branch (264:11): [True: 0, False: 2]
  ------------------
  265|      0|	fprintf (stderr, "libnettle: intel SSE2 will not be used for memxor.\n");
  266|      2|      nettle_memxor_vec = _nettle_memxor_x86_64;
  267|      2|    }
  268|      2|}
fat-x86_64.c:get_x86_features:
   68|      2|{
   69|      2|  const char *s;
   70|      2|  features->vendor = X86_OTHER;
   71|      2|  features->have_aesni = 0;
   72|      2|  features->have_sha_ni = 0;
   73|      2|  features->have_pclmul = 0;
   74|       |
   75|      2|  s = secure_getenv (ENV_OVERRIDE);
  ------------------
  |  |   94|      2|#define ENV_OVERRIDE "NETTLE_FAT_OVERRIDE"
  ------------------
   76|      2|  if (s)
  ------------------
  |  Branch (76:7): [True: 0, False: 2]
  ------------------
   77|      0|    for (;;)
   78|      0|      {
   79|      0|	const char *sep = strchr (s, ',');
   80|      0|	size_t length = sep ? (size_t) (sep - s) : strlen(s);
  ------------------
  |  Branch (80:18): [True: 0, False: 0]
  ------------------
   81|       |
   82|      0|	if (SKIP (s, length, "vendor:", 7))
  ------------------
  |  |   61|      0|  (((slen) >= (llen) && memcmp ((s), (literal), llen) == 0)	\
  |  |  ------------------
  |  |  |  Branch (61:3): [True: 0, False: 0]
  |  |  |  Branch (61:5): [True: 0, False: 0]
  |  |  |  Branch (61:25): [True: 0, False: 0]
  |  |  ------------------
  |  |   62|      0|   ? ((slen) -= (llen), (s) += (llen), 1) : 0)
  ------------------
   83|      0|	  {
   84|      0|	    if (MATCH(s, length, "intel", 5))
  ------------------
  |  |   64|      0|  ((slen) == (llen) && memcmp ((s), (literal), llen) == 0)
  |  |  ------------------
  |  |  |  Branch (64:4): [True: 0, False: 0]
  |  |  |  Branch (64:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   85|      0|	      features->vendor = X86_INTEL;
   86|      0|	    else if (MATCH(s, length, "amd", 3))
  ------------------
  |  |   64|      0|  ((slen) == (llen) && memcmp ((s), (literal), llen) == 0)
  |  |  ------------------
  |  |  |  Branch (64:4): [True: 0, False: 0]
  |  |  |  Branch (64:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   87|      0|	      features->vendor = X86_AMD;
   88|       |	    
   89|      0|	  }
   90|      0|	else if (MATCH (s, length, "aesni", 5))
  ------------------
  |  |   64|      0|  ((slen) == (llen) && memcmp ((s), (literal), llen) == 0)
  |  |  ------------------
  |  |  |  Branch (64:4): [True: 0, False: 0]
  |  |  |  Branch (64:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   91|      0|	  features->have_aesni = 1;
   92|      0|	else if (MATCH (s, length, "sha_ni", 6))
  ------------------
  |  |   64|      0|  ((slen) == (llen) && memcmp ((s), (literal), llen) == 0)
  |  |  ------------------
  |  |  |  Branch (64:4): [True: 0, False: 0]
  |  |  |  Branch (64:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   93|      0|	  features->have_sha_ni = 1;
   94|      0|	else if (MATCH (s, length, "pclmul", 6))
  ------------------
  |  |   64|      0|  ((slen) == (llen) && memcmp ((s), (literal), llen) == 0)
  |  |  ------------------
  |  |  |  Branch (64:4): [True: 0, False: 0]
  |  |  |  Branch (64:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   95|      0|	  features->have_pclmul = 1;
   96|      0|	if (!sep)
  ------------------
  |  Branch (96:6): [True: 0, False: 0]
  ------------------
   97|      0|	  break;
   98|      0|	s = sep + 1;
   99|      0|      }
  100|      2|  else
  101|      2|    {
  102|      2|      uint32_t cpuid_data[4];
  103|      2|      _nettle_cpuid (0, cpuid_data);
  104|      2|      if (memcmp (cpuid_data + 1, "Genu" "ntel" "ineI", 12) == 0)
  ------------------
  |  Branch (104:11): [True: 0, False: 2]
  ------------------
  105|      0|	features->vendor = X86_INTEL;
  106|      2|      else if (memcmp (cpuid_data + 1, "Auth" "cAMD" "enti", 12) == 0)
  ------------------
  |  Branch (106:16): [True: 2, False: 0]
  ------------------
  107|      2|	features->vendor = X86_AMD;
  108|       |
  109|      2|      _nettle_cpuid (1, cpuid_data);
  110|      2|      if (cpuid_data[2] & 0x2)
  ------------------
  |  Branch (110:11): [True: 2, False: 0]
  ------------------
  111|      2|	features->have_pclmul = 1;
  112|      2|      if (cpuid_data[2] & 0x02000000)
  ------------------
  |  Branch (112:11): [True: 2, False: 0]
  ------------------
  113|      2|	features->have_aesni = 1;
  114|       |
  115|      2|      _nettle_cpuid (7, cpuid_data);
  116|      2|      if (cpuid_data[1] & 0x20000000)
  ------------------
  |  Branch (116:11): [True: 2, False: 0]
  ------------------
  117|      2|	features->have_sha_ni = 1;
  118|      2|    }
  119|      2|}

nettle_md4_init:
   61|    302|{
   62|       |  /* Same constants as for md5. */
   63|    302|  const uint32_t iv[_MD4_DIGEST_LENGTH] =
   64|    302|    {
   65|    302|      0x67452301,
   66|    302|      0xefcdab89,
   67|    302|      0x98badcfe,
   68|    302|      0x10325476,
   69|    302|    };
   70|    302|  memcpy(ctx->state, iv, sizeof(ctx->state));
   71|       |  
   72|    302|  ctx->count = 0;
   73|    302|  ctx->index = 0;
   74|    302|}
nettle_md4_update:
   80|    151|{
   81|    151|  MD_UPDATE(ctx, length, data, md4_compress, ctx->count++);
  ------------------
  |  |  182|    151|  do {									\
  |  |  183|    151|    if ((ctx)->index)							\
  |  |  ------------------
  |  |  |  Branch (183:9): [True: 0, False: 151]
  |  |  ------------------
  |  |  184|    151|      {									\
  |  |  185|      0|	/* Try to fill partial block */					\
  |  |  186|      0|	unsigned __md_left = sizeof((ctx)->block) - (ctx)->index;	\
  |  |  187|      0|	if ((length) < __md_left)					\
  |  |  ------------------
  |  |  |  Branch (187:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  188|      0|	  {								\
  |  |  189|      0|	    memcpy((ctx)->block + (ctx)->index, (data), (length));	\
  |  |  190|      0|	    (ctx)->index += (length);					\
  |  |  191|      0|	    goto __md_done; /* Finished */				\
  |  |  192|      0|	  }								\
  |  |  193|      0|	else								\
  |  |  194|      0|	  {								\
  |  |  195|      0|	    memcpy((ctx)->block + (ctx)->index, (data), __md_left);	\
  |  |  196|      0|									\
  |  |  197|      0|	    f((ctx), (ctx)->block);					\
  |  |  198|      0|	    (incr);							\
  |  |  199|      0|									\
  |  |  200|      0|	    (data) += __md_left;					\
  |  |  201|      0|	    (length) -= __md_left;					\
  |  |  202|      0|	  }								\
  |  |  203|      0|      }									\
  |  |  204|    186|    while ((length) >= sizeof((ctx)->block))				\
  |  |  ------------------
  |  |  |  Branch (204:12): [True: 35, False: 151]
  |  |  ------------------
  |  |  205|    151|      {									\
  |  |  206|     35|	f((ctx), (data));						\
  |  |  207|     35|	(incr);								\
  |  |  208|     35|									\
  |  |  209|     35|	(data) += sizeof((ctx)->block);					\
  |  |  210|     35|	(length) -= sizeof((ctx)->block);				\
  |  |  211|     35|      }									\
  |  |  212|    151|    memcpy ((ctx)->block, (data), (length));				\
  |  |  213|    151|    (ctx)->index = (length);						\
  |  |  214|    151|  __md_done:								\
  |  |  215|    151|    ;									\
  |  |  216|    151|  } while (0)
  |  |  ------------------
  |  |  |  Branch (216:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
   82|    151|}
nettle_md4_digest:
   88|    151|{
   89|    151|  uint64_t bit_count;
   90|    151|  uint32_t data[MD4_DATA_LENGTH];
   91|    151|  unsigned i;
   92|       |
   93|    151|  assert(length <= MD4_DIGEST_SIZE);
   94|       |
   95|    151|  MD_PAD(ctx, 8, md4_compress);
  ------------------
  |  |  222|    151|  do {									\
  |  |  223|    151|    unsigned __md_i;							\
  |  |  224|    151|    __md_i = (ctx)->index;						\
  |  |  225|    151|									\
  |  |  226|    151|    /* Set the first char of padding to 0x80. This is safe since there	\
  |  |  227|    151|       is always at least one byte free */				\
  |  |  228|    151|									\
  |  |  229|    151|    assert(__md_i < sizeof((ctx)->block));				\
  |  |  230|    151|    (ctx)->block[__md_i++] = 0x80;					\
  |  |  231|    151|									\
  |  |  232|    151|    if (__md_i > (sizeof((ctx)->block) - (size)))			\
  |  |  ------------------
  |  |  |  Branch (232:9): [True: 6, False: 145]
  |  |  ------------------
  |  |  233|    151|      { /* No room for length in this block. Process it and		\
  |  |  234|      6|	   pad with another one */					\
  |  |  235|      6|	memset((ctx)->block + __md_i, 0, sizeof((ctx)->block) - __md_i); \
  |  |  236|      6|									\
  |  |  237|      6|	f((ctx), (ctx)->block);						\
  |  |  238|      6|	__md_i = 0;							\
  |  |  239|      6|      }									\
  |  |  240|    151|    memset((ctx)->block + __md_i, 0,					\
  |  |  241|    151|	   sizeof((ctx)->block) - (size) - __md_i);			\
  |  |  242|    151|									\
  |  |  243|    151|  } while (0)
  |  |  ------------------
  |  |  |  Branch (243:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
   96|  2.26k|  for (i = 0; i < MD4_DATA_LENGTH - 2; i++)
  ------------------
  |  |   50|  2.26k|#define MD4_DATA_LENGTH 16
  ------------------
  |  Branch (96:15): [True: 2.11k, False: 151]
  ------------------
   97|  2.11k|    data[i] = LE_READ_UINT32(ctx->block + 4*i);
  ------------------
  |  |  119|  2.26k|#define LE_READ_UINT32(p)			\
  |  |  120|  2.26k|(  (((uint32_t) (p)[3]) << 24)			\
  |  |  121|  2.26k| | (((uint32_t) (p)[2]) << 16)			\
  |  |  122|  2.26k| | (((uint32_t) (p)[1]) << 8)			\
  |  |  123|  2.26k| |  ((uint32_t) (p)[0]))
  ------------------
   98|       |
   99|       |  /* There are 512 = 2^9 bits in one block 
  100|       |   * Little-endian order => Least significant word first */
  101|    151|  bit_count = (ctx->count << 9) | (ctx->index << 3);
  102|    151|  data[MD4_DATA_LENGTH-2] = bit_count;
  ------------------
  |  |   50|    151|#define MD4_DATA_LENGTH 16
  ------------------
  103|    151|  data[MD4_DATA_LENGTH-1] = bit_count >> 32;
  ------------------
  |  |   50|    151|#define MD4_DATA_LENGTH 16
  ------------------
  104|    151|  md4_transform(ctx->state, data);
  105|       |
  106|    151|  _nettle_write_le32(length, digest, ctx->state);
  107|    151|  md4_init(ctx);
  ------------------
  |  |   44|    151|#define md4_init nettle_md4_init
  ------------------
  108|    151|}
md4.c:md4_transform:
  122|    192|{
  123|    192|  uint32_t a, b, c, d;
  124|    192|  a = digest[0];
  125|    192|  b = digest[1];
  126|    192|  c = digest[2];
  127|    192|  d = digest[3];
  128|       |
  129|    192|  ROUND(F, a, b, c, d, data[ 0], 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  129|    192|  ROUND(F, a, b, c, d, data[ 0], 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  130|    192|  ROUND(F, d, a, b, c, data[ 1], 7);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  130|    192|  ROUND(F, d, a, b, c, data[ 1], 7);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  131|    192|  ROUND(F, c, d, a, b, data[ 2], 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  131|    192|  ROUND(F, c, d, a, b, data[ 2], 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  132|    192|  ROUND(F, b, c, d, a, data[ 3], 19);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  132|    192|  ROUND(F, b, c, d, a, data[ 3], 19);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  133|    192|  ROUND(F, a, b, c, d, data[ 4], 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  133|    192|  ROUND(F, a, b, c, d, data[ 4], 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  134|    192|  ROUND(F, d, a, b, c, data[ 5], 7);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  134|    192|  ROUND(F, d, a, b, c, data[ 5], 7);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  135|    192|  ROUND(F, c, d, a, b, data[ 6], 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  135|    192|  ROUND(F, c, d, a, b, data[ 6], 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  136|    192|  ROUND(F, b, c, d, a, data[ 7], 19);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  136|    192|  ROUND(F, b, c, d, a, data[ 7], 19);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  137|    192|  ROUND(F, a, b, c, d, data[ 8], 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  137|    192|  ROUND(F, a, b, c, d, data[ 8], 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  138|    192|  ROUND(F, d, a, b, c, data[ 9], 7);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  138|    192|  ROUND(F, d, a, b, c, data[ 9], 7);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  139|    192|  ROUND(F, c, d, a, b, data[10], 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  139|    192|  ROUND(F, c, d, a, b, data[10], 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  140|    192|  ROUND(F, b, c, d, a, data[11], 19);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  140|    192|  ROUND(F, b, c, d, a, data[11], 19);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  141|    192|  ROUND(F, a, b, c, d, data[12], 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  141|    192|  ROUND(F, a, b, c, d, data[12], 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  142|    192|  ROUND(F, d, a, b, c, data[13], 7);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  142|    192|  ROUND(F, d, a, b, c, data[13], 7);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  143|    192|  ROUND(F, c, d, a, b, data[14], 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  143|    192|  ROUND(F, c, d, a, b, data[14], 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  144|    192|  ROUND(F, b, c, d, a, data[15], 19);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  144|    192|  ROUND(F, b, c, d, a, data[15], 19);
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    192|#define F(x, y, z) (((y) & (x)) | ((z) & ~(x)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  145|       |
  146|    192|  ROUND(G, a, b, c, d, data[ 0] + 0x5a827999, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  146|    192|  ROUND(G, a, b, c, d, data[ 0] + 0x5a827999, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  147|    192|  ROUND(G, d, a, b, c, data[ 4] + 0x5a827999, 5);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  147|    192|  ROUND(G, d, a, b, c, data[ 4] + 0x5a827999, 5);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  148|    192|  ROUND(G, c, d, a, b, data[ 8] + 0x5a827999, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  148|    192|  ROUND(G, c, d, a, b, data[ 8] + 0x5a827999, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  149|    192|  ROUND(G, b, c, d, a, data[12] + 0x5a827999, 13);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  149|    192|  ROUND(G, b, c, d, a, data[12] + 0x5a827999, 13);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  150|    192|  ROUND(G, a, b, c, d, data[ 1] + 0x5a827999, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  150|    192|  ROUND(G, a, b, c, d, data[ 1] + 0x5a827999, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  151|    192|  ROUND(G, d, a, b, c, data[ 5] + 0x5a827999, 5);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  151|    192|  ROUND(G, d, a, b, c, data[ 5] + 0x5a827999, 5);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  152|    192|  ROUND(G, c, d, a, b, data[ 9] + 0x5a827999, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  152|    192|  ROUND(G, c, d, a, b, data[ 9] + 0x5a827999, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  153|    192|  ROUND(G, b, c, d, a, data[13] + 0x5a827999, 13);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  153|    192|  ROUND(G, b, c, d, a, data[13] + 0x5a827999, 13);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  154|    192|  ROUND(G, a, b, c, d, data[ 2] + 0x5a827999, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  154|    192|  ROUND(G, a, b, c, d, data[ 2] + 0x5a827999, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  155|    192|  ROUND(G, d, a, b, c, data[ 6] + 0x5a827999, 5);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  155|    192|  ROUND(G, d, a, b, c, data[ 6] + 0x5a827999, 5);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  156|    192|  ROUND(G, c, d, a, b, data[10] + 0x5a827999, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  156|    192|  ROUND(G, c, d, a, b, data[10] + 0x5a827999, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  157|    192|  ROUND(G, b, c, d, a, data[14] + 0x5a827999, 13);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  157|    192|  ROUND(G, b, c, d, a, data[14] + 0x5a827999, 13);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  158|    192|  ROUND(G, a, b, c, d, data[ 3] + 0x5a827999, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  158|    192|  ROUND(G, a, b, c, d, data[ 3] + 0x5a827999, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|    192|  ROUND(G, d, a, b, c, data[ 7] + 0x5a827999, 5);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  159|    192|  ROUND(G, d, a, b, c, data[ 7] + 0x5a827999, 5);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  160|    192|  ROUND(G, c, d, a, b, data[11] + 0x5a827999, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  160|    192|  ROUND(G, c, d, a, b, data[11] + 0x5a827999, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  161|    192|  ROUND(G, b, c, d, a, data[15] + 0x5a827999, 13);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  161|    192|  ROUND(G, b, c, d, a, data[15] + 0x5a827999, 13);
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    192|#define G(x, y, z) (((y) & (x)) | ((z) & (x)) | ((y) & (z)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  162|       |
  163|    192|  ROUND(H, a, b, c, d, data[ 0] + 0x6ed9eba1, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  163|    192|  ROUND(H, a, b, c, d, data[ 0] + 0x6ed9eba1, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  164|    192|  ROUND(H, d, a, b, c, data[ 8] + 0x6ed9eba1, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  164|    192|  ROUND(H, d, a, b, c, data[ 8] + 0x6ed9eba1, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  165|    192|  ROUND(H, c, d, a, b, data[ 4] + 0x6ed9eba1, 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  165|    192|  ROUND(H, c, d, a, b, data[ 4] + 0x6ed9eba1, 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  166|    192|  ROUND(H, b, c, d, a, data[12] + 0x6ed9eba1, 15);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  166|    192|  ROUND(H, b, c, d, a, data[12] + 0x6ed9eba1, 15);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  167|    192|  ROUND(H, a, b, c, d, data[ 2] + 0x6ed9eba1, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  167|    192|  ROUND(H, a, b, c, d, data[ 2] + 0x6ed9eba1, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  168|    192|  ROUND(H, d, a, b, c, data[10] + 0x6ed9eba1, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  168|    192|  ROUND(H, d, a, b, c, data[10] + 0x6ed9eba1, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  169|    192|  ROUND(H, c, d, a, b, data[ 6] + 0x6ed9eba1, 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  169|    192|  ROUND(H, c, d, a, b, data[ 6] + 0x6ed9eba1, 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  170|    192|  ROUND(H, b, c, d, a, data[14] + 0x6ed9eba1, 15);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  170|    192|  ROUND(H, b, c, d, a, data[14] + 0x6ed9eba1, 15);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  171|    192|  ROUND(H, a, b, c, d, data[ 1] + 0x6ed9eba1, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  171|    192|  ROUND(H, a, b, c, d, data[ 1] + 0x6ed9eba1, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  172|    192|  ROUND(H, d, a, b, c, data[ 9] + 0x6ed9eba1, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  172|    192|  ROUND(H, d, a, b, c, data[ 9] + 0x6ed9eba1, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  173|    192|  ROUND(H, c, d, a, b, data[ 5] + 0x6ed9eba1, 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  173|    192|  ROUND(H, c, d, a, b, data[ 5] + 0x6ed9eba1, 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  174|    192|  ROUND(H, b, c, d, a, data[13] + 0x6ed9eba1, 15);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  174|    192|  ROUND(H, b, c, d, a, data[13] + 0x6ed9eba1, 15);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  175|    192|  ROUND(H, a, b, c, d, data[ 3] + 0x6ed9eba1, 3);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  175|    192|  ROUND(H, a, b, c, d, data[ 3] + 0x6ed9eba1, 3);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  176|    192|  ROUND(H, d, a, b, c, data[11] + 0x6ed9eba1, 9);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  176|    192|  ROUND(H, d, a, b, c, data[11] + 0x6ed9eba1, 9);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  177|    192|  ROUND(H, c, d, a, b, data[ 7] + 0x6ed9eba1, 11);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  177|    192|  ROUND(H, c, d, a, b, data[ 7] + 0x6ed9eba1, 11);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  178|    192|  ROUND(H, b, c, d, a, data[15] + 0x6ed9eba1, 15);
  ------------------
  |  |  115|    192|#define ROUND(f, w, x, y, z, data, s) \
  |  |  116|    192|( w += f(x, y, z) + data,  w = w<<s | w>>(32-s) )
  |  |  ------------------
  |  |  |  |  178|    192|  ROUND(H, b, c, d, a, data[15] + 0x6ed9eba1, 15);
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|    192|#define H(x, y, z) ((x) ^ (y) ^ (z))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  179|       |
  180|    192|  digest[0] += a;
  181|    192|  digest[1] += b;
  182|    192|  digest[2] += c;
  183|    192|  digest[3] += d;
  184|    192|}
md4.c:md4_compress:
  188|     41|{
  189|     41|  uint32_t data[MD4_DATA_LENGTH];
  190|     41|  unsigned i;
  191|       |  
  192|       |  /* Endian independent conversion */
  193|    697|  for (i = 0; i<16; i++, block += 4)
  ------------------
  |  Branch (193:15): [True: 656, False: 41]
  ------------------
  194|    656|    data[i] = LE_READ_UINT32(block);
  ------------------
  |  |  119|    656|#define LE_READ_UINT32(p)			\
  |  |  120|    656|(  (((uint32_t) (p)[3]) << 24)			\
  |  |  121|    656| | (((uint32_t) (p)[2]) << 16)			\
  |  |  122|    656| | (((uint32_t) (p)[1]) << 8)			\
  |  |  123|    656| |  ((uint32_t) (p)[0]))
  ------------------
  195|       |
  196|     41|  md4_transform(ctx->state, data);
  197|     41|}

mp_get_memory_functions:
  326|      4|{
  327|      4|  if (alloc_func)
  ------------------
  |  Branch (327:7): [True: 4, False: 0]
  ------------------
  328|      4|    *alloc_func = gmp_allocate_func;
  329|       |
  330|      4|  if (realloc_func)
  ------------------
  |  Branch (330:7): [True: 4, False: 0]
  ------------------
  331|      4|    *realloc_func = gmp_reallocate_func;
  332|       |
  333|      4|  if (free_func)
  ------------------
  |  Branch (333:7): [True: 4, False: 0]
  ------------------
  334|      4|    *free_func = gmp_free_func;
  335|      4|}
mp_set_memory_functions:
  341|      4|{
  342|      4|  if (!alloc_func)
  ------------------
  |  Branch (342:7): [True: 4, False: 0]
  ------------------
  343|      4|    alloc_func = gmp_default_alloc;
  344|      4|  if (!realloc_func)
  ------------------
  |  Branch (344:7): [True: 2, False: 2]
  ------------------
  345|      2|    realloc_func = gmp_default_realloc;
  346|      4|  if (!free_func)
  ------------------
  |  Branch (346:7): [True: 2, False: 2]
  ------------------
  347|      2|    free_func = gmp_default_free;
  348|       |
  349|      4|  gmp_allocate_func = alloc_func;
  350|      4|  gmp_reallocate_func = realloc_func;
  351|      4|  gmp_free_func = free_func;
  352|      4|}

_nettle_write_le32:
   45|    151|{
   46|    151|  size_t i;
   47|    151|  size_t words;
   48|    151|  unsigned leftover;
   49|       |  
   50|    151|  words = length / 4;
   51|    151|  leftover = length % 4;
   52|       |
   53|    755|  for (i = 0; i < words; i++, dst += 4)
  ------------------
  |  Branch (53:15): [True: 604, False: 151]
  ------------------
   54|    604|    LE_WRITE_UINT32(dst, src[i]);
  ------------------
  |  |  125|    604|#define LE_WRITE_UINT32(p, i)			\
  |  |  126|    604|do {						\
  |  |  127|    604|  (p)[3] = ((i) >> 24) & 0xff;			\
  |  |  128|    604|  (p)[2] = ((i) >> 16) & 0xff;			\
  |  |  129|    604|  (p)[1] = ((i) >> 8) & 0xff;			\
  |  |  130|    604|  (p)[0] = (i) & 0xff;				\
  |  |  131|    604|} while(0)
  |  |  ------------------
  |  |  |  Branch (131:9): [Folded - Ignored]
  |  |  ------------------
  ------------------
   55|       |
   56|    151|  if (leftover)
  ------------------
  |  Branch (56:7): [True: 0, False: 151]
  ------------------
   57|      0|    {
   58|      0|      uint32_t word;
   59|       |      
   60|      0|      word = src[i];
   61|       |
   62|      0|      do
   63|      0|	{
   64|      0|	  *dst++ = word & 0xff;
   65|      0|	  word >>= 8;
   66|      0|	}
   67|      0|      while (--leftover);
  ------------------
  |  Branch (67:14): [True: 0, False: 0]
  ------------------
   68|      0|    }
   69|    151|}

LLVMFuzzerTestOneInput:
   76|    371|{
   77|    371|	if (size > 128) // same as max_len = ... in .options file
  ------------------
  |  Branch (77:6): [True: 15, False: 356]
  ------------------
   78|     15|		return 0;
   79|       |
   80|       |	//	CLOSE_STDERR
   81|       |
   82|    356|	struct ntlmdata *ntlm = (struct ntlmdata *) calloc(1, sizeof(struct ntlmdata));
   83|    356|	char *data0 = (char *) malloc(size + 4 + 1);
   84|    356|	bool ready;
   85|       |
   86|    356|	assert(ntlm && data0);
   87|       |
   88|    356|	memcpy(data0, "NTLM", 4);
   89|    356|	memcpy(data0 + 4, data, size);
   90|    356|	data0[size + 4] = 0;
   91|       |
   92|    356|	if (ntlm_input(ntlm, data0))
  ------------------
  |  Branch (92:6): [True: 161, False: 195]
  ------------------
   93|    161|		free(ntlm_output(ntlm, data0 + 4, data0 + 4, &ready));
   94|       |
   95|    356|	free(data0);
   96|    356|	free(ntlm);
   97|       |
   98|       |//	RESTORE_STDERR
   99|       |
  100|    356|	return 0;
  101|    371|}

rpl_free:
   33|  2.01k|{
   34|       |# if defined __GNUC__ && !defined __clang__
   35|       |  /* An invalid GCC optimization
   36|       |     <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396>
   37|       |     would optimize away the assignments in the code below, when link-time
   38|       |     optimization (LTO) is enabled.  Make the code more complicated, so that
   39|       |     GCC does not grok how to optimize it.  */
   40|       |  int err[2];
   41|       |  err[0] = errno;
   42|       |  err[1] = errno;
   43|       |  errno = 0;
   44|       |  free (p);
   45|       |  errno = err[errno == 0];
   46|       |# else
   47|  2.01k|  int err = errno;
   48|  2.01k|  free (p);
   49|  2.01k|  errno = err;
   50|  2.01k|# endif
   51|  2.01k|}

xmalloc:
   44|    161|{
   45|    161|  return nonnull (malloc (s));
   46|    161|}
xmalloc.c:nonnull:
   34|    161|{
   35|    161|  if (!p)
  ------------------
  |  Branch (35:7): [True: 0, False: 161]
  ------------------
   36|      0|    xalloc_die ();
   37|    161|  return p;
   38|    161|}

c_isdigit:
  232|      4|{
  233|      4|  switch (c)
  234|      4|    {
  235|      4|    _C_CTYPE_DIGIT:
  ------------------
  |  |  133|      4|   case '0': case '1': case '2': case '3': \
  |  |  ------------------
  |  |  |  Branch (133:4): [True: 0, False: 4]
  |  |  |  Branch (133:14): [True: 4, False: 0]
  |  |  |  Branch (133:24): [True: 0, False: 4]
  |  |  |  Branch (133:34): [True: 0, False: 4]
  |  |  ------------------
  |  |  134|      4|   case '4': case '5': case '6': case '7': \
  |  |  ------------------
  |  |  |  Branch (134:4): [True: 0, False: 4]
  |  |  |  Branch (134:14): [True: 0, False: 4]
  |  |  |  Branch (134:24): [True: 0, False: 4]
  |  |  |  Branch (134:34): [True: 0, False: 4]
  |  |  ------------------
  |  |  135|      4|   case '8': case '9'
  |  |  ------------------
  |  |  |  Branch (135:4): [True: 0, False: 4]
  |  |  ------------------
  ------------------
  236|      4|      return true;
  237|      0|    default:
  ------------------
  |  Branch (237:5): [True: 0, False: 4]
  ------------------
  238|      0|      return false;
  239|      4|    }
  240|      4|}
c_isspace:
  299|  7.27k|{
  300|  7.27k|  switch (c)
  301|  7.27k|    {
  302|  1.00k|    case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':
  ------------------
  |  Branch (302:5): [True: 228, False: 7.04k]
  |  Branch (302:15): [True: 138, False: 7.13k]
  |  Branch (302:26): [True: 232, False: 7.03k]
  |  Branch (302:37): [True: 118, False: 7.15k]
  |  Branch (302:48): [True: 162, False: 7.10k]
  |  Branch (302:59): [True: 126, False: 7.14k]
  ------------------
  303|  1.00k|      return true;
  304|  6.26k|    default:
  ------------------
  |  Branch (304:5): [True: 6.26k, False: 1.00k]
  ------------------
  305|  6.26k|      return false;
  306|  7.27k|    }
  307|  7.27k|}
c_toupper:
  348|  1.41k|{
  349|  1.41k|  switch (c)
  350|  1.41k|    {
  351|    428|    _C_CTYPE_LOWER:
  ------------------
  |  |  136|      0|#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0)
  |  |  ------------------
  |  |  |  |  120|     91|   _C_CTYPE_LOWER_A_THRU_F_N(N): \
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|     74|   case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:4): [True: 12, False: 1.39k]
  |  |  |  |  |  |  |  Branch (117:20): [True: 37, False: 1.37k]
  |  |  |  |  |  |  |  Branch (117:36): [True: 8, False: 1.40k]
  |  |  |  |  |  |  |  Branch (117:52): [True: 17, False: 1.39k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|     91|   case 'e' + (N): case 'f' + (N)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (118:4): [True: 15, False: 1.39k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (120:4): [True: 2, False: 1.40k]
  |  |  |  |  ------------------
  |  |  |  |  121|    144|   case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:4): [True: 2, False: 1.40k]
  |  |  |  |  |  Branch (121:20): [True: 24, False: 1.38k]
  |  |  |  |  |  Branch (121:36): [True: 16, False: 1.39k]
  |  |  |  |  |  Branch (121:52): [True: 11, False: 1.39k]
  |  |  |  |  ------------------
  |  |  |  |  122|    213|   case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (122:4): [True: 24, False: 1.38k]
  |  |  |  |  |  Branch (122:20): [True: 28, False: 1.38k]
  |  |  |  |  |  Branch (122:36): [True: 6, False: 1.40k]
  |  |  |  |  |  Branch (122:52): [True: 11, False: 1.39k]
  |  |  |  |  ------------------
  |  |  |  |  123|    307|   case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:4): [True: 32, False: 1.37k]
  |  |  |  |  |  Branch (123:20): [True: 11, False: 1.39k]
  |  |  |  |  |  Branch (123:36): [True: 3, False: 1.40k]
  |  |  |  |  |  Branch (123:52): [True: 48, False: 1.36k]
  |  |  |  |  ------------------
  |  |  |  |  124|    372|   case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (124:4): [True: 23, False: 1.38k]
  |  |  |  |  |  Branch (124:20): [True: 24, False: 1.38k]
  |  |  |  |  |  Branch (124:36): [True: 7, False: 1.40k]
  |  |  |  |  |  Branch (124:52): [True: 11, False: 1.39k]
  |  |  |  |  ------------------
  |  |  |  |  125|    428|   case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (125:4): [True: 9, False: 1.40k]
  |  |  |  |  |  Branch (125:20): [True: 15, False: 1.39k]
  |  |  |  |  |  Branch (125:36): [True: 5, False: 1.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  352|    428|      return c - 'a' + 'A';
  353|    982|    default:
  ------------------
  |  Branch (353:5): [True: 982, False: 428]
  ------------------
  354|    982|      return c;
  355|  1.41k|    }
  356|  1.41k|}

ntlm_input:
   97|    356|{
   98|    356|  if (0 != strncmp (header, "NTLM", 4))
  ------------------
  |  Branch (98:7): [True: 0, False: 356]
  ------------------
   99|      0|    return false;
  100|       |
  101|    356|  header += 4;
  102|    606|  while (*header && c_isspace(*header))
  ------------------
  |  Branch (102:10): [True: 596, False: 10]
  |  Branch (102:21): [True: 250, False: 346]
  ------------------
  103|    250|    header++;
  104|       |
  105|    356|  if (*header)
  ------------------
  |  Branch (105:7): [True: 346, False: 10]
  ------------------
  106|    346|    {
  107|       |      /* We got a type-2 message here:
  108|       |
  109|       |         Index   Description         Content
  110|       |         0       NTLMSSP Signature   Null-terminated ASCII "NTLMSSP"
  111|       |                                     (0x4e544c4d53535000)
  112|       |         8       NTLM Message Type   long (0x02000000)
  113|       |         12      Target Name         security buffer(*)
  114|       |         20      Flags               long
  115|       |         24      Challenge           8 bytes
  116|       |         (32)    Context (optional)  8 bytes (two consecutive longs)
  117|       |         (40)    Target Information  (optional) security buffer(*)
  118|       |         32 (48) start of data block
  119|       |      */
  120|    346|      ssize_t size;
  121|    346|      char buffer[48]; // decode 48 bytes needs ((48 + 2) / 3) * 4 + 1 bytes
  122|       |
  123|    346|      DEBUGP (("Received a type-2 NTLM message.\n"));
  ------------------
  |  |  129|    346|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|    346|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|    346|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 346]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  124|       |
  125|    346|      size = wget_base64_decode (header, buffer, sizeof (buffer));
  126|    346|      if (size < 0)
  ------------------
  |  Branch (126:11): [True: 195, False: 151]
  ------------------
  127|    195|        return false;           /* malformed base64 from server */
  128|       |
  129|    151|      ntlm->state = NTLMSTATE_TYPE2; /* we got a type-2 */
  130|       |
  131|    151|      if ((size_t) size >= sizeof (buffer))
  ------------------
  |  Branch (131:11): [True: 16, False: 135]
  ------------------
  132|       |        /* the nonce of interest is index [24 .. 31], 8 bytes */
  133|     16|        memcpy (ntlm->nonce, &buffer[24], 8);
  134|       |
  135|       |      /* at index decimal 20, there's a 32bit NTLM flag field */
  136|    151|    }
  137|     10|  else
  138|     10|    {
  139|     10|      if (ntlm->state == NTLMSTATE_LAST)
  ------------------
  |  Branch (139:11): [True: 0, False: 10]
  ------------------
  140|      0|        {
  141|      0|          DEBUGP (("NTLM auth restarted.\n"));
  ------------------
  |  |  129|      0|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|      0|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  142|       |          /* no return, continue */
  143|      0|        }
  144|     10|      else if (ntlm->state == NTLMSTATE_TYPE3)
  ------------------
  |  Branch (144:16): [True: 0, False: 10]
  ------------------
  145|      0|        {
  146|      0|          DEBUGP (("NTLM handshake rejected.\n"));
  ------------------
  |  |  129|      0|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|      0|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  147|      0|          ntlm->state = NTLMSTATE_NONE;
  148|      0|          return false;
  149|      0|        }
  150|     10|      else if (ntlm->state >= NTLMSTATE_TYPE1)
  ------------------
  |  Branch (150:16): [True: 0, False: 10]
  ------------------
  151|      0|        {
  152|      0|          DEBUGP (("Unexpected empty NTLM message.\n"));
  ------------------
  |  |  129|      0|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|      0|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  153|      0|          return false; /* this is an error */
  154|      0|        }
  155|       |
  156|     10|      DEBUGP (("Empty NTLM message, (re)starting transaction.\n"));
  ------------------
  |  |  129|     10|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|     10|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|     10|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 10]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  157|     10|      ntlm->state = NTLMSTATE_TYPE1; /* we should sent away a type-1 */
  158|     10|    }
  159|       |
  160|    161|  return true;
  161|    356|}
ntlm_output:
  348|    161|{
  349|    161|  const char *domain = ""; /* empty */
  350|    161|  const char *host = ""; /* empty */
  351|    161|  size_t domlen = strlen(domain);
  352|    161|  size_t hostlen = strlen(host);
  353|    161|  size_t hostoff; /* host name offset */
  354|    161|  size_t domoff;  /* domain name offset */
  355|    161|  size_t size;
  356|    161|  char ntlmbuf[256]; /* enough, unless the host/domain is very long */
  357|       |
  358|       |  /* point to the address of the pointer that holds the string to sent to the
  359|       |     server, which is for a plain host or for a HTTP proxy */
  360|    161|  char *output = NULL;
  361|       |
  362|    161|  *ready = false;
  363|       |
  364|       |  /* not set means empty */
  365|    161|  if(!user)
  ------------------
  |  Branch (365:6): [True: 0, False: 161]
  ------------------
  366|      0|    user="";
  367|       |
  368|    161|  if(!passwd)
  ------------------
  |  Branch (368:6): [True: 0, False: 161]
  ------------------
  369|      0|    passwd="";
  370|       |
  371|    161|  switch(ntlm->state) {
  ------------------
  |  Branch (371:10): [True: 0, False: 161]
  ------------------
  372|     10|  case NTLMSTATE_TYPE1:
  ------------------
  |  Branch (372:3): [True: 10, False: 151]
  ------------------
  373|     10|  case NTLMSTATE_NONE:
  ------------------
  |  Branch (373:3): [True: 0, False: 161]
  ------------------
  374|     10|  case NTLMSTATE_LAST:
  ------------------
  |  Branch (374:3): [True: 0, False: 161]
  ------------------
  375|     10|    hostoff = 32;
  376|     10|    domoff = hostoff + hostlen;
  377|       |
  378|     10|    DEBUGP (("Creating a type-1 NTLM message.\n"));
  ------------------
  |  |  129|     10|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|     10|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|     10|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 10]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  379|       |
  380|       |    /* Create and send a type-1 message:
  381|       |
  382|       |    Index Description          Content
  383|       |    0     NTLMSSP Signature    Null-terminated ASCII "NTLMSSP"
  384|       |                               (0x4e544c4d53535000)
  385|       |    8     NTLM Message Type    long (0x01000000)
  386|       |    12    Flags                long
  387|       |    16    Supplied Domain      security buffer(*)
  388|       |    24    Supplied Workstation security buffer(*)
  389|       |    32    start of data block
  390|       |
  391|       |    */
  392|       |
  393|     10|    snprintf (ntlmbuf, sizeof(ntlmbuf), "NTLMSSP%c"
  394|     10|              "\x01%c%c%c" /* 32-bit type = 1 */
  395|     10|              "%c%c%c%c"   /* 32-bit NTLM flag field */
  396|     10|              "%c%c"  /* domain length */
  397|     10|              "%c%c"  /* domain allocated space */
  398|     10|              "%c%c"  /* domain name offset */
  399|     10|              "%c%c"  /* 2 zeroes */
  400|     10|              "%c%c"  /* host length */
  401|     10|              "%c%c"  /* host allocated space */
  402|     10|              "%c%c"  /* host name offset */
  403|     10|              "%c%c"  /* 2 zeroes */
  404|     10|              "%s"   /* host name */
  405|     10|              "%s",  /* domain string */
  406|     10|              0,     /* trailing zero */
  407|     10|              0,0,0, /* part of type-1 long */
  408|       |
  409|     10|              LONGQUARTET(
  ------------------
  |  |  341|     10|#define LONGQUARTET(x) ((x) & 0xff), (((x) >> 8)&0xff), \
  |  |  342|     10|  (((x) >>16)&0xff), ((x)>>24)
  ------------------
  410|     10|                NTLMFLAG_NEGOTIATE_OEM|      /*   2 */
  411|     10|                NTLMFLAG_NEGOTIATE_NTLM_KEY  /* 200 */
  412|       |                /* equals 0x0202 */
  413|     10|                ),
  414|     10|              SHORTPAIR(domlen),
  ------------------
  |  |  340|     10|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  415|     10|              SHORTPAIR(domlen),
  ------------------
  |  |  340|     10|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  416|     10|              SHORTPAIR(domoff),
  ------------------
  |  |  340|     10|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  417|     10|              0,0,
  418|     10|              SHORTPAIR(hostlen),
  ------------------
  |  |  340|     10|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  419|     10|              SHORTPAIR(hostlen),
  ------------------
  |  |  340|     10|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  420|     10|              SHORTPAIR(hostoff),
  ------------------
  |  |  340|     10|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  421|     10|              0,0,
  422|     10|              host, domain);
  423|       |
  424|       |    /* initial packet length */
  425|     10|    size = 32 + hostlen + domlen;
  426|       |
  427|     10|    output = xmalloc(5 + BASE64_LENGTH (size) + 1);
  ------------------
  |  |  141|     10|#define BASE64_LENGTH(len) (4 * (((len) + 2) / 3))
  ------------------
  428|     10|    memcpy(output, "NTLM ", 5);
  429|     10|    wget_base64_encode (ntlmbuf, size, output + 5);
  430|       |
  431|     10|    break;
  432|       |
  433|    151|  case NTLMSTATE_TYPE2:
  ------------------
  |  Branch (433:3): [True: 151, False: 10]
  ------------------
  434|       |    /* We received the type-2 already, create a type-3 message:
  435|       |
  436|       |    Index   Description            Content
  437|       |    0       NTLMSSP Signature      Null-terminated ASCII "NTLMSSP"
  438|       |                                   (0x4e544c4d53535000)
  439|       |    8       NTLM Message Type      long (0x03000000)
  440|       |    12      LM/LMv2 Response       security buffer(*)
  441|       |    20      NTLM/NTLMv2 Response   security buffer(*)
  442|       |    28      Domain Name            security buffer(*)
  443|       |    36      User Name              security buffer(*)
  444|       |    44      Workstation Name       security buffer(*)
  445|       |    (52)    Session Key (optional) security buffer(*)
  446|       |    (60)    Flags (optional)       long
  447|       |    52 (64) start of data block
  448|       |
  449|       |    */
  450|       |
  451|    151|  {
  452|    151|    size_t lmrespoff;
  453|    151|    size_t ntrespoff;
  454|    151|    size_t useroff;
  455|    151|    unsigned char lmresp[0x18]; /* fixed-size */
  456|    151|#ifdef USE_NTRESPONSES
  457|    151|    unsigned char ntresp[0x18]; /* fixed-size */
  458|    151|#endif
  459|    151|    const char *usr;
  460|    151|    size_t userlen;
  461|       |
  462|    151|    DEBUGP (("Creating a type-3 NTLM message.\n"));
  ------------------
  |  |  129|    151|#define DEBUGP(args) do { IF_DEBUG { debug_logprintf args; } } while (0)
  |  |  ------------------
  |  |  |  |  119|    151|# define IF_DEBUG if (UNLIKELY (opt.debug))
  |  |  |  |  ------------------
  |  |  |  |  |  |  108|    151|# define UNLIKELY(exp) __builtin_expect ((exp), 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (108:24): [True: 0, False: 151]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (129:71): [Folded - Ignored]
  |  |  ------------------
  ------------------
  463|       |
  464|    151|    usr = strchr(user, '\\');
  465|    151|    if(!usr)
  ------------------
  |  Branch (465:8): [True: 151, False: 0]
  ------------------
  466|    151|      usr = strchr(user, '/');
  467|       |
  468|    151|    if (usr) {
  ------------------
  |  Branch (468:9): [True: 17, False: 134]
  ------------------
  469|     17|      domain = user;
  470|     17|      domlen = (size_t) (usr - domain);
  471|     17|      usr++;
  472|     17|    }
  473|    134|    else
  474|    134|      usr = user;
  475|    151|    userlen = strlen(usr);
  476|       |
  477|    151|    mkhash(passwd, &ntlm->nonce[0], lmresp
  478|    151|#ifdef USE_NTRESPONSES
  479|    151|           , ntresp
  480|    151|#endif
  481|    151|      );
  482|       |
  483|    151|    domoff = 64; /* always */
  484|    151|    useroff = domoff + domlen;
  485|    151|    hostoff = useroff + userlen;
  486|    151|    lmrespoff = hostoff + hostlen;
  487|    151|    ntrespoff = lmrespoff + 0x18;
  488|       |
  489|       |    /* Create the big type-3 message binary blob */
  490|       |
  491|    151|    snprintf (ntlmbuf, sizeof (ntlmbuf),
  492|    151|              "NTLMSSP%c"
  493|    151|              "\x03%c%c%c" /* type-3, 32 bits */
  494|       |
  495|    151|              "%c%c%c%c" /* LanManager length + allocated space */
  496|    151|              "%c%c" /* LanManager offset */
  497|    151|              "%c%c" /* 2 zeroes */
  498|       |
  499|    151|              "%c%c" /* NT-response length */
  500|    151|              "%c%c" /* NT-response allocated space */
  501|    151|              "%c%c" /* NT-response offset */
  502|    151|              "%c%c" /* 2 zeroes */
  503|       |
  504|    151|              "%c%c" /* domain length */
  505|    151|              "%c%c" /* domain allocated space */
  506|    151|              "%c%c" /* domain name offset */
  507|    151|              "%c%c" /* 2 zeroes */
  508|       |
  509|    151|              "%c%c" /* user length */
  510|    151|              "%c%c" /* user allocated space */
  511|    151|              "%c%c" /* user offset */
  512|    151|              "%c%c" /* 2 zeroes */
  513|       |
  514|    151|              "%c%c" /* host length */
  515|    151|              "%c%c" /* host allocated space */
  516|    151|              "%c%c" /* host offset */
  517|    151|              "%c%c%c%c%c%c" /* 6 zeroes */
  518|       |
  519|    151|              "\xff\xff" /* message length */
  520|    151|              "%c%c" /* 2 zeroes */
  521|       |
  522|    151|              "\x01\x82" /* flags */
  523|    151|              "%c%c" /* 2 zeroes */
  524|       |
  525|       |              /* domain string */
  526|       |              /* user string */
  527|       |              /* host string */
  528|       |              /* LanManager response */
  529|       |              /* NT response */
  530|    151|              ,
  531|    151|              0, /* zero termination */
  532|    151|              0, 0, 0, /* type-3 long, the 24 upper bits */
  533|       |
  534|    151|              SHORTPAIR (0x18), /* LanManager response length, twice */
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  535|    151|              SHORTPAIR (0x18),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  536|    151|              SHORTPAIR (lmrespoff),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  537|    151|              0x0, 0x0,
  538|       |
  539|    151|#ifdef USE_NTRESPONSES
  540|    151|              SHORTPAIR (0x18), /* NT-response length, twice */
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  541|    151|              SHORTPAIR (0x18),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  542|       |#else
  543|       |              0x0, 0x0,
  544|       |              0x0, 0x0,
  545|       |#endif
  546|    151|              SHORTPAIR (ntrespoff),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  547|    151|              0x0, 0x0,
  548|       |
  549|    151|              SHORTPAIR (domlen),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  550|    151|              SHORTPAIR (domlen),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  551|    151|              SHORTPAIR (domoff),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  552|    151|              0x0, 0x0,
  553|       |
  554|    151|              SHORTPAIR (userlen),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  555|    151|              SHORTPAIR (userlen),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  556|    151|              SHORTPAIR (useroff),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  557|    151|              0x0, 0x0,
  558|       |
  559|    151|              SHORTPAIR (hostlen),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  560|    151|              SHORTPAIR (hostlen),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  561|    151|              SHORTPAIR (hostoff),
  ------------------
  |  |  340|    151|#define SHORTPAIR(x) (char) ((x) & 0xff), (char) ((x) >> 8)
  ------------------
  562|    151|              0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  563|       |
  564|    151|              0x0, 0x0,
  565|       |
  566|    151|              0x0, 0x0);
  567|       |
  568|       |    /* size is now 64 */
  569|    151|    size=64;
  570|    151|    ntlmbuf[62]=ntlmbuf[63]=0;
  571|       |
  572|       |    /* Make sure that the user and domain strings fit in the target buffer
  573|       |       before we copy them there. */
  574|    151|    if((size + userlen + domlen) >= sizeof(ntlmbuf))
  ------------------
  |  Branch (574:8): [True: 0, False: 151]
  ------------------
  575|      0|      return NULL;
  576|       |
  577|    151|    memcpy(&ntlmbuf[size], domain, domlen);
  578|    151|    size += domlen;
  579|       |
  580|    151|    memcpy(&ntlmbuf[size], usr, userlen);
  581|    151|    size += userlen;
  582|       |
  583|       |    /* we append the binary hashes to the end of the blob */
  584|    151|    if(size < (sizeof(ntlmbuf) - 0x18)) {
  ------------------
  |  Branch (584:8): [True: 151, False: 0]
  ------------------
  585|    151|      memcpy(&ntlmbuf[size], lmresp, 0x18);
  586|    151|      size += 0x18;
  587|    151|    }
  588|       |
  589|    151|#ifdef USE_NTRESPONSES
  590|    151|    if(size < (sizeof(ntlmbuf) - 0x18)) {
  ------------------
  |  Branch (590:8): [True: 151, False: 0]
  ------------------
  591|    151|      memcpy(&ntlmbuf[size], ntresp, 0x18);
  592|    151|      size += 0x18;
  593|    151|    }
  594|    151|#endif
  595|       |
  596|    151|    ntlmbuf[56] = (char) (size & 0xff);
  597|    151|    ntlmbuf[57] = (char) (size >> 8);
  598|       |
  599|       |    /* convert the binary blob into base64 */
  600|    151|    output = xmalloc(5 + BASE64_LENGTH (size) + 1);
  ------------------
  |  |  141|    151|#define BASE64_LENGTH(len) (4 * (((len) + 2) / 3))
  ------------------
  601|    151|    memcpy(output, "NTLM ", 5);
  602|    151|    wget_base64_encode (ntlmbuf, size, output + 5);
  603|       |
  604|    151|    ntlm->state = NTLMSTATE_TYPE3; /* we sent a type-3 */
  605|    151|    *ready = true;
  606|    151|  }
  607|      0|  break;
  608|       |
  609|      0|  case NTLMSTATE_TYPE3:
  ------------------
  |  Branch (609:3): [True: 0, False: 161]
  ------------------
  610|       |    /* connection is already authenticated,
  611|       |     * don't send a header in future requests */
  612|      0|    *ready = true;
  613|      0|    output = NULL;
  614|      0|    break;
  615|    161|  }
  616|       |
  617|    161|  return output;
  618|    161|}
http-ntlm.c:mkhash:
  253|    151|{
  254|    151|  unsigned char lmbuffer[21];
  255|    151|#ifdef USE_NTRESPONSES
  256|    151|  unsigned char ntbuffer[21];
  257|    151|#endif
  258|    151|  unsigned char pw[14];
  259|    151|  static const unsigned char magic[] = {
  260|    151|    0x4B, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25
  261|    151|  };
  262|    151|  size_t i, len = strlen(password);
  263|       |
  264|       |  /* make it fit at least 14 bytes */
  265|       |
  266|    151|  if (len > sizeof (pw))
  ------------------
  |  Branch (266:7): [True: 59, False: 92]
  ------------------
  267|     59|    len = sizeof (pw);
  268|       |
  269|  1.56k|  for (i = 0; i < len; i++)
  ------------------
  |  Branch (269:15): [True: 1.41k, False: 151]
  ------------------
  270|  1.41k|    pw[i] = (unsigned char) c_toupper (password[i]);
  271|       |
  272|    855|  for (; i < sizeof (pw); i++)
  ------------------
  |  Branch (272:10): [True: 704, False: 151]
  ------------------
  273|    704|    pw[i] = 0;
  274|       |
  275|    151|  {
  276|       |    /* create LanManager hashed password */
  277|    151|#ifdef HAVE_NETTLE
  278|    151|    struct des_ctx des;
  279|       |
  280|    151|    setup_des_key(pw, &des);
  281|    151|    nettle_des_encrypt(&des, 8, lmbuffer, magic);
  282|       |
  283|    151|    setup_des_key(pw + 7, &des);
  284|    151|    nettle_des_encrypt(&des, 8, lmbuffer + 8, magic);
  285|       |#else
  286|       |    DES_key_schedule ks;
  287|       |
  288|       |    setup_des_key(pw, DESKEY (ks));
  289|       |    DES_ecb_encrypt((DES_cblock *) magic, (DES_cblock *) lmbuffer,
  290|       |                    DESKEY (ks), DES_ENCRYPT);
  291|       |
  292|       |    setup_des_key(pw+7, DESKEY (ks));
  293|       |    DES_ecb_encrypt((DES_cblock *) magic, (DES_cblock *) (lmbuffer + 8),
  294|       |                    DESKEY (ks), DES_ENCRYPT);
  295|       |#endif
  296|       |
  297|    151|    memset(lmbuffer + 16, 0, 5);
  298|    151|  }
  299|       |  /* create LM responses */
  300|    151|  calc_resp(lmbuffer, nonce, lmresp);
  301|       |
  302|    151|#ifdef USE_NTRESPONSES
  303|    151|  {
  304|    151|#ifdef HAVE_NETTLE
  305|    151|    struct md4_ctx MD4;
  306|       |#else
  307|       |    MD4_CTX MD4;
  308|       |#endif
  309|       |
  310|    151|    unsigned char pw4[64];
  311|       |
  312|    151|    len = strlen (password);
  313|       |
  314|    151|    if (len > sizeof (pw4) / 2)
  ------------------
  |  Branch (314:9): [True: 31, False: 120]
  ------------------
  315|     31|      len = sizeof (pw4) / 2;
  316|       |
  317|  2.39k|    for (i = 0; i < len; i++) {
  ------------------
  |  Branch (317:17): [True: 2.24k, False: 151]
  ------------------
  318|  2.24k|      pw4[2 * i]     = (unsigned char) password[i];
  319|  2.24k|      pw4[2 * i + 1] = 0;
  320|  2.24k|    }
  321|       |
  322|    151|#ifdef HAVE_NETTLE
  323|    151|    nettle_md4_init(&MD4);
  324|    151|    nettle_md4_update(&MD4, (unsigned) (2 * len), pw4);
  325|    151|    nettle_md4_digest(&MD4, MD4_DIGEST_SIZE, ntbuffer);
  ------------------
  |  |   48|    151|#define MD4_DIGEST_SIZE 16
  ------------------
  326|       |#else
  327|       |    /* create NT hashed password */
  328|       |    MD4_Init(&MD4);
  329|       |    MD4_Update(&MD4, pw4, 2 * len);
  330|       |    MD4_Final(ntbuffer, &MD4);
  331|       |#endif
  332|       |
  333|    151|    memset(ntbuffer + 16, 0, 5);
  334|    151|  }
  335|       |
  336|    151|  calc_resp(ntbuffer, nonce, ntresp);
  337|    151|#endif
  338|    151|}
http-ntlm.c:setup_des_key:
  171|  1.20k|{
  172|  1.20k|  unsigned char key[8];
  173|       |
  174|  1.20k|  key[0] = key_56[0];
  175|  1.20k|  key[1] = ((key_56[0] << 7) & 0xFF) | (key_56[1] >> 1);
  176|  1.20k|  key[2] = ((key_56[1] << 6) & 0xFF) | (key_56[2] >> 2);
  177|  1.20k|  key[3] = ((key_56[2] << 5) & 0xFF) | (key_56[3] >> 3);
  178|  1.20k|  key[4] = ((key_56[3] << 4) & 0xFF) | (key_56[4] >> 4);
  179|  1.20k|  key[5] = ((key_56[4] << 3) & 0xFF) | (key_56[5] >> 5);
  180|  1.20k|  key[6] = ((key_56[5] << 2) & 0xFF) | (key_56[6] >> 6);
  181|  1.20k|  key[7] =  (key_56[6] << 1) & 0xFF;
  182|       |
  183|  1.20k|  nettle_des_set_key(des, key);
  184|  1.20k|}
http-ntlm.c:calc_resp:
  213|    302|{
  214|    302|#ifdef HAVE_NETTLE
  215|    302|  struct des_ctx des;
  216|       |
  217|    302|  setup_des_key(keys, &des);
  218|    302|  nettle_des_encrypt(&des, 8, results, plaintext);
  219|       |
  220|    302|  setup_des_key(keys + 7, &des);
  221|    302|  nettle_des_encrypt(&des, 8, results + 8, plaintext);
  222|       |
  223|    302|  setup_des_key(keys + 14, &des);
  224|    302|  nettle_des_encrypt(&des, 8, results + 16, plaintext);
  225|       |#else
  226|       |  DES_key_schedule ks;
  227|       |
  228|       |  setup_des_key(keys, DESKEY(ks));
  229|       |  DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) results,
  230|       |                  DESKEY(ks), DES_ENCRYPT);
  231|       |
  232|       |  setup_des_key(keys+7, DESKEY(ks));
  233|       |  DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) (results+8),
  234|       |                  DESKEY(ks), DES_ENCRYPT);
  235|       |
  236|       |  setup_des_key(keys+14, DESKEY(ks));
  237|       |  DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) (results+16),
  238|       |                  DESKEY(ks), DES_ENCRYPT);
  239|       |#endif
  240|    302|}

wget_base64_encode:
 2264|    161|{
 2265|       |  /* Conversion table.  */
 2266|    161|  static const char tbl[64] = {
 2267|    161|    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
 2268|    161|    'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
 2269|    161|    'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
 2270|    161|    'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'
 2271|    161|  };
 2272|       |  /* Access bytes in DATA as unsigned char, otherwise the shifts below
 2273|       |     don't work for data with MSB set. */
 2274|    161|  const unsigned char *s = data;
 2275|       |  /* Theoretical ANSI violation when length < 3. */
 2276|    161|  const unsigned char *end = (const unsigned char *) data + length - 2;
 2277|    161|  char *p = dest;
 2278|       |
 2279|       |  /* Transform the 3x8 bits to 4x6 bits, as required by base64.  */
 2280|  7.05k|  for (; s < end; s += 3)
  ------------------
  |  Branch (2280:10): [True: 6.89k, False: 161]
  ------------------
 2281|  6.89k|    {
 2282|  6.89k|      *p++ = tbl[s[0] >> 2];
 2283|  6.89k|      *p++ = tbl[((s[0] & 3) << 4) + (s[1] >> 4)];
 2284|  6.89k|      *p++ = tbl[((s[1] & 0xf) << 2) + (s[2] >> 6)];
 2285|  6.89k|      *p++ = tbl[s[2] & 0x3f];
 2286|  6.89k|    }
 2287|       |
 2288|       |  /* Pad the result if necessary...  */
 2289|    161|  switch (length % 3)
  ------------------
  |  Branch (2289:11): [True: 50, False: 111]
  ------------------
 2290|    161|    {
 2291|     36|    case 1:
  ------------------
  |  Branch (2291:5): [True: 36, False: 125]
  ------------------
 2292|     36|      *p++ = tbl[s[0] >> 2];
 2293|     36|      *p++ = tbl[(s[0] & 3) << 4];
 2294|     36|      *p++ = '=';
 2295|     36|      *p++ = '=';
 2296|     36|      break;
 2297|     75|    case 2:
  ------------------
  |  Branch (2297:5): [True: 75, False: 86]
  ------------------
 2298|     75|      *p++ = tbl[s[0] >> 2];
 2299|     75|      *p++ = tbl[((s[0] & 3) << 4) + (s[1] >> 4)];
 2300|     75|      *p++ = tbl[((s[1] & 0xf) << 2)];
 2301|     75|      *p++ = '=';
 2302|     75|      break;
 2303|    161|    }
 2304|       |  /* ...and zero-terminate it.  */
 2305|    161|  *p = '\0';
 2306|       |
 2307|    161|  return p - dest;
 2308|    161|}
wget_base64_decode:
 2332|    346|{
 2333|       |  /* Table of base64 values for first 128 characters.  Note that this
 2334|       |     assumes ASCII (but so does Wget in other places).  */
 2335|    346|  static const signed char base64_char_to_value[128] =
 2336|    346|    {
 2337|    346|      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  /*   0-  9 */
 2338|    346|      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  /*  10- 19 */
 2339|    346|      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  /*  20- 29 */
 2340|    346|      -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  /*  30- 39 */
 2341|    346|      -1,  -1,  -1,  62,  -1,  -1,  -1,  63,  52,  53,  /*  40- 49 */
 2342|    346|      54,  55,  56,  57,  58,  59,  60,  61,  -1,  -1,  /*  50- 59 */
 2343|    346|      -1,  -1,  -1,  -1,  -1,  0,   1,   2,   3,   4,   /*  60- 69 */
 2344|    346|      5,   6,   7,   8,   9,   10,  11,  12,  13,  14,  /*  70- 79 */
 2345|    346|      15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  /*  80- 89 */
 2346|    346|      25,  -1,  -1,  -1,  -1,  -1,  -1,  26,  27,  28,  /*  90- 99 */
 2347|    346|      29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  /* 100-109 */
 2348|    346|      39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  /* 110-119 */
 2349|    346|      49,  50,  51,  -1,  -1,  -1,  -1,  -1             /* 120-127 */
 2350|    346|    };
 2351|    346|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
 2352|    346|#define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
 2353|       |
 2354|    346|  const char *p = base64;
 2355|    346|  unsigned char *q = dest;
 2356|    346|  ssize_t n = 0;
 2357|       |
 2358|  1.64k|  while (1)
  ------------------
  |  Branch (2358:10): [Folded - Ignored]
  ------------------
 2359|  1.64k|    {
 2360|  1.64k|      unsigned char c;
 2361|  1.64k|      unsigned long value;
 2362|       |
 2363|       |      /* Process first byte of a quadruplet.  */
 2364|  1.64k|      NEXT_CHAR (c, p);
  ------------------
  |  | 2312|  1.88k|#define NEXT_CHAR(c, p) do {                    \
  |  | 2313|  1.88k|  c = (unsigned char) *p++;                     \
  |  | 2314|  1.88k|} while (c_isspace (c))
  |  |  ------------------
  |  |  |  Branch (2314:10): [True: 239, False: 1.64k]
  |  |  ------------------
  ------------------
 2365|  1.64k|      if (!c)
  ------------------
  |  Branch (2365:11): [True: 151, False: 1.49k]
  ------------------
 2366|    151|        break;
 2367|  1.49k|      if (c == '=' || !IS_BASE64 (c))
  ------------------
  |  | 2352|  1.49k|#define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2316|  2.98k|#define IS_ASCII(c) (((c) & 0x80) == 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2316:21): [True: 1.47k, False: 15]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2351|  1.47k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  |  |  ------------------
  |  |  |  Branch (2352:40): [True: 1.46k, False: 10]
  |  |  |  Branch (2352:74): [True: 0, False: 25]
  |  |  ------------------
  ------------------
  |  Branch (2367:11): [True: 3, False: 1.49k]
  ------------------
 2368|     28|        return -1;              /* illegal char while decoding base64 */
 2369|  1.46k|      value = BASE64_CHAR_TO_VALUE (c) << 18;
  ------------------
  |  | 2351|  1.46k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  ------------------
 2370|       |
 2371|       |      /* Process second byte of a quadruplet.  */
 2372|  1.46k|      NEXT_CHAR (c, p);
  ------------------
  |  | 2312|  1.62k|#define NEXT_CHAR(c, p) do {                    \
  |  | 2313|  1.62k|  c = (unsigned char) *p++;                     \
  |  | 2314|  1.62k|} while (c_isspace (c))
  |  |  ------------------
  |  |  |  Branch (2314:10): [True: 153, False: 1.46k]
  |  |  ------------------
  ------------------
 2373|  1.46k|      if (!c)
  ------------------
  |  Branch (2373:11): [True: 23, False: 1.44k]
  ------------------
 2374|     23|        return -1;              /* premature EOF while decoding base64 */
 2375|  1.44k|      if (c == '=' || !IS_BASE64 (c))
  ------------------
  |  | 2352|  1.44k|#define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2316|  2.88k|#define IS_ASCII(c) (((c) & 0x80) == 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2316:21): [True: 1.43k, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2351|  1.43k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  |  |  ------------------
  |  |  |  Branch (2352:40): [True: 1.42k, False: 7]
  |  |  |  Branch (2352:74): [True: 0, False: 18]
  |  |  ------------------
  ------------------
  |  Branch (2375:11): [True: 1, False: 1.44k]
  ------------------
 2376|     19|        return -1;              /* illegal char while decoding base64 */
 2377|  1.42k|      value |= BASE64_CHAR_TO_VALUE (c) << 12;
  ------------------
  |  | 2351|  1.42k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  ------------------
 2378|  1.42k|      if (size)
  ------------------
  |  Branch (2378:11): [True: 1.24k, False: 181]
  ------------------
 2379|  1.24k|        {
 2380|  1.24k|          *q++ = value >> 16;
 2381|  1.24k|          size--;
 2382|  1.24k|        }
 2383|  1.42k|      n++;
 2384|       |
 2385|       |      /* Process third byte of a quadruplet.  */
 2386|  1.42k|      NEXT_CHAR (c, p);
  ------------------
  |  | 2312|  1.55k|#define NEXT_CHAR(c, p) do {                    \
  |  | 2313|  1.55k|  c = (unsigned char) *p++;                     \
  |  | 2314|  1.55k|} while (c_isspace (c))
  |  |  ------------------
  |  |  |  Branch (2314:10): [True: 129, False: 1.42k]
  |  |  ------------------
  ------------------
 2387|  1.42k|      if (!c)
  ------------------
  |  Branch (2387:11): [True: 25, False: 1.40k]
  ------------------
 2388|     25|        return -1;              /* premature EOF while decoding base64 */
 2389|  1.40k|      if (!IS_BASE64 (c))
  ------------------
  |  | 2352|  1.40k|#define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2316|  2.80k|#define IS_ASCII(c) (((c) & 0x80) == 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2316:21): [True: 1.38k, False: 12]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2351|  1.38k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  |  |  ------------------
  |  |  |  Branch (2352:40): [True: 1.15k, False: 234]
  |  |  |  Branch (2352:74): [True: 225, False: 21]
  |  |  ------------------
  ------------------
 2390|     21|        return -1;              /* illegal char while decoding base64 */
 2391|       |
 2392|  1.38k|      if (c == '=')
  ------------------
  |  Branch (2392:11): [True: 225, False: 1.15k]
  ------------------
 2393|    225|        {
 2394|    225|          NEXT_CHAR (c, p);
  ------------------
  |  | 2312|    296|#define NEXT_CHAR(c, p) do {                    \
  |  | 2313|    296|  c = (unsigned char) *p++;                     \
  |  | 2314|    296|} while (c_isspace (c))
  |  |  ------------------
  |  |  |  Branch (2314:10): [True: 71, False: 225]
  |  |  ------------------
  ------------------
 2395|    225|          if (!c)
  ------------------
  |  Branch (2395:15): [True: 15, False: 210]
  ------------------
 2396|     15|            return -1;          /* premature EOF while decoding base64 */
 2397|    210|          if (c != '=')
  ------------------
  |  Branch (2397:15): [True: 18, False: 192]
  ------------------
 2398|     18|            return -1;          /* padding `=' expected but not found */
 2399|    192|          continue;
 2400|    210|        }
 2401|       |
 2402|  1.15k|      value |= BASE64_CHAR_TO_VALUE (c) << 6;
  ------------------
  |  | 2351|  1.15k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  ------------------
 2403|  1.15k|      if (size)
  ------------------
  |  Branch (2403:11): [True: 978, False: 177]
  ------------------
 2404|    978|        {
 2405|    978|          *q++ = 0xff & value >> 8;
 2406|    978|          size--;
 2407|    978|        }
 2408|  1.15k|      n++;
 2409|       |
 2410|       |      /* Process fourth byte of a quadruplet.  */
 2411|  1.15k|      NEXT_CHAR (c, p);
  ------------------
  |  | 2312|  1.31k|#define NEXT_CHAR(c, p) do {                    \
  |  | 2313|  1.31k|  c = (unsigned char) *p++;                     \
  |  | 2314|  1.31k|} while (c_isspace (c))
  |  |  ------------------
  |  |  |  Branch (2314:10): [True: 162, False: 1.15k]
  |  |  ------------------
  ------------------
 2412|  1.15k|      if (!c)
  ------------------
  |  Branch (2412:11): [True: 31, False: 1.12k]
  ------------------
 2413|     31|        return -1;              /* premature EOF while decoding base64 */
 2414|  1.12k|      if (c == '=')
  ------------------
  |  Branch (2414:11): [True: 88, False: 1.03k]
  ------------------
 2415|     88|        continue;
 2416|  1.03k|      if (!IS_BASE64 (c))
  ------------------
  |  | 2352|  1.03k|#define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2316|  2.07k|#define IS_ASCII(c) (((c) & 0x80) == 0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2316:21): [True: 1.02k, False: 8]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define IS_BASE64(c) ((IS_ASCII (c) && BASE64_CHAR_TO_VALUE (c) >= 0) || c == '=')
  |  |  ------------------
  |  |  |  | 2351|  1.02k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  |  |  ------------------
  |  |  |  Branch (2352:40): [True: 1.02k, False: 7]
  |  |  |  Branch (2352:74): [True: 0, False: 15]
  |  |  ------------------
  ------------------
 2417|     15|        return -1;              /* illegal char while decoding base64 */
 2418|       |
 2419|  1.02k|      value |= BASE64_CHAR_TO_VALUE (c);
  ------------------
  |  | 2351|  1.02k|#define BASE64_CHAR_TO_VALUE(c) ((int) base64_char_to_value[c])
  ------------------
 2420|  1.02k|      if (size)
  ------------------
  |  Branch (2420:11): [True: 858, False: 163]
  ------------------
 2421|    858|        {
 2422|    858|          *q++ = 0xff & value;
 2423|    858|          size--;
 2424|    858|        }
 2425|  1.02k|      n++;
 2426|  1.02k|    }
 2427|    151|#undef IS_BASE64
 2428|    151|#undef BASE64_CHAR_TO_VALUE
 2429|       |
 2430|    151|  return n;
 2431|    346|}

