/*
** Automatically generated from `crypt.m' by the
** Mercury compiler, version 0.5-beta.  Do not edit.
*/
/*
INIT mercury__crypt__init
ENDINIT
*/

#include "imp.h"

Define_extern_entry(mercury__benchmark_1_0);
Define_extern_entry(mercury__main_2_0);
Declare_label(mercury__main_2_0_i3);
Declare_label(mercury__main_2_0_i4);
Declare_label(mercury__main_2_0_i2);
Declare_label(mercury__main_2_0_i5);
Declare_local(mercury__crypt_1_0_l);
Declare_label(mercury__crypt_1_0_i1);
Declare_label(mercury__crypt_1_0_i2);
Declare_label(mercury__crypt_1_0_i3);
Declare_label(mercury__crypt_1_0_i4);
Declare_label(mercury__crypt_1_0_i8);
Declare_label(mercury__crypt_1_0_i17);
Declare_label(mercury__crypt_1_0_i19);
Declare_label(mercury__crypt_1_0_i21);
Declare_label(mercury__crypt_1_0_i23);
Declare_label(mercury__crypt_1_0_i25);
Declare_label(mercury__crypt_1_0_i27);
Declare_label(mercury__crypt_1_0_i31);
Declare_label(mercury__crypt_1_0_i38);
Declare_label(mercury__crypt_1_0_i40);
Declare_label(mercury__crypt_1_0_i42);
Declare_label(mercury__crypt_1_0_i44);
Declare_label(mercury__crypt_1_0_i54);
Declare_label(mercury__crypt_1_0_i79);
Declare_label(mercury__crypt_1_0_i81);
Declare_label(mercury__crypt_1_0_i83);
Declare_label(mercury__crypt_1_0_i85);
Declare_label(mercury__crypt_1_0_i87);
Declare_local(mercury__sum2_3_0_l);
Declare_label(mercury__sum2_3_0_i3);
Declare_local(mercury__sum2_4_0_l);
Declare_label(mercury__sum2_4_0_i29);
Declare_label(mercury__sum2_4_0_i21);
Declare_label(mercury__sum2_4_0_i25);
Declare_label(mercury__sum2_4_0_i26);
Declare_label(mercury__sum2_4_0_i1003);
Declare_label(mercury__sum2_4_0_i16);
Declare_label(mercury__sum2_4_0_i17);
Declare_label(mercury__sum2_4_0_i6);
Declare_label(mercury__sum2_4_0_i10);
Declare_local(mercury__mult_3_0_l);
Declare_label(mercury__mult_3_0_i3);
Declare_local(mercury__mult_4_0_l);
Declare_label(mercury__mult_4_0_i6);
Declare_label(mercury__mult_4_0_i7);
Declare_label(mercury__mult_4_0_i1);
Declare_local(mercury__zero_1_0_l);
Declare_label(mercury__zero_1_0_i1000);
Declare_label(mercury__zero_1_0_i1001);
Declare_local(mercury__odd_1_0_l);
Declare_label(mercury__odd_1_0_i3);
Declare_label(mercury__odd_1_0_i1);
Declare_local(mercury__odd_1_1_l);
Declare_label(mercury__odd_1_1_i2);
Declare_label(mercury__odd_1_1_i5);
Declare_label(mercury__odd_1_1_i7);
Declare_label(mercury__odd_1_1_i9);
Declare_local(mercury__even_1_0_l);
Declare_label(mercury__even_1_0_i3);
Declare_label(mercury__even_1_0_i1);
Declare_local(mercury__even_1_1_l);
Declare_label(mercury__even_1_1_i2);
Declare_label(mercury__even_1_1_i5);
Declare_label(mercury__even_1_1_i7);
Declare_label(mercury__even_1_1_i9);
Declare_local(mercury__lefteven_1_0_l);
Declare_label(mercury__lefteven_1_0_i3);
Declare_label(mercury__lefteven_1_0_i1);
Declare_local(mercury__lefteven_1_1_l);
Declare_label(mercury__lefteven_1_1_i2);
Declare_label(mercury__lefteven_1_1_i5);
Declare_label(mercury__lefteven_1_1_i7);

BEGIN_MODULE(mercury__crypt_module)
	init_entry(mercury__benchmark_1_0);
	init_entry(mercury__main_2_0);
	init_label(mercury__main_2_0_i3);
	init_label(mercury__main_2_0_i4);
	init_label(mercury__main_2_0_i2);
	init_label(mercury__main_2_0_i5);
	init_local(mercury__crypt_1_0_l);
	init_label(mercury__crypt_1_0_i1);
	init_label(mercury__crypt_1_0_i2);
	init_label(mercury__crypt_1_0_i3);
	init_label(mercury__crypt_1_0_i4);
	init_label(mercury__crypt_1_0_i8);
	init_label(mercury__crypt_1_0_i17);
	init_label(mercury__crypt_1_0_i19);
	init_label(mercury__crypt_1_0_i21);
	init_label(mercury__crypt_1_0_i23);
	init_label(mercury__crypt_1_0_i25);
	init_label(mercury__crypt_1_0_i27);
	init_label(mercury__crypt_1_0_i31);
	init_label(mercury__crypt_1_0_i38);
	init_label(mercury__crypt_1_0_i40);
	init_label(mercury__crypt_1_0_i42);
	init_label(mercury__crypt_1_0_i44);
	init_label(mercury__crypt_1_0_i54);
	init_label(mercury__crypt_1_0_i79);
	init_label(mercury__crypt_1_0_i81);
	init_label(mercury__crypt_1_0_i83);
	init_label(mercury__crypt_1_0_i85);
	init_label(mercury__crypt_1_0_i87);
	init_local(mercury__sum2_3_0_l);
	init_label(mercury__sum2_3_0_i3);
	init_local(mercury__sum2_4_0_l);
	init_label(mercury__sum2_4_0_i29);
	init_label(mercury__sum2_4_0_i21);
	init_label(mercury__sum2_4_0_i25);
	init_label(mercury__sum2_4_0_i26);
	init_label(mercury__sum2_4_0_i1003);
	init_label(mercury__sum2_4_0_i16);
	init_label(mercury__sum2_4_0_i17);
	init_label(mercury__sum2_4_0_i6);
	init_label(mercury__sum2_4_0_i10);
	init_local(mercury__mult_3_0_l);
	init_label(mercury__mult_3_0_i3);
	init_local(mercury__mult_4_0_l);
	init_label(mercury__mult_4_0_i6);
	init_label(mercury__mult_4_0_i7);
	init_label(mercury__mult_4_0_i1);
	init_local(mercury__zero_1_0_l);
	init_label(mercury__zero_1_0_i1000);
	init_label(mercury__zero_1_0_i1001);
	init_local(mercury__odd_1_0_l);
	init_label(mercury__odd_1_0_i3);
	init_label(mercury__odd_1_0_i1);
	init_local(mercury__odd_1_1_l);
	init_label(mercury__odd_1_1_i2);
	init_label(mercury__odd_1_1_i5);
	init_label(mercury__odd_1_1_i7);
	init_label(mercury__odd_1_1_i9);
	init_local(mercury__even_1_0_l);
	init_label(mercury__even_1_0_i3);
	init_label(mercury__even_1_0_i1);
	init_local(mercury__even_1_1_l);
	init_label(mercury__even_1_1_i2);
	init_label(mercury__even_1_1_i5);
	init_label(mercury__even_1_1_i7);
	init_label(mercury__even_1_1_i9);
	init_local(mercury__lefteven_1_0_l);
	init_label(mercury__lefteven_1_0_i3);
	init_label(mercury__lefteven_1_0_i1);
	init_local(mercury__lefteven_1_1_l);
	init_label(mercury__lefteven_1_1_i2);
	init_label(mercury__lefteven_1_1_i5);
	init_label(mercury__lefteven_1_1_i7);
BEGIN_CODE


/*-------------------------------------------------------------------------*/
/* code for predicate benchmark/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury__benchmark_1_0);
		/* Procedure entry point */
	{ mkframe("benchmark/1", 1, ENTRY(do_fail)); }
		/* Nondet stackframe */
/* End of procedure prologue */
	{ LVALUE_CAST(Word,maxfr) = (Integer) bt_prevfr((Integer) curfr); }
		/* discard this frame */
	{ LVALUE_CAST(Word,succip) = (Integer) bt_succip((Integer) curfr); }
		/* setup PC on return from tailcall */
	{ LVALUE_CAST(Word,curfr) = (Integer) bt_succfr((Integer) curfr); }
		/* setup curfr on return from tailcall */
/*
 * Live lvalues:
 */
	{ localtailcall(mercury__crypt_1_0_l,
		LABEL(mercury__benchmark_1_0)); }
		/* branch to nondet procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate main/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
DCG_0	 ->	framevar(0)
 */
Define_entry(mercury__main_2_0);
		/* Procedure entry point */
	{ mkframe("main/2", 3, LABEL(mercury__main_2_0_i2)); }
		/* Nondet stackframe */
	{ framevar(1) = (Integer) maxfr; }
		/* Save maxfr */
	{ mark_hp(framevar(2)); }
		/* Save heap pointer */
	{ framevar(0) = (Integer) r1; }
		/* Assigning from DCG_0 */
/*
 * Live lvalues:
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 */
	{ localcall(mercury__crypt_1_0_l,
		LABEL(mercury__main_2_0_i3),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r1	num(7)
 *	framevar(2)	hp
 *	framevar(1)	maxfr
 *	framevar(0)	num(8)
 */
		/* branch to nondet procedure */
Define_label(mercury__main_2_0_i3);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ LVALUE_CAST(Word,bt_redoip((Integer) framevar(1))) = (Integer) ENTRY(do_fail); }
		/* prune away the `else' case of the if-then-else */
	{ r2 = (Integer) framevar(0); }
		/* Assigning from DCG_0 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(1)
 */
	{ Declare_entry(mercury__print_list_3_0);
	  call(ENTRY(mercury__print_list_3_0),
		LABEL(mercury__main_2_0_i4),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(1)	maxfr
 *	framevar(0)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i4);
	update_prof_current_proc(LABEL(mercury__main_2_0));
	{ r2 = (Integer) r3; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 */
	{ succeed(); }
Define_label(mercury__main_2_0_i2);
	update_prof_current_proc(LABEL(mercury__main_2_0));
	{ restore_hp((Integer) framevar(2)); }
	{ r1 = string_const("no solution\n", 12); }
		/* vn flush */
	{ r2 = (Integer) framevar(0); }
		/* vn flush */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(1)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i5),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(1)	maxfr
 */
Define_label(mercury__main_2_0_i5);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r2 = (Integer) r3; }
		/* Assigning from HeadVar__2 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r2
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate crypt/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
O	 ->	framevar(0)
G	 ->	framevar(1)
C	 ->	framevar(2)
Z	 ->	framevar(3)
K	 ->	framevar(0)
A	 ->	framevar(4)
variable number 66	 ->	framevar(5)
X	 ->	framevar(0)
I	 ->	framevar(6)
E	 ->	framevar(7)
HeadVar__1	 ->	framevar(8)
P	 ->	framevar(9)
H	 ->	framevar(10)
D	 ->	framevar(3)
L	 ->	framevar(8)
B	 ->	framevar(11)
Y	 ->	framevar(9)
J	 ->	framevar(12)
F	 ->	framevar(13)
N	 ->	framevar(12)
 */
Define_local(mercury__crypt_1_0_l);
		/* Procedure entry point */
	{ mkframe("crypt/1", 14, ENTRY(do_fail)); }
		/* Nondet stackframe */
/* End of procedure prologue */
	{ framevar(5) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from variable number 66 */
/*
 * Live lvalues:
 *	framevar(5)
 */
	{ localcall(mercury__odd_1_1_l,
		LABEL(mercury__crypt_1_0_i1),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r1	num(2)
 *	framevar(5)	num(7)
 */
		/* branch to nondet procedure */
Define_label(mercury__crypt_1_0_i1);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ framevar(4) = (Integer) r1; }
		/* Assigning from A */
/*
 * Live lvalues:
 *	framevar(4)
 *	framevar(5)
 */
	{ localcall(mercury__even_1_1_l,
		LABEL(mercury__crypt_1_0_i2),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r1	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 */
		/* branch to nondet procedure */
Define_label(mercury__crypt_1_0_i2);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ framevar(11) = (Integer) r1; }
		/* Assigning from B */
/*
 * Live lvalues:
 *	framevar(4)
 *	framevar(5)
 *	framevar(11)
 */
	{ localcall(mercury__even_1_1_l,
		LABEL(mercury__crypt_1_0_i3),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r1	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(11)	num(2)
 */
		/* branch to nondet procedure */
Define_label(mercury__crypt_1_0_i3);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ framevar(2) = (Integer) r1; }
		/* Assigning from C */
/*
 * Live lvalues:
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(11)
 */
	{ localcall(mercury__even_1_1_l,
		LABEL(mercury__crypt_1_0_i4),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r1	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(11)	num(2)
 */
		/* branch to nondet procedure */
Define_label(mercury__crypt_1_0_i4);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
	{ incr_hp(r4, 6); }
	{ r3 = (Integer) mkword(mktag(1), ((Integer) r4 + 16)); }
		/* vn flush */
	{ r5 = (Integer) mkword(mktag(1), ((Integer) r4 + 8)); }
		/* vn flush */
	{ r2 = (Integer) r1; }
		/* vn flush */
	{ framevar(7) = (Integer) r1; }
		/* vn flush */
	{ r1 = (Integer) mkword(mktag(1), (Integer) r4); }
		/* vn flush */
	{ field(mktag(1), (Integer) r5, 1) = (Integer) r3; }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 1) = (Integer) r5; }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) framevar(4); }
		/* vn flush */
	{ field(mktag(1), (Integer) r5, 0) = (Integer) framevar(11); }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 0) = (Integer) framevar(2); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(7)
 *	framevar(11)
 */
	{ localcall(mercury__mult_3_0_l,
		LABEL(mercury__crypt_1_0_i8),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r3	num(7)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(7)	num(2)
 *	framevar(11)	num(2)
 */
Define_label(mercury__crypt_1_0_i8);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
	{ if (((Integer) r3 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r1 = (Integer) field(mktag(1), (Integer) r3, 1); }
		/* vn flush */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r4 = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ if (((Integer) r4 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r5 = (Integer) field(mktag(1), (Integer) r4, 1); }
		/* vn flush */
	{ if (((Integer) r5 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r2 = (Integer) field(mktag(1), (Integer) r5, 0); }
		/* vn flush */
	{ Word temp1, temp2, temp3, temp4;
	{ temp1 = (Integer) field(mktag(1), (Integer) r5, 1); }
		/* vn flush */
	{ temp2 = (Integer) field(mktag(1), (Integer) r4, 0); }
		/* vn flush */
	{ temp3 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ temp4 = (Integer) field(mktag(1), (Integer) r3, 0); }
		/* vn flush */
	{ framevar(0) = (Integer) temp1; }
		/* vn flush */
	{ framevar(1) = (Integer) temp2; }
		/* vn flush */
	{ framevar(6) = (Integer) temp4; }
		/* vn flush */
	{ framevar(10) = (Integer) temp3; }
		/* vn flush */
	{ framevar(13) = (Integer) r2; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__lefteven_1_0_l,
		LABEL(mercury__crypt_1_0_i17),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(7)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
	}

Define_label(mercury__crypt_1_0_i17);
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(1); }
		/* Assigning from G */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__odd_1_0_l,
		LABEL(mercury__crypt_1_0_i19),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(7)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i19);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(10); }
		/* Assigning from H */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__even_1_0_l,
		LABEL(mercury__crypt_1_0_i21),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(7)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i21);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(6); }
		/* Assigning from I */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__even_1_0_l,
		LABEL(mercury__crypt_1_0_i23),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(7)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i23);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(0); }
		/* Assigning from X */
/*
 * Live lvalues:
 *	r2
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__zero_1_0_l,
		LABEL(mercury__crypt_1_0_i25),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i25);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
/*
 * Live lvalues:
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__lefteven_1_1_l,
		LABEL(mercury__crypt_1_0_i27),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r1	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to nondet procedure */
Define_label(mercury__crypt_1_0_i27);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
	{ incr_hp(r4, 6); }
	{ r3 = (Integer) mkword(mktag(1), ((Integer) r4 + 16)); }
		/* vn flush */
	{ r5 = (Integer) mkword(mktag(1), ((Integer) r4 + 8)); }
		/* vn flush */
	{ r2 = (Integer) r1; }
		/* vn flush */
	{ framevar(3) = (Integer) r1; }
		/* vn flush */
	{ r1 = (Integer) mkword(mktag(1), (Integer) r4); }
		/* vn flush */
	{ field(mktag(1), (Integer) r5, 1) = (Integer) r3; }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 1) = (Integer) r5; }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) framevar(4); }
		/* vn flush */
	{ field(mktag(1), (Integer) r5, 0) = (Integer) framevar(11); }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 0) = (Integer) framevar(2); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__mult_3_0_l,
		LABEL(mercury__crypt_1_0_i31),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r3	num(7)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
Define_label(mercury__crypt_1_0_i31);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
	{ if (((Integer) r3 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r1 = (Integer) field(mktag(1), (Integer) r3, 1); }
		/* vn flush */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r4 = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ if (((Integer) r4 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
	{ r2 = (Integer) field(mktag(1), (Integer) r4, 0); }
		/* vn flush */
	{ r5 = (Integer) field(mktag(1), (Integer) r4, 1); }
		/* vn flush */
	{ Word temp1, temp2;
	{ temp1 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ temp2 = (Integer) field(mktag(1), (Integer) r3, 0); }
		/* vn flush */
	{ framevar(0) = (Integer) temp1; }
		/* vn flush */
	{ framevar(8) = (Integer) temp2; }
		/* vn flush */
	{ framevar(9) = (Integer) r5; }
		/* vn flush */
	{ framevar(12) = (Integer) r2; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(9)
 *	framevar(10)
 *	framevar(11)
 *	framevar(12)
 *	framevar(13)
 */
	{ localcall(mercury__lefteven_1_0_l,
		LABEL(mercury__crypt_1_0_i38),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(2)
 *	framevar(9)	num(7)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(12)	num(2)
 *	framevar(13)	num(2)
 */
	}

Define_label(mercury__crypt_1_0_i38);
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(0); }
		/* Assigning from K */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(9)
 *	framevar(10)
 *	framevar(11)
 *	framevar(12)
 *	framevar(13)
 */
	{ localcall(mercury__odd_1_0_l,
		LABEL(mercury__crypt_1_0_i40),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(2)
 *	framevar(9)	num(7)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(12)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i40);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(8); }
		/* Assigning from L */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(9)
 *	framevar(10)
 *	framevar(11)
 *	framevar(12)
 *	framevar(13)
 */
	{ localcall(mercury__even_1_0_l,
		LABEL(mercury__crypt_1_0_i42),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(2)
 *	framevar(9)	num(7)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(12)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i42);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(9); }
		/* Assigning from Y */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(10)
 *	framevar(11)
 *	framevar(12)
 *	framevar(13)
 */
	{ localcall(mercury__zero_1_0_l,
		LABEL(mercury__crypt_1_0_i44),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(12)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i44);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
	{ if (!((Integer) r1))
		redo(); }
	{ incr_hp(r4, 16); }
	{ r3 = (Integer) mkword(mktag(1), ((Integer) r4 + 56)); }
		/* vn flush */
	{ r5 = (Integer) mkword(mktag(1), ((Integer) r4 + 48)); }
		/* vn flush */
	{ Word temp1, temp2, temp3, temp4;
	{ temp1 = (Integer) mkword(mktag(1), ((Integer) r4 + 40)); }
		/* vn flush */
	{ r2 = (Integer) mkword(mktag(1), ((Integer) r4 + 32)); }
		/* vn flush */
	{ temp2 = (Integer) mkword(mktag(1), ((Integer) r4 + 24)); }
		/* vn flush */
	{ temp3 = (Integer) mkword(mktag(1), ((Integer) r4 + 16)); }
		/* vn flush */
	{ temp4 = (Integer) mkword(mktag(1), ((Integer) r4 + 8)); }
		/* vn flush */
	{ r1 = (Integer) mkword(mktag(1), (Integer) r4); }
		/* vn flush */
	{ field(mktag(1), (Integer) r5, 1) = (Integer) r3; }
		/* vn flush */
	{ field(mktag(1), (Integer) temp1, 1) = (Integer) r5; }
		/* vn flush */
	{ field(mktag(1), (Integer) r2, 1) = (Integer) temp1; }
		/* vn flush */
	{ field(mktag(1), (Integer) temp3, 1) = (Integer) temp2; }
		/* vn flush */
	{ field(mktag(1), (Integer) temp4, 1) = (Integer) temp3; }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 1) = (Integer) temp4; }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) framevar(12); }
		/* vn flush */
	{ field(mktag(1), (Integer) r5, 0) = (Integer) framevar(0); }
		/* vn flush */
	{ field(mktag(1), (Integer) temp1, 0) = (Integer) framevar(8); }
		/* vn flush */
	{ field(mktag(1), (Integer) r2, 0) = 0; }
		/* vn flush */
	{ field(mktag(1), (Integer) temp2, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ field(mktag(1), (Integer) temp2, 0) = (Integer) framevar(13); }
		/* vn flush */
	{ field(mktag(1), (Integer) temp3, 0) = (Integer) framevar(1); }
		/* vn flush */
	{ field(mktag(1), (Integer) temp4, 0) = (Integer) framevar(10); }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 0) = (Integer) framevar(6); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(10)
 *	framevar(11)
 *	framevar(12)
 *	framevar(13)
 */
	{ localcall(mercury__sum2_3_0_l,
		LABEL(mercury__crypt_1_0_i54),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r3	num(7)
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(12)	num(2)
 *	framevar(13)	num(2)
 */
	}

Define_label(mercury__crypt_1_0_i54);
		/* Continuation label */
/* checking that variable number 23 has functor '.'/2 (inverted test) */
	{ if (((Integer) r3 == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
		/* fail */
/* checking that variable number 33 has functor '.'/2 (inverted test) */
	{ if (((Integer) field(mktag(1), (Integer) r3, 1) == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
		/* fail */
/* checking that variable number 34 has functor '.'/2 (inverted test) */
	{ if (((Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1) == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
		/* fail */
/* checking that variable number 35 has functor '.'/2 (inverted test) */
	{ if (((Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1), 1) == (Integer) mkword(mktag(0), mkbody(0))))
		redo(); }
		/* fail */
	{ r1 = (Integer) framevar(0); }
		/* shuffle lval */
	{ framevar(0) = (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 0); }
		/* Assigning from O */
	{ r2 = (Integer) framevar(3); }
		/* shuffle lval */
	{ framevar(3) = (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1), 1), 1); }
		/* Assigning from Z */
	{ r4 = (Integer) framevar(8); }
		/* shuffle lval */
	{ r5 = (Integer) framevar(5); }
		/* Assigning from variable number 66 */
	{ tag_incr_hp(framevar(8), mktag(1), 2); }
		/* Allocating heap for HeadVar__1 */
	{ field(mktag(1), (Integer) framevar(8), 0) = (Integer) framevar(4); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) framevar(8), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 0) = (Integer) framevar(11); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 0) = (Integer) framevar(2); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 0) = (Integer) r2; }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 0) = (Integer) framevar(7); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 0) = (Integer) framevar(13); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 0) = (Integer) framevar(1); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) framevar(10); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) framevar(6); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) framevar(12); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) r1; }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) r4; }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1), 1), 0); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1), 0); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) framevar(0); }
		/* Assigning from  */
	{ tag_incr_hp(field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), mktag(1), 2); }
		/* Allocating heap for  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 0) = (Integer) field(mktag(1), (Integer) r3, 0); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) framevar(8), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1), 1) = (Integer) r5; }
		/* Assigning from  */
	{ framevar(9) = (Integer) field(mktag(1), (Integer) r3, 0); }
		/* Assigning from P */
	{ r6 = (Integer) framevar(12); }
		/* shuffle lval */
	{ framevar(12) = (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1), 0); }
		/* Assigning from N */
	{ r7 = (Integer) r2; }
		/* shuffle lval */
	{ r2 = (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) field(mktag(1), (Integer) r3, 1), 1), 1), 0); }
		/* Assigning from M */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(9)
 *	framevar(10)
 *	framevar(11)
 *	framevar(12)
 *	framevar(13)
 */
	{ localcall(mercury__odd_1_0_l,
		LABEL(mercury__crypt_1_0_i79),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(7)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(7)
 *	framevar(9)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(12)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i79);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(12); }
		/* Assigning from N */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(9)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__odd_1_0_l,
		LABEL(mercury__crypt_1_0_i81),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(0)	num(2)
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(7)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(7)
 *	framevar(9)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i81);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(0); }
		/* Assigning from O */
/*
 * Live lvalues:
 *	r2
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(9)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__even_1_0_l,
		LABEL(mercury__crypt_1_0_i83),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(7)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(7)
 *	framevar(9)	num(2)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i83);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(9); }
		/* Assigning from P */
/*
 * Live lvalues:
 *	r2
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__even_1_0_l,
		LABEL(mercury__crypt_1_0_i85),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(3)	num(7)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(7)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i85);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
	{ r2 = (Integer) framevar(3); }
		/* Assigning from Z */
/*
 * Live lvalues:
 *	r2
 *	framevar(1)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 *	framevar(6)
 *	framevar(7)
 *	framevar(8)
 *	framevar(10)
 *	framevar(11)
 *	framevar(13)
 */
	{ localcall(mercury__zero_1_0_l,
		LABEL(mercury__crypt_1_0_i87),
		LABEL(mercury__crypt_1_0_l)); }
/*
 * Garbage collection livevals info
 *	framevar(1)	num(2)
 *	framevar(2)	num(2)
 *	framevar(4)	num(2)
 *	framevar(5)	num(7)
 *	framevar(6)	num(2)
 *	framevar(7)	num(2)
 *	framevar(8)	num(7)
 *	framevar(10)	num(2)
 *	framevar(11)	num(2)
 *	framevar(13)	num(2)
 */
		/* branch to semidet procedure */
Define_label(mercury__crypt_1_0_i87);
	update_prof_current_proc(LABEL(mercury__crypt_1_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
/* Start of procedure epilogue */
	{ r1 = (Integer) framevar(8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate sum2/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__sum2_3_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
	{ r3 = 0; }
		/* Assigning from variable number 7 */
	incr_sp(1);
		/* late setup */
	{ detstackvar(1) = (Integer) succip; }
		/* late save */
	{ localcall(mercury__sum2_4_0_l,
		LABEL(mercury__sum2_3_0_i3),
		LABEL(mercury__sum2_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(1)	succip
 *	r4	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__sum2_3_0_i3);
	update_prof_current_proc(LABEL(mercury__sum2_3_0_l));
		/* Continuation label */
	{ r3 = (Integer) r4; }
		/* Assigning from HeadVar__3 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); }
		/* restore the success ip */
	decr_sp(1);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate sum2/4 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
B	 ->	stackvar(1)
AL	 ->	stackvar(1)
HeadVar__2	 ->	stackvar(2)
Carry	 ->	stackvar(3)
C	 ->	stackvar(1)
HeadVar__1	 ->	stackvar(2)
BL	 ->	stackvar(4)
C	 ->	stackvar(1)
Carry	 ->	stackvar(1)
C	 ->	stackvar(1)
Carry	 ->	stackvar(3)
A	 ->	stackvar(4)
 */
Define_local(mercury__sum2_4_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that HeadVar__2 has functor '[]'/0 */
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__sum2_4_0_i1003); }
		/* jump to setup */
/* checking that HeadVar__1 has functor '[]'/0 */
	incr_sp(5);
		/* late setup after succip */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__sum2_4_0_i21); }
		/* tag test */
	{ r4 = (((Integer) field(mktag(1), (Integer) r1, 0) + (Integer) field(mktag(1), (Integer) r2, 0)) + (Integer) r3); }
		/* vn flush */
	{ r2 = (Integer) field(mktag(1), (Integer) r2, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ r3 = ((Integer) r4 / 10); }
		/* vn flush */
	{ detstackvar(1) = ((Integer) r4 % 10); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	r3
 *	detstackvar(1)
 *	detstackvar(5)
 */
	{ localcall(mercury__sum2_4_0_l,
		LABEL(mercury__sum2_4_0_i29),
		LABEL(mercury__sum2_4_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(5)	succip
 *	r4	num(7)
 *	detstackvar(1)	num(2)
 */
Define_label(mercury__sum2_4_0_i29);
	update_prof_current_proc(LABEL(mercury__sum2_4_0_l));
		/* Continuation label */
	{ r1 = (Integer) r4; }
		/* shuffle lval */
	{ tag_incr_hp(r4, mktag(1), 2); }
		/* Allocating heap for HeadVar__4 */
	{ field(mktag(1), (Integer) r4, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__sum2_4_0_i21);
		/* next case */
	{ r1 = (Integer) field(mktag(1), (Integer) r2, 1); }
		/* Assigning from BL */
	{ r4 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* Assigning from B */
/* checking that Carry has functor 0 */
	{ if (((Integer) r3 == 0))
		GOTO_LABEL(mercury__sum2_4_0_i25); }
		/* branch over failure */
	{ r2 = (Integer) r1; }
		/* vn flush */
	{ r5 = ((Integer) r4 + (Integer) r3); }
		/* vn flush */
	{ r1 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ r3 = ((Integer) r5 / 10); }
		/* vn flush */
	{ detstackvar(1) = ((Integer) r5 % 10); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	r3
 *	detstackvar(1)
 *	detstackvar(5)
 */
	{ localcall(mercury__sum2_4_0_l,
		LABEL(mercury__sum2_4_0_i26),
		LABEL(mercury__sum2_4_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(5)	succip
 *	r4	num(7)
 *	detstackvar(1)	num(2)
 */
Define_label(mercury__sum2_4_0_i25);
	{ r4 = (Integer) r2; }
		/* Assigning from HeadVar__4 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__sum2_4_0_i26);
	update_prof_current_proc(LABEL(mercury__sum2_4_0_l));
		/* Continuation label */
	{ r1 = (Integer) r4; }
		/* shuffle lval */
	{ tag_incr_hp(r4, mktag(1), 2); }
		/* Allocating heap for HeadVar__4 */
	{ field(mktag(1), (Integer) r4, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__sum2_4_0_i1003);
		/* label for late setup code */
	incr_sp(5);
		/* late setup after succip */
/* checking that HeadVar__1 has functor '[]'/0 */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__sum2_4_0_i6); }
		/* tag test */
	{ r2 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* Assigning from A */
	{ r4 = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* Assigning from AL */
/* checking that Carry has functor 0 */
	{ if (((Integer) r3 == 0))
		GOTO_LABEL(mercury__sum2_4_0_i16); }
		/* branch over failure */
	{ r5 = ((Integer) r2 + (Integer) r3); }
		/* vn flush */
	{ r1 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ r2 = (Integer) r4; }
		/* vn flush */
	{ r3 = ((Integer) r5 / 10); }
		/* vn flush */
	{ detstackvar(1) = ((Integer) r5 % 10); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	r3
 *	detstackvar(1)
 *	detstackvar(5)
 */
	{ localcall(mercury__sum2_4_0_l,
		LABEL(mercury__sum2_4_0_i17),
		LABEL(mercury__sum2_4_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(5)	succip
 *	r4	num(7)
 *	detstackvar(1)	num(2)
 */
Define_label(mercury__sum2_4_0_i16);
	{ r4 = (Integer) r1; }
		/* Assigning from HeadVar__4 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__sum2_4_0_i17);
	update_prof_current_proc(LABEL(mercury__sum2_4_0_l));
		/* Continuation label */
	{ r1 = (Integer) r4; }
		/* shuffle lval */
	{ tag_incr_hp(r4, mktag(1), 2); }
		/* Allocating heap for HeadVar__4 */
	{ field(mktag(1), (Integer) r4, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__sum2_4_0_i6);
		/* next case */
/* checking that Carry has functor 0 */
	{ if (((Integer) r3 == 0))
		GOTO_LABEL(mercury__sum2_4_0_i10); }
		/* branch over failure */
	{ tag_incr_hp(r4, mktag(1), 2); }
		/* Allocating heap for HeadVar__4 */
	{ field(mktag(1), (Integer) r4, 0) = (Integer) r3; }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__sum2_4_0_i10);
	{ r4 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from HeadVar__4 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
		/* restore the success ip */
	decr_sp(5);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* shortcircuit */

/*-------------------------------------------------------------------------*/
/* code for predicate mult/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__mult_3_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
	{ r3 = 0; }
		/* Assigning from variable number 7 */
	incr_sp(1);
		/* late setup */
	{ detstackvar(1) = (Integer) succip; }
		/* late save */
	{ localcall(mercury__mult_4_0_l,
		LABEL(mercury__mult_3_0_i3),
		LABEL(mercury__mult_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(1)	succip
 *	r4	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__mult_3_0_i3);
	update_prof_current_proc(LABEL(mercury__mult_3_0_l));
		/* Continuation label */
	{ r3 = (Integer) r4; }
		/* Assigning from HeadVar__3 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); }
		/* restore the success ip */
	decr_sp(1);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate mult/4 in mode 0 */
Define_local(mercury__mult_4_0_l);
		/* Procedure entry point */
/* 
Stack slot assignments (if any):
B	 ->	stackvar(1)
 */
/* checking that HeadVar__1 has functor '[]'/0 */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__mult_4_0_i1); }
		/* tag test */
	{ r6 = (Integer) sp; }
		/* initialize counter register */
Define_label(mercury__mult_4_0_i6);
	incr_sp(1);
/* src_access(vn_field(1, 0, 1)), src_access(vn_field(1, 0, 1)),  */
	{ r5 = (Integer) r1; }
		/* vn flush */
	{ r1 = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ Word temp1, temp2, temp3, temp4;
	{ temp1 = (Integer) field(mktag(1), (Integer) r5, 0); }
		/* vn flush */
	{ temp2 = (((Integer) temp1 * (Integer) r2) + (Integer) r3); }
		/* vn flush */
	{ detstackvar(1) = ((Integer) temp2 % 10); }
		/* vn flush */
	{ r3 = ((Integer) temp2 / 10); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	r3
 *	r6
 *	detstackvar(1)
 */
	{ if (((Integer) r1 != (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__mult_4_0_i6); }
	{ incr_hp(temp4, 4); }
	{ temp3 = (Integer) mkword(mktag(1), ((Integer) temp4 + 8)); }
		/* vn flush */
	{ r4 = (Integer) mkword(mktag(1), (Integer) temp4); }
		/* vn flush */
	{ field(mktag(1), (Integer) temp3, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ field(mktag(1), (Integer) temp3, 0) = ((Integer) r3 / 10); }
		/* vn flush */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) temp3; }
		/* vn flush */
	{ field(mktag(1), (Integer) r4, 0) = ((Integer) r3 % 10); }
		/* vn flush */
	}

Define_label(mercury__mult_4_0_i7);
	while (1) {
	{ r1 = (Integer) r4; }
		/* shuffle lval */
	{ tag_incr_hp(r4, mktag(1), 2); }
		/* Allocating heap for HeadVar__4 */
	{ field(mktag(1), (Integer) r4, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) r1; }
		/* Assigning from  */
	decr_sp(1);
	{ if (((Integer) sp > (Integer) r6))
		continue; }
		/* test on upward loop */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }
		/* exit from recursive case */
	break; } /* end while */
Define_label(mercury__mult_4_0_i1);
	{ incr_hp(r2, 4); }
	{ r1 = (Integer) mkword(mktag(1), ((Integer) r2 + 8)); }
		/* vn flush */
	{ r4 = (Integer) mkword(mktag(1), (Integer) r2); }
		/* vn flush */
	{ field(mktag(1), (Integer) r4, 1) = (Integer) r1; }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 1) = (Integer) mkword(mktag(0), mkbody(0)); }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 0) = ((Integer) r3 / 10); }
		/* vn flush */
	{ field(mktag(1), (Integer) r4, 0) = ((Integer) r3 % 10); }
		/* vn flush */
/*
 * Live lvalues:
 *	r4
 */
	{ proceed(); }

/*-------------------------------------------------------------------------*/
/* code for predicate zero/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__zero_1_0_l);
	{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__zero_1_0_i1001); }
		/*  (teardown redirect) */
	{ r3 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* vn flush */
	{ if (((Integer) r3 == 0))
		GOTO_LABEL(mercury__zero_1_0_i1000); }
		/*  (teardown redirect) */
	{ r1 = FALSE; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury__zero_1_0_i1000);
		/* non-teardown parallel label */
	while (1) {
	{ r2 = (Integer) field(mktag(1), (Integer) r2, 1); }
		/* vn flush */
	{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__zero_1_0_i1001); }
		/*  (teardown redirect) */
	{ r3 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* vn flush */
	{ if (((Integer) r3 == 0))
		continue; }
		/*  (teardown redirect) */
	{ r1 = FALSE; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
	break; } /* end while */
Define_label(mercury__zero_1_0_i1001);
		/* non-teardown parallel label */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate odd/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__odd_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
	{ if (((unsigned)(((Integer) r2 - 1)) > 8))
		GOTO_LABEL(mercury__odd_1_0_i1); }
		/* Test for failure */
	{ COMPUTED_GOTO(((Integer) r2 - 1),
		LABEL(mercury__odd_1_0_i3) AND
		LABEL(mercury__odd_1_0_i1) AND
		LABEL(mercury__odd_1_0_i3) AND
		LABEL(mercury__odd_1_0_i1) AND
		LABEL(mercury__odd_1_0_i3) AND
		LABEL(mercury__odd_1_0_i1) AND
		LABEL(mercury__odd_1_0_i3) AND
		LABEL(mercury__odd_1_0_i1) AND
		LABEL(mercury__odd_1_0_i3)); }
		/* switch (using dense jump table) (some shortcircuits) */
Define_label(mercury__odd_1_0_i3);
		/* End of dense switch */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__odd_1_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate odd/1 in mode 1 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__odd_1_1_l);
		/* Procedure entry point */
	{ mkframe("odd/1", 2, LABEL(mercury__odd_1_1_i2)); }
		/* Nondet stackframe */
	{ mark_hp(framevar(1)); }
		/* Save heap pointer */
	{ r1 = 1; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__odd_1_1_i2);
	update_prof_current_proc(LABEL(mercury__odd_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__odd_1_1_i5); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 3; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__odd_1_1_i5);
	update_prof_current_proc(LABEL(mercury__odd_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__odd_1_1_i7); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 5; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__odd_1_1_i7);
	update_prof_current_proc(LABEL(mercury__odd_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__odd_1_1_i9); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 7; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__odd_1_1_i9);
	update_prof_current_proc(LABEL(mercury__odd_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* restore failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 9; }
		/* Assigning from HeadVar__1 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate even/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__even_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
	{ if (((unsigned)((Integer) r2) > 8))
		GOTO_LABEL(mercury__even_1_0_i1); }
		/* Test for failure */
	{ COMPUTED_GOTO((Integer) r2,
		LABEL(mercury__even_1_0_i3) AND
		LABEL(mercury__even_1_0_i1) AND
		LABEL(mercury__even_1_0_i3) AND
		LABEL(mercury__even_1_0_i1) AND
		LABEL(mercury__even_1_0_i3) AND
		LABEL(mercury__even_1_0_i1) AND
		LABEL(mercury__even_1_0_i3) AND
		LABEL(mercury__even_1_0_i1) AND
		LABEL(mercury__even_1_0_i3)); }
		/* switch (using dense jump table) (some shortcircuits) */
Define_label(mercury__even_1_0_i3);
		/* End of dense switch */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__even_1_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate even/1 in mode 1 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__even_1_1_l);
		/* Procedure entry point */
	{ mkframe("even/1", 2, LABEL(mercury__even_1_1_i2)); }
		/* Nondet stackframe */
	{ mark_hp(framevar(1)); }
		/* Save heap pointer */
	{ r1 = 0; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__even_1_1_i2);
	update_prof_current_proc(LABEL(mercury__even_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__even_1_1_i5); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 2; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__even_1_1_i5);
	update_prof_current_proc(LABEL(mercury__even_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__even_1_1_i7); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 4; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__even_1_1_i7);
	update_prof_current_proc(LABEL(mercury__even_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__even_1_1_i9); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 6; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__even_1_1_i9);
	update_prof_current_proc(LABEL(mercury__even_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* restore failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 8; }
		/* Assigning from HeadVar__1 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate lefteven/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__lefteven_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
	{ if (((unsigned)(((Integer) r2 - 2)) > 6))
		GOTO_LABEL(mercury__lefteven_1_0_i1); }
		/* Test for failure */
	{ COMPUTED_GOTO(((Integer) r2 - 2),
		LABEL(mercury__lefteven_1_0_i3) AND
		LABEL(mercury__lefteven_1_0_i1) AND
		LABEL(mercury__lefteven_1_0_i3) AND
		LABEL(mercury__lefteven_1_0_i1) AND
		LABEL(mercury__lefteven_1_0_i3) AND
		LABEL(mercury__lefteven_1_0_i1) AND
		LABEL(mercury__lefteven_1_0_i3)); }
		/* switch (using dense jump table) (some shortcircuits) */
Define_label(mercury__lefteven_1_0_i3);
		/* End of dense switch */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__lefteven_1_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate lefteven/1 in mode 1 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__lefteven_1_1_l);
		/* Procedure entry point */
	{ mkframe("lefteven/1", 2, LABEL(mercury__lefteven_1_1_i2)); }
		/* Nondet stackframe */
	{ mark_hp(framevar(1)); }
		/* Save heap pointer */
	{ r1 = 2; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__lefteven_1_1_i2);
	update_prof_current_proc(LABEL(mercury__lefteven_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__lefteven_1_1_i5); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 4; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__lefteven_1_1_i5);
	update_prof_current_proc(LABEL(mercury__lefteven_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__lefteven_1_1_i7); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 6; }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__lefteven_1_1_i7);
	update_prof_current_proc(LABEL(mercury__lefteven_1_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* restore failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r1 = 8; }
		/* Assigning from HeadVar__1 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */
END_MODULE

#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
	|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
	|| defined(DEBUG_LABELS) || !defined(SPEED)

static void mercury__crypt_bunch_0(void)
{
	mercury__crypt_module();
}

#endif

void mercury__crypt__init(void); /* suppress gcc warning */
void mercury__crypt__init(void)
{
#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
	|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
	|| defined(DEBUG_LABELS) || !defined(SPEED)

	mercury__crypt_bunch_0();
#endif
}