typedef struct{char *name; long sig; void (*fn)(void*); int size; int np; uchar map[16];} Runtab;
Runtab Keyringmodtab[]={
	"IPint.add",0xa47c1b24,IPint_add,40,2,{0x0,0xc0,},
	"aescbc",0xac616ba,Keyring_aescbc,48,2,{0x0,0xc0,},
	"aessetup",0x44452583,Keyring_aessetup,40,2,{0x0,0xc0,},
	"IPint.and",0xa47c1b24,IPint_and,40,2,{0x0,0xc0,},
	"auth",0x9c576bb,Keyring_auth,48,2,{0x0,0xc0,},
	"IPint.b64toip",0xa803ee03,IPint_b64toip,40,2,{0x0,0x80,},
	"IPint.bebytestoip",0x6fa90725,IPint_bebytestoip,40,2,{0x0,0x80,},
	"IPint.bits",0xeb4c9bad,IPint_bits,40,2,{0x0,0x80,},
	"blowfishcbc",0xac616ba,Keyring_blowfishcbc,48,2,{0x0,0xc0,},
	"blowfishsetup",0x44452583,Keyring_blowfishsetup,40,2,{0x0,0xc0,},
	"IPint.bytestoip",0x6fa90725,IPint_bytestoip,40,2,{0x0,0x80,},
	"certtoattr",0xbc65254a,Keyring_certtoattr,40,2,{0x0,0x80,},
	"certtostr",0xbc65254a,Keyring_certtostr,40,2,{0x0,0x80,},
	"IPint.cmp",0x79774f9e,IPint_cmp,40,2,{0x0,0xc0,},
	"IPint.copy",0x491fbd11,IPint_copy,40,2,{0x0,0x80,},
	"DigestState.copy",0x491fbd11,DigestState_copy,40,2,{0x0,0x80,},
	"RSAsk.decrypt",0xf3b51b95,RSAsk_decrypt,40,2,{0x0,0xc0,},
	"descbc",0xac616ba,Keyring_descbc,48,2,{0x0,0xc0,},
	"desecb",0xac616ba,Keyring_desecb,48,2,{0x0,0xc0,},
	"dessetup",0x44452583,Keyring_dessetup,40,2,{0x0,0xc0,},
	"dhparams",0x6abb2418,Keyring_dhparams,40,0,{0},
	"IPint.div",0x4672bf61,IPint_div,40,2,{0x0,0xc0,},
	"RSApk.encrypt",0xdc0ec366,RSApk_encrypt,40,2,{0x0,0xc0,},
	"IPint.eq",0x79774f9e,IPint_eq,40,2,{0x0,0xc0,},
	"IPint.expmod",0xe6105024,IPint_expmod,48,2,{0x0,0xe0,},
	"RSAsk.fill",0x2ab0d50a,RSAsk_fill,56,2,{0x0,0xf8,},
	"RSAsk.gen",0xc197fd0,RSAsk_gen,48,0,{0},
	"DSAsk.gen",0x46f0eb94,DSAsk_gen,40,2,{0x0,0x80,},
	"EGsk.gen",0x4a59c528,EGsk_gen,40,0,{0},
	"genSK",0xadd8cbd9,Keyring_genSK,48,2,{0x0,0xc0,},
	"genSKfromPK",0x5416d1ee,Keyring_genSKfromPK,40,2,{0x0,0xc0,},
	"getbytearray",0x4e02ce80,Keyring_getbytearray,40,2,{0x0,0x80,},
	"getmsg",0xd9de1bb7,Keyring_getmsg,40,2,{0x0,0x80,},
	"getstring",0x92f10e56,Keyring_getstring,40,2,{0x0,0x80,},
	"hmac_md5",0xec9ac159,Keyring_hmac_md5,56,2,{0x0,0xb8,},
	"hmac_sha1",0xec9ac159,Keyring_hmac_sha1,56,2,{0x0,0xb8,},
	"ideacbc",0xac616ba,Keyring_ideacbc,48,2,{0x0,0xc0,},
	"ideaecb",0xac616ba,Keyring_ideaecb,48,2,{0x0,0xc0,},
	"ideasetup",0x44452583,Keyring_ideasetup,40,2,{0x0,0xc0,},
	"IPint.inttoip",0x95dc8b6d,IPint_inttoip,40,0,{0},
	"IPint.invert",0xa47c1b24,IPint_invert,40,2,{0x0,0xc0,},
	"IPint.iptob64",0xfab4eb8a,IPint_iptob64,40,2,{0x0,0x80,},
	"IPint.iptob64z",0xfab4eb8a,IPint_iptob64z,40,2,{0x0,0x80,},
	"IPint.iptobebytes",0xc8e5162d,IPint_iptobebytes,40,2,{0x0,0x80,},
	"IPint.iptobytes",0xc8e5162d,IPint_iptobytes,40,2,{0x0,0x80,},
	"IPint.iptoint",0xeb4c9bad,IPint_iptoint,40,2,{0x0,0x80,},
	"IPint.iptostr",0xf9fdc03d,IPint_iptostr,40,2,{0x0,0x80,},
	"md4",0x7656377,Keyring_md4,48,2,{0x0,0xb0,},
	"md5",0x7656377,Keyring_md5,48,2,{0x0,0xb0,},
	"IPint.mod",0xa47c1b24,IPint_mod,40,2,{0x0,0xc0,},
	"IPint.mul",0xa47c1b24,IPint_mul,40,2,{0x0,0xc0,},
	"IPint.neg",0x491fbd11,IPint_neg,40,2,{0x0,0x80,},
	"IPint.not",0x491fbd11,IPint_not,40,2,{0x0,0x80,},
	"IPint.ori",0xa47c1b24,IPint_ori,40,2,{0x0,0xc0,},
	"pktoattr",0xfb4e61ba,Keyring_pktoattr,40,2,{0x0,0x80,},
	"pktostr",0xfb4e61ba,Keyring_pktostr,40,2,{0x0,0x80,},
	"putbytearray",0x7cfef557,Keyring_putbytearray,48,2,{0x0,0xc0,},
	"puterror",0xd2526222,Keyring_puterror,40,2,{0x0,0xc0,},
	"putstring",0xd2526222,Keyring_putstring,40,2,{0x0,0xc0,},
	"IPint.random",0x70bcd6f1,IPint_random,40,0,{0},
	"rc4",0xd051c505,Keyring_rc4,48,2,{0x0,0xc0,},
	"rc4back",0x3643caf7,Keyring_rc4back,40,2,{0x0,0x80,},
	"rc4setup",0x6fa90725,Keyring_rc4setup,40,2,{0x0,0x80,},
	"rc4skip",0x3643caf7,Keyring_rc4skip,40,2,{0x0,0x80,},
	"readauthinfo",0xb2c82015,Keyring_readauthinfo,40,2,{0x0,0x80,},
	"senderrmsg",0xd2526222,Keyring_senderrmsg,40,2,{0x0,0xc0,},
	"sendmsg",0x7cfef557,Keyring_sendmsg,48,2,{0x0,0xc0,},
	"sha1",0x7656377,Keyring_sha1,48,2,{0x0,0xb0,},
	"IPint.shl",0xc7b0bc01,IPint_shl,40,2,{0x0,0x80,},
	"IPint.shr",0xc7b0bc01,IPint_shr,40,2,{0x0,0x80,},
	"sign",0xdacb7a7e,Keyring_sign,48,2,{0x0,0xb0,},
	"RSAsk.sign",0x5dbdc2fe,RSAsk_sign,40,2,{0x0,0xc0,},
	"DSAsk.sign",0x6e51e1b3,DSAsk_sign,40,2,{0x0,0xc0,},
	"EGsk.sign",0xca053e70,EGsk_sign,40,2,{0x0,0xc0,},
	"signm",0xba5bd10f,Keyring_signm,48,2,{0x0,0xe0,},
	"sktoattr",0xfb4e61ba,Keyring_sktoattr,40,2,{0x0,0x80,},
	"sktopk",0x6f74c7c9,Keyring_sktopk,40,2,{0x0,0x80,},
	"sktostr",0xfb4e61ba,Keyring_sktostr,40,2,{0x0,0x80,},
	"strtocert",0x2c0ee68a,Keyring_strtocert,40,2,{0x0,0x80,},
	"IPint.strtoip",0x12d7a943,IPint_strtoip,40,2,{0x0,0x80,},
	"strtopk",0xcc511522,Keyring_strtopk,40,2,{0x0,0x80,},
	"strtosk",0xcc511522,Keyring_strtosk,40,2,{0x0,0x80,},
	"IPint.sub",0xa47c1b24,IPint_sub,40,2,{0x0,0xc0,},
	"verify",0x8b5b9f76,Keyring_verify,48,2,{0x0,0xe0,},
	"RSApk.verify",0x1857beff,RSApk_verify,48,2,{0x0,0xe0,},
	"DSApk.verify",0xeca448ff,DSApk_verify,48,2,{0x0,0xe0,},
	"EGpk.verify",0xfb1e256c,EGpk_verify,48,2,{0x0,0xe0,},
	"verifym",0x8b5b9f76,Keyring_verifym,48,2,{0x0,0xe0,},
	"writeauthinfo",0x5ba03002,Keyring_writeauthinfo,40,2,{0x0,0xc0,},
	"IPint.xor",0xa47c1b24,IPint_xor,40,2,{0x0,0xc0,},
	0
};
#define Keyringmodlen	90
