
/*
 * Automatically generated by asn1_compiler.  Do not edit
 *
 * ASN.1 parser for authenticode_SpcPeImageData
 */
#include "asn1_ber_bytecode.h"
#include "authenticode_SpcPeImageData_asn1.h"

// clang-format off

enum authenticode_SpcPeImageData_actions {
	ACT_lc_spc_filename_obsolete = 0,
	NR__authenticode_SpcPeImageData_actions = 1
};

static const asn1_action_t authenticode_SpcPeImageData_action_table[NR__authenticode_SpcPeImageData_actions] = {
	[   0] = lc_spc_filename_obsolete,
};

static const asn1_action_enc_t authenticode_SpcPeImageData_action_table_enc[NR__authenticode_SpcPeImageData_actions] = {
	[   0] = lc_spc_filename_obsolete_enc,
};

static const unsigned char authenticode_SpcPeImageData_machine[] = {
	// SpcPeImageData
	[   0] = ASN1_OP_MATCH,
	[   1] = _tag(UNIV, CONS, SEQ),
	[   2] =  ASN1_OP_MATCH,		// flags
	[   3] =  _tag(UNIV, PRIM, BTS),
	// SpcLink
	[   4] =  ASN1_OP_MATCH_OR_SKIP,		// url
	[   5] =  _tagn(CONT, PRIM,  0),
	// SpcSerializedObject
	[   6] =  ASN1_OP_COND_MATCH_JUMP_OR_SKIP,		// moniker
	[   7] =  _tagn(CONT, CONS,  1),
	[   8] =  _jump_target(15),		// --> SpcSerializedObject
	[   9] =  ASN1_OP_COND_MATCH_JUMP_OR_SKIP,		// file
	[  10] =  _tagn(CONT, CONS,  2),
	[  11] =  _jump_target(21),
	[  12] =  ASN1_OP_COND_FAIL,
	[  13] = ASN1_OP_END_SEQ,
	[  14] = ASN1_OP_COMPLETE,

	// SpcUuid
	[  15] =  ASN1_OP_MATCH,
	[  16] =  _tag(UNIV, PRIM, OTS),
	[  17] =  ASN1_OP_MATCH,		// serializedData
	[  18] =  _tag(UNIV, PRIM, OTS),
	[  19] = ASN1_OP_END_SEQ,
	[  20] = ASN1_OP_RETURN,

	// SpcString
	[  21] =  ASN1_OP_MATCH_ACT_OR_SKIP,		// unicode
	[  22] =  _tagn(CONT, PRIM,  0),
	[  23] =  _action(ACT_lc_spc_filename_obsolete),
	[  24] =  ASN1_OP_COND_MATCH_OR_SKIP,		// ascii
	[  25] =  _tagn(CONT, PRIM,  1),
	[  26] =  ASN1_OP_COND_FAIL,
	[  27] = ASN1_OP_END_SEQ,
	[  28] = ASN1_OP_RETURN,
};

const struct lc_asn1_decoder lc_authenticode_SpcPeImageData_decoder = {
	.machine = authenticode_SpcPeImageData_machine,
	.machlen = sizeof(authenticode_SpcPeImageData_machine),
	.actions = authenticode_SpcPeImageData_action_table,
};

const struct lc_asn1_encoder lc_authenticode_SpcPeImageData_encoder = {
	.machine = authenticode_SpcPeImageData_machine,
	.machlen = sizeof(authenticode_SpcPeImageData_machine),
	.actions = authenticode_SpcPeImageData_action_table_enc,
};

// clang-format on
