d0 equ rax
	d1 equ rbx
	d2 equ r10
	d3 equ r11
	d7 equ r15
	a0 equ rcx
	a1 equ rdx
	a2 equ r8
	a3 equ r9
	a5 equ rsi
	a6 equ rdi

	d0l equ eax
	a2l equ r8d
	a3l equ r9d

	d1w equ bx

	qw equ qword ptr

 ifndef NEW_DESCRIPTORS
	extern	__cycle__in__spine:near
	extern	collect_2:near
 endif

_TEXT	segment para 'CODE'
_TEXT	ends
_DATA	segment para 'DATA'
_DATA	ends

	_TEXT segment

	public	ap_2
	public	ap_3
	public	ap_4
	public	ap_5
	public	ap_6
	public	ap_7
	public	ap_8
	public	ap_9
	public	ap_10
	public	ap_11
	public	ap_12
	public	ap_13
	public	ap_14
	public	ap_15
	public	ap_16
	public	ap_17
	public	ap_18
	public	ap_19
	public	ap_20
	public	ap_21
	public	ap_22
	public	ap_23
	public	ap_24
	public	ap_25
	public	ap_26
	public	ap_27
	public	ap_28
	public	ap_29
	public	ap_30
	public	ap_31
	public	ap_32

	public	add_empty_node_2
	public	add_empty_node_3
	public	add_empty_node_4
	public	add_empty_node_5
	public	add_empty_node_6
	public	add_empty_node_7
	public	add_empty_node_8
	public	add_empty_node_9
	public	add_empty_node_10
	public	add_empty_node_11
	public	add_empty_node_12
	public	add_empty_node_13
	public	add_empty_node_14
	public	add_empty_node_15
	public	add_empty_node_16
	public	add_empty_node_17
	public	add_empty_node_18
	public	add_empty_node_19
	public	add_empty_node_20
	public	add_empty_node_21
	public	add_empty_node_22
	public	add_empty_node_23
	public	add_empty_node_24
	public	add_empty_node_25
	public	add_empty_node_26
	public	add_empty_node_27
	public	add_empty_node_28
	public	add_empty_node_29
	public	add_empty_node_30
	public	add_empty_node_31
	public	add_empty_node_32

	public	yet_args_needed_5
	public	yet_args_needed_6
	public	yet_args_needed_7
	public	yet_args_needed_8
	public	yet_args_needed_9
	public	yet_args_needed_10
	public	yet_args_needed_11
	public	yet_args_needed_12
	public	yet_args_needed_13
	public	yet_args_needed_14
	public	yet_args_needed_15
	public	yet_args_needed_16
	public	yet_args_needed_17
	public	yet_args_needed_18
	public	yet_args_needed_19
	public	yet_args_needed_20
	public	yet_args_needed_21
	public	yet_args_needed_22
	public	yet_args_needed_23
	public	yet_args_needed_24
	public	yet_args_needed_25
	public	yet_args_needed_26
	public	yet_args_needed_27
	public	yet_args_needed_28
	public	yet_args_needed_29
	public	yet_args_needed_30
	public	yet_args_needed_31

ap_32:
	mov	a3,qw [a2]
	mov	d1,32*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap32

ap_31:
	mov	a3,qw [a2]
	mov	d1,31*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap31

ap_30:
	mov	a3,qw [a2]
	mov	d1,30*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap30

ap_29:
	mov	a3,qw [a2]
	mov	d1,29*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap29

ap_28:
	mov	a3,qw [a2]
	mov	d1,28*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap28

ap_27:
	mov	a3,qw [a2]
	mov	d1,27*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap27

ap_26:
	mov	a3,qw [a2]
	mov	d1,26*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap26

ap_25:
	mov	a3,qw [a2]
	mov	d1,25*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap25

ap_24:
	mov	a3,qw [a2]
	mov	d1,24*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap24

ap_23:
	mov	a3,qw [a2]
	mov	d1,23*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap23

ap_22:
	mov	a3,qw [a2]
	mov	d1,22*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap22

ap_21:
	mov	a3,qw [a2]
	mov	d1,21*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap21

ap_20:
	mov	a3,qw [a2]
	mov	d1,20*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap20

ap_19:
	mov	a3,qw [a2]
	mov	d1,19*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap19

ap_18:
	mov	a3,qw [a2]
	mov	d1,18*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap18

ap_17:
	mov	a3,qw [a2]
	mov	d1,17*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap17

ap_16:
	mov	a3,qw [a2]
	mov	d1,16*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap16

ap_15:
	mov	a3,qw [a2]
	mov	d1,15*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap15

ap_14:
	mov	a3,qw [a2]
	mov	d1,14*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap14

ap_13:
	mov	a3,qw [a2]
	mov	d1,13*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap13

ap_12:
	mov	a3,qw [a2]
	mov	d1,12*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap12

ap_11:
	mov	a3,qw [a2]
	mov	d1,11*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap11

ap_10:
	mov	a3,qw [a2]
	mov	d1,10*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap10

ap_9:
	mov	a3,qw [a2]
	mov	d1,9*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap9

ap_8:
	mov	a3,qw [a2]
	mov	d1,8*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap8

ap_7:
	mov	a3,qw [a2]
	mov	d1,7*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap7

ap_6:
	mov	a3,qw [a2]
	mov	d1,6*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap6

ap_5:
	mov	a3,qw [a2]
	mov	d1,5*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap5

ap_4:
	mov	a3,qw [a2]
	mov	d1,4*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap4

ap_3:
	mov	a3,qw [a2]
	mov	d1,3*8
	cmp	word ptr [a3],bx
	je	fast_ap

	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap3

ap_2:
	mov	a3,qw [a2]
	mov	d1,2*8
	cmp	word ptr [a3],bx
	jne	no_fast_ap2_

fast_ap_2_2_:
	movzx	d0,word ptr -2[a3]
	add	d1,a3
	mov	a3l,dword ptr -6[d1]
 ifdef PROFILE
	sub	a3,24
 else
	sub	a3,12
 endif
	cmp	d0,1
	jb	repl_args_0_2
	je	repl_args_1

	cmp	d0,3
	jb	repl_args_2

	mov	qw [a5],a0
	mov	qw 8[a5],a1
	lea	a5,16[a5]
	mov	a1,qw 16[a2]

	jmp	fast_ap_

no_fast_ap2_:
	mov	qw [a5],a0
	mov	a0,a1
	mov	a1,a2
	mov	a2l,dword ptr 2[a3]
	add	a5,8
	jmp	no_fast_ap2

fast_ap_2_2:
	mov	a2,a1
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8
	jmp	fast_ap_2_2_

fast_ap_2:
	mov	a2,a1
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

fast_ap:
	movzx	d0,word ptr -2[a3]
	add	d1,a3
	mov	a3l,dword ptr -6[d1]
 ifdef PROFILE
	sub	a3,24
 else
	sub	a3,12
 endif
	cmp	d0,1
	jb	repl_args_0
	je	repl_args_1

	cmp	d0,3
	jb	repl_args_2

	mov	qw [a5],a0
	mov	qw 8[a5],a1
	lea	a5,16[a5]
	mov	a1,qw 16[a2]

fast_ap_:
	mov	a2,qw 8[a2]
	je	repl_args_3

	cmp	d0,5
	jb	repl_args_4
	je	repl_args_5

	cmp	d0,7
	jb	repl_args_6

repl_args_7_:
	mov	rbp,qw -16[a1+d0*8]
	mov	qw [a5],rbp
	sub	d0,1
	add	a5,8
	cmp	d0,6
	jne	repl_args_7_

repl_args_6:
	mov	d0,qw 32[a1]
	mov	qw [a5],d0
	mov	d0,qw 24[a1]
	mov	qw 8[a5],d0
	mov	d0,qw 16[a1]
	mov	qw 16[a5],d0
	mov	a0,qw 8[a1]
	mov	a1,qw [a1]
	add	a5,24
	jmp	a3

repl_args_0:
	mov	a2,a1
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8
repl_args_0_2:
	jmp	a3

repl_args_1:
	mov	a2,qw 8[a2]
	jmp	a3

repl_args_2:
	mov	qw [a5],a0
	mov	a0,a1
	add	a5,8
	mov	a1,qw 16[a2]
	mov	a2,qw 8[a2]
	jmp	a3

repl_args_3:
	mov	a0,qw 8[a1]
	mov	a1,qw [a1]
	jmp	a3

repl_args_4:
	mov	d0,qw 16[a1]
	mov	qw [a5],d0
	mov	a0,qw 8[a1]
	mov	a1,qw [a1]
	add	a5,8
	jmp	a3

repl_args_5:
	mov	d0,qw 24[a1]
	mov	qw [a5],d0
	mov	d0,qw 16[a1]
	mov	qw 8[a5],d0
	mov	a0,qw 8[a1]
	mov	a1,qw [a1]
	add	a5,16
	jmp	a3


no_fast_ap32:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,31*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap31:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,30*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap30:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,29*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap29:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,28*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap28:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,27*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap27:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,26*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap26:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,25*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap25:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,24*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap24:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,23*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap23:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,22*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap22:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,21*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap21:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,20*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap20:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,19*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap19:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,18*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap18:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,17*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap17:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,16*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap16:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,15*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap15:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,14*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap14:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,13*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap13:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,12*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap12:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,11*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap11:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,10*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap10:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,9*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap9:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,8*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap8:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,7*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap7:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,6*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap6:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,5*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap5:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,4*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap4:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,3*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap3:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8

	mov	d1,2*8
 	cmp	word ptr [a3],d1w
	je	fast_ap_2

	mov	a2l,dword ptr 2[a3]
no_fast_ap2:
	call	a2
	mov	a3,qw [a0]
	mov	a1,a0
	mov	a0,qw -8[a5]
	sub	a5,8
	mov	a2l,dword ptr 2[a3]
	jmp	a2


add_empty_node_2:
	sub	d7,3
	jb	add_empty_node_2_gc
add_empty_node_2_gc_:
	mov	qw [a6],offset __cycle__in__spine
	mov	a2,a1
	mov	a1,a0
	mov	a0,a6
	add	a6,24
	ret
add_empty_node_2_gc:
	call	collect_2
	jmp	add_empty_node_2_gc_

add_empty_node_3:
	sub	d7,3
	jb	add_empty_node_3_gc
add_empty_node_3_gc_:
	mov	qw [a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_3_gc:
	call	collect_2
	jmp	add_empty_node_3_gc_

add_empty_node_4:
	sub	d7,3
	jb	add_empty_node_4_gc
add_empty_node_4_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	qw -8[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_4_gc:
	call	collect_2
	jmp	add_empty_node_4_gc_

add_empty_node_5:
	sub	d7,3
	jb	add_empty_node_5_gc
add_empty_node_5_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	qw -16[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_5_gc:
	call	collect_2
	jmp	add_empty_node_5_gc_

add_empty_node_6:
	sub	d7,3
	jb	add_empty_node_6_gc
add_empty_node_6_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
	mov	qw -24[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_6_gc:
	call	collect_2
	jmp	add_empty_node_6_gc_

add_empty_node_7:
	sub	d7,3
	jb	add_empty_node_7_gc
add_empty_node_7_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
	mov	a3,qw -32[a5]
	mov	qw -24[a5],a3
	mov	qw -32[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_7_gc:
	call	collect_2
	jmp	add_empty_node_7_gc_

add_empty_node_8:
	sub	d7,3
	jb	add_empty_node_8_gc
add_empty_node_8_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
	mov	a3,qw -32[a5]
	mov	qw -24[a5],a3
	mov	a3,qw -40[a5]
	mov	qw -32[a5],a3
	mov	qw -40[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_8_gc:
	call	collect_2
	jmp	add_empty_node_8_gc_

add_empty_node_9:
	sub	d7,3
	jb	add_empty_node_9_gc
add_empty_node_9_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
	mov	a3,qw -32[a5]
	mov	qw -24[a5],a3
	mov	a3,qw -40[a5]
	mov	qw -32[a5],a3
	mov	a3,qw -48[a5]
	mov	qw -40[a5],a3
	mov	qw -48[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_9_gc:
	call	collect_2
	jmp	add_empty_node_9_gc_

add_empty_node_10:
	sub	d7,3
	jb	add_empty_node_10_gc
add_empty_node_10_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
	mov	a3,qw -32[a5]
	mov	qw -24[a5],a3
	mov	a3,qw -40[a5]
	mov	qw -32[a5],a3
	mov	a3,qw -48[a5]
	mov	qw -40[a5],a3
	mov	a3,qw -56[a5]
	mov	qw -48[a5],a3
	mov	qw -56[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_10_gc:
	call	collect_2
	jmp	add_empty_node_10_gc_

add_empty_node_11:
	sub	d7,3
	jb	add_empty_node_11_gc
add_empty_node_11_gc_:
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
	mov	a3,qw -32[a5]
	mov	qw -24[a5],a3
	mov	a3,qw -40[a5]
	mov	qw -32[a5],a3
	mov	a3,qw -48[a5]
	mov	qw -40[a5],a3
	mov	a3,qw -56[a5]
	mov	qw -48[a5],a3
	mov	a3,qw -64[a5]
	mov	qw -56[a5],a3
	mov	qw -64[a5],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_11_gc:
	call	collect_2
	jmp	add_empty_node_11_gc_

add_empty_node_32:
	mov	d1,7
	jmp	add_empty_node_12_
add_empty_node_28:
	mov	d1,6
	jmp	add_empty_node_12_
add_empty_node_24:
	mov	d1,5
	jmp	add_empty_node_12_
add_empty_node_20:
	mov	d1,4
	jmp	add_empty_node_12_
add_empty_node_16:
	mov	d1,3
	jmp	add_empty_node_12_
add_empty_node_12:
	mov	d1,2
add_empty_node_12_:
	sub	d7,3
	jb	add_empty_node_12_gc
add_empty_node_12_gc_:
	mov	d0,a5
add_empty_node_12_lp:
	mov	a3,qw -8[d0]
	mov	qw [d0],a3
	mov	a3,qw -16[d0]
	mov	qw -8[d0],a3
	mov	a3,qw -24[d0]
	mov	qw -16[d0],a3
	mov	a3,qw -32[d0]
	mov	qw -24[d0],a3
	sub	d0,32
	sub	d1,1
	jne	add_empty_node_12_lp
	mov	qw [d0],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_12_gc:
	call	collect_2
	jmp	add_empty_node_12_gc_

add_empty_node_29:
	mov	d1,6
	jmp	add_empty_node_13_
add_empty_node_25:
	mov	d1,5
	jmp	add_empty_node_13_
add_empty_node_21:
	mov	d1,4
	jmp	add_empty_node_13_
add_empty_node_17:
	mov	d1,3
	jmp	add_empty_node_13_
add_empty_node_13:
	mov	d1,2
add_empty_node_13_:
	sub	d7,3
	jb	add_empty_node_13_gc
add_empty_node_13_gc_:
	mov	d0,a5
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
add_empty_node_13_lp:
	mov	a3,qw -16[d0]
	mov	qw -8[d0],a3
	mov	a3,qw -24[d0]
	mov	qw -16[d0],a3
	mov	a3,qw -32[d0]
	mov	qw -24[d0],a3
	mov	a3,qw -40[d0]
	mov	qw -32[d0],a3
	sub	d0,32
	sub	d1,1
	jne	add_empty_node_13_lp
	mov	qw -8[d0],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_13_gc:
	call	collect_2
	jmp	add_empty_node_13_gc_

add_empty_node_30:
	mov	d1,6
	jmp	add_empty_node_14_
add_empty_node_26:
	mov	d1,5
	jmp	add_empty_node_14_
add_empty_node_22:
	mov	d1,4
	jmp	add_empty_node_14_
add_empty_node_18:
	mov	d1,3
	jmp	add_empty_node_14_
add_empty_node_14:
	mov	d1,2
add_empty_node_14_:
	sub	d7,3
	jb	add_empty_node_14_gc
add_empty_node_14_gc_:
	mov	d0,a5
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a5,qw -16[a5]
	mov	qw -8[a5],a3
add_empty_node_14_lp:
	mov	a3,qw -24[d0]
	mov	qw -16[d0],a3
	mov	a3,qw -32[d0]
	mov	qw -24[d0],a3
	mov	a3,qw -40[d0]
	mov	qw -32[d0],a3
	mov	a3,qw -48[d0]
	mov	qw -40[d0],a3
	sub	d0,32
	sub	d1,1
	jne	add_empty_node_14_lp
	mov	qw -16[d0],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_14_gc:
	call	collect_2
	jmp	add_empty_node_14_gc_

add_empty_node_31:
	mov	d1,6
	jmp	add_empty_node_15_
add_empty_node_27:
	mov	d1,5
	jmp	add_empty_node_15_
add_empty_node_23:
	mov	d1,4
	jmp	add_empty_node_15_
add_empty_node_19:
	mov	d1,3
	jmp	add_empty_node_15_
add_empty_node_15:
	mov	d1,2
add_empty_node_15_:
	sub	d7,3
	jb	add_empty_node_15_gc
add_empty_node_15_gc_:
	mov	d0,a3
	mov	a3,qw -8[a5]
	mov	qw [a5],a3
	mov	a3,qw -16[a5]
	mov	qw -8[a5],a3
	mov	a3,qw -24[a5]
	mov	qw -16[a5],a3
add_empty_node_15_lp:
	mov	a3,qw -32[d0]
	mov	qw -24[d0],a3
	mov	a3,qw -40[d0]
	mov	qw -32[d0],a3
	mov	a3,qw -48[d0]
	mov	qw -40[d0],a3
	mov	a3,qw -56[d0]
	mov	qw -48[d0],a3
	sub	d0,32
	sub	d1,1
	jne	add_empty_node_15_lp
	mov	qw -24[d0],a6
	mov	qw [a6],offset __cycle__in__spine
	add	a5,8
	add	a6,24
	ret
add_empty_node_15_gc:
	call	collect_2
	jmp	add_empty_node_15_gc_


yet_args_needed_0:
	sub	d7,2
	jb	yet_args_needed_0_gc
yet_args_needed_0_gc_r:
	mov	qw 8[a6],a0
	mov	d0,qw [a1]
	mov	a0,a6
	add	d0,8
	mov	qw [a6],d0
	add	a6,16
	ret

yet_args_needed_0_gc:
	call	collect_2
	jmp	yet_args_needed_0_gc_r


	align	(4)
	sub	d7,3
	jae short build_node_2_gc_r
	jmp short build_node_2_gc
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
 endif
yet_args_needed_1:
	sub	d7,3
	jb	yet_args_needed_1_gc
yet_args_needed_1_gc_r:
	mov	qw 16[a6],a0
	mov	d0,qw [a1]
	mov	a0,a6
	add	d0,8
	mov	qw [a6],d0
	mov	d1,qw 8[a1]
	mov	qw 8[a6],d1
	add	a6,24
	ret

yet_args_needed_1_gc:
	call	collect_2
	jmp	yet_args_needed_1_gc_r

build_node_2_gc_r:
	mov	qw [a6],d1
	mov	qw 8[a6],a1
	mov	qw 16[a6],a0
	mov	a0,a6
	add	a6,24
	ret

build_node_2_gc:
	call	collect_2
	jmp	build_node_2_gc_r


	align	(4)
	sub	d7,5
	jae short build_node_3_gc_r
	jmp short build_node_3_gc
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_2:
	sub	d7,5
	jb	gc_22
gc_r_22:
	mov	d0,qw [a1]
	mov	qw 8[a6],a0
	add	d0,8
	mov	d2,qw 8[a1]
	mov	qw 16[a6],d0
	lea	a0,16[a6]
	mov	rbp,qw 16[a1]
	mov	qw 24[a6],d2
	mov	qw [a6],rbp
	mov	qw 32[a6],a6
	add	a6,40
	ret

gc_22:	call	collect_2
	jmp	gc_r_22

build_node_3_gc_r:
	mov	qw [a6],d1
	lea	rbp,24[a6]
	mov	qw 8[a6],a2
	mov	qw 16[a6],rbp
	mov	qw 24[a6],a1
	mov	qw 32[a6],a0
	mov	a0,a6
	add	a6,40
	ret

build_node_3_gc:
	call	collect_2
	jmp	build_node_3_gc_r


	align	(4)
	sub	d7,6
	jae short build_node_4_gc_r
	jmp short build_node_4_gc
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_3:
	sub	d7,6
	jb	gc_23
gc_r_23:
	mov	d0,qw [a1]
	mov	qw 16[a6],a0
	add	d0,8
	mov	d2,qw 8[a1]
	mov	qw 24[a6],d0
	mov	a1,qw 16[a1]
	mov	qw 32[a6],d2
	mov	rbp,qw [a1]
	mov	qw 40[a6],a6
	mov	qw [a6],rbp
	mov	rbp,qw 8[a1]
	lea	a0,24[a6]
	mov	qw 8[a6],rbp
	add	a6,48
	ret

gc_23:	call	collect_2
	jmp	gc_r_23

build_node_4_gc_r:
	mov	qw [a6],d1
	lea	rbp,24[a6]
	mov	qw 8[a6],a2
	mov	qw 16[a6],rbp
	mov	qw 24[a6],a1
	mov	qw 32[a6],a0
	mov	a0,a6
	mov	rbp,qw -8[a5]
	mov	qw 40[a6],rbp
	sub	a5,8
	add	a6,48
	ret

build_node_4_gc:
	call	collect_2
	jmp	build_node_4_gc_r


	align	(4)
	sub	d7,7
	jae short build_node_5_gc_r
	jmp 	build_node_5_gc
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_4:
	sub	d7,7
	jb	gc_24
gc_r_24:
	mov	d0,qw [a1]
	mov	qw 24[a6],a0
	add	d0,8
	mov	d2,qw 8[a1]
	mov	qw 32[a6],d0
	mov	a1,qw 16[a1]
	mov	qw 40[a6],d2
	mov	rbp,qw [a1]
	mov	48[a6],a6
	mov	qw [a6],rbp
	mov	rbp,qw 8[a1]
	lea	a0,32[a6]
	mov	qw 8[a6],rbp
	mov	rbp,qw 16[a1]
	mov	qw 16[a6],rbp
	add	a6,56
	ret

gc_24:	call	collect_2
	jmp	gc_r_24

build_node_5_gc_r:
	mov	qw [a6],d1
	lea	rbp,24[a6]
	mov	qw 8[a6],a2
	mov	qw 16[a6],rbp
	mov	qw 24[a6],a1
	mov	qw 32[a6],a0
	mov	a0,a6
	mov	rbp,qw -8[a5]
	mov	qw 40[a6],rbp
	mov	rbp,qw -16[a5]
	mov	qw 48[a6],rbp
	sub	a5,16
	add	a6,56
	ret

build_node_5_gc:
	call	collect_2
	jmp	build_node_5_gc_r


	align	(4)
	mov	d0l,8
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_5:
	mov	d1,qw [a1]
	mov	d0,8
	jmp	yet_args_needed_


	align	(4)
	mov	d0l,9
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_6:
	mov	d1,qw [a1]
	mov	d0,9
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,10
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_7:
	mov	d1,qw [a1]
	mov	d0,10
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,11
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_8:
	mov	d1,qw [a1]
	mov	d0,11
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,12
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_9:
	mov	d1,qw [a1]
	mov	d0,12
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,13
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_10:
	mov	d1,qw [a1]
	mov	d0,13
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,14
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_11:
	mov	d1,qw [a1]
	mov	d0,14
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,15
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_12:
	mov	d1,qw [a1]
	mov	d0,15
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,16
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_13:
	mov	d1,qw [a1]
	mov	d0,16
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,17
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_14:
	mov	d1,qw [a1]
	mov	d0,17
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,18
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_15:
	mov	d1,qw [a1]
	mov	d0,18
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,19
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_16:
	mov	d1,qw [a1]
	mov	d0,19
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,20
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_17:
	mov	d1,qw [a1]
	mov	d0,20
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,21
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_18:
	mov	d1,qw [a1]
	mov	d0,21
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,22
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_19:
	mov	d1,qw [a1]
	mov	d0,22
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,23
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_20:
	mov	d1,qw [a1]
	mov	d0,23
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,24
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_21:
	mov	d1,qw [a1]
	mov	d0,24
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,25
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_22:
	mov	d1,qw [a1]
	mov	d0,25
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,26
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_23:
	mov	d1,qw [a1]
	mov	d0,26
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,27
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_24:
	mov	d1,qw [a1]
	mov	d0,27
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,28
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_25:
	mov	d1,qw [a1]
	mov	d0,28
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,29
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_26:
	mov	d1,qw [a1]
	mov	d0,29
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,30
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_27:
	mov	d1,qw [a1]
	mov	d0,30
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,31
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_28:
	mov	d1,qw [a1]
	mov	d0,31
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,32
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_29:
	mov	d1,qw [a1]
	mov	d0,32
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,33
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_30:
	mov	d1,qw [a1]
	mov	d0,33
	jmp	yet_args_needed_

	align	(4)
	mov	d0l,34
	jmp	build_node_
	nop
	nop
	align	(4)	
 ifdef PROFILE
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
 endif
yet_args_needed_31:
	mov	d1,qw [a1]
	mov	d0,34
	jmp	yet_args_needed_

yet_args_needed:
	mov	d1,qw [a1]
	movzx	d0,word ptr -2[d1]
	add	d0,3
yet_args_needed_:
	sub	d7,d0
	jb	yet_args_needed_gc
yet_args_needed_gc_r:
	mov	d3,qw 8[a1]
	sub	d0,3+1+4
	mov	a1,qw 16[a1]
	mov	d2,a6
	mov	rbp,qw [a1]
	mov	qw [a6],rbp
	mov	rbp,qw 8[a1]
	mov	qw 8[a6],rbp
	mov	rbp,qw 16[a1]
	mov	qw 16[a6],rbp
	add	a1,24
	add	a6,24

yet_args_needed_cp_a:
	mov	rbp,qw [a1]
	add	a1,8
	mov	qw [a6],rbp
	add	a6,8
	sub	d0,1
	jge	yet_args_needed_cp_a

	mov	qw [a6],a0
	add	d1,8
	mov	qw 8[a6],d1
	lea	a0,8[a6]
	mov	qw 16[a6],d3
	mov	qw 24[a6],d2
	add	a6,32
	ret

yet_args_needed_gc:
	call	collect_2
	jmp	yet_args_needed_gc_r

build_node_:
	sub	d7,d0
	jb	build_node_gc
build_node_gc_r:
	mov	qw [a6],d1
	lea	rbp,24[a6]
	mov	qw 8[a6],a2
	mov	qw 16[a6],rbp
	mov	qw 24[a6],a1
	mov	qw 32[a6],a0
	mov	a0,a6
	mov	a2,qw -8[a5]
	mov	qw 40[a6],a2
	mov	a2,qw -16[a5]
	sub	a5,16
	mov	qw 48[a6],a2
	add	a6,56

	sub	d0,5+2
build_node_cp_a:
	mov	a2,qw -8[a5]
	sub	a5,8
	mov	qw [a6],a2
	add	a6,8
	sub	d0,1
	jne	build_node_cp_a

	ret

build_node_gc:
	call	collect_3
	jmp	build_node_gc_r
	
_TEXT	ends

 ifndef NEW_DESCRIPTORS
	end
 endif