41279a:	56                   	push   %esi
41279b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41279e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4127a1:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
4127a8:	e8 15 05 00 00       	call   0x412cc2
4127ad:	83 7d ec 03          	cmpl   $0x3,-0x14(%ebp)
4127b1:	0f 84 d5 44 03 00    	je     0x446c8c
4127b7:	8b 46 04             	mov    0x4(%esi),%eax
4127ba:	8b 08                	mov    (%eax),%ecx
4127bc:	e8 85 75 ff ff       	call   0x409d46
4127c1:	8b f2                	mov    %edx,%esi
4127c3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4127c6:	38 5d ff             	cmp    %bl,-0x1(%ebp)
4127c9:	0f 85 db 44 03 00    	jne    0x446caa
4127cf:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4127d2:	e8 49 72 ff ff       	call   0x409a20
4127d7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4127da:	38 5d ff             	cmp    %bl,-0x1(%ebp)
4127dd:	0f 85 e4 44 03 00    	jne    0x446cc7
4127e3:	56                   	push   %esi
4127e4:	50                   	push   %eax
4127e5:	8b d7                	mov    %edi,%edx
4127e7:	8d 4d 98             	lea    -0x68(%ebp),%ecx
4127ea:	e8 82 d5 00 00       	call   0x41fd71
4127ef:	59                   	pop    %ecx
4127f0:	59                   	pop    %ecx
4127f1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4127f4:	8d 45 98             	lea    -0x68(%ebp),%eax
4127f7:	50                   	push   %eax
4127f8:	e8 fb 73 ff ff       	call   0x409bf8
4127fd:	5f                   	pop    %edi
4127fe:	5b                   	pop    %ebx
4127ff:	33 c0                	xor    %eax,%eax
412801:	5e                   	pop    %esi
412802:	8b e5                	mov    %ebp,%esp
412804:	5d                   	pop    %ebp
412805:	c2 08 00             	ret    $0x8
412808:	6a 10                	push   $0x10
41280a:	5f                   	pop    %edi
41280b:	e9 58 ff ff ff       	jmp    0x412768
412810:	8b fb                	mov    %ebx,%edi
412812:	e9 51 ff ff ff       	jmp    0x412768
412817:	55                   	push   %ebp
412818:	8b ec                	mov    %esp,%ebp
41281a:	83 e4 f8             	and    $0xfffffff8,%esp
41281d:	83 ec 44             	sub    $0x44,%esp
412820:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
412825:	53                   	push   %ebx
412826:	56                   	push   %esi
412827:	57                   	push   %edi
412828:	8b f9                	mov    %ecx,%edi
41282a:	8b 4d 08             	mov    0x8(%ebp),%ecx
41282d:	8b 71 08             	mov    0x8(%ecx),%esi
412830:	33 c9                	xor    %ecx,%ecx
412832:	89 4c 24 10          	mov    %ecx,0x10(%esp)
412836:	83 fe 01             	cmp    $0x1,%esi
412839:	8d 4c 24 30          	lea    0x30(%esp),%ecx
41283d:	0f 94 c7             	sete   %bh
412840:	e8 82 4f ff ff       	call   0x4077c7
412845:	83 fe 02             	cmp    $0x2,%esi
412848:	0f 82 90 00 00 00    	jb     0x4128de
41284e:	8b 45 08             	mov    0x8(%ebp),%eax
412851:	6a 2a                	push   $0x2a
412853:	8b 40 04             	mov    0x4(%eax),%eax
412856:	8b 70 04             	mov    0x4(%eax),%esi
412859:	8b ce                	mov    %esi,%ecx
41285b:	e8 4e 75 ff ff       	call   0x409dae
412860:	8a f8                	mov    %al,%bh
412862:	88 7c 24 0c          	mov    %bh,0xc(%esp)
412866:	84 ff                	test   %bh,%bh
412868:	75 74                	jne    0x4128de
41286a:	83 7e 0c 0e          	cmpl   $0xe,0xc(%esi)
41286e:	8b ce                	mov    %esi,%ecx
412870:	0f 84 82 44 03 00    	je     0x446cf8
412876:	6a 02                	push   $0x2
412878:	5b                   	pop    %ebx
412879:	e8 19 71 ff ff       	call   0x409997
41287e:	8b 4e 08             	mov    0x8(%esi),%ecx
412881:	8b 01                	mov    (%ecx),%eax
412883:	89 44 24 20          	mov    %eax,0x20(%esp)
412887:	8b 41 04             	mov    0x4(%ecx),%eax
41288a:	89 44 24 24          	mov    %eax,0x24(%esp)
41288e:	8b 41 08             	mov    0x8(%ecx),%eax
412891:	89 44 24 28          	mov    %eax,0x28(%esp)
412895:	8b 41 0c             	mov    0xc(%ecx),%eax
412898:	89 44 24 2c          	mov    %eax,0x2c(%esp)
41289c:	ff 00                	incl   (%eax)
41289e:	8d 44 24 20          	lea    0x20(%esp),%eax
4128a2:	50                   	push   %eax
4128a3:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4128a7:	e8 fb 58 ff ff       	call   0x4081a7
4128ac:	f6 c3 02             	test   $0x2,%bl
4128af:	74 0c                	je     0x4128bd
4128b1:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4128b5:	83 e3 fd             	and    $0xfffffffd,%ebx
4128b8:	e8 a7 31 ff ff       	call   0x405a64
4128bd:	f6 c3 01             	test   $0x1,%bl
4128c0:	0f 85 44 44 03 00    	jne    0x446d0a
4128c6:	8d 44 24 30          	lea    0x30(%esp),%eax
4128ca:	8b cf                	mov    %edi,%ecx
4128cc:	50                   	push   %eax
4128cd:	e8 eb 76 ff ff       	call   0x409fbd
4128d2:	85 c0                	test   %eax,%eax
4128d4:	0f 84 3e 44 03 00    	je     0x446d18
4128da:	8a 7c 24 0c          	mov    0xc(%esp),%bh
4128de:	8b 45 08             	mov    0x8(%ebp),%eax
4128e1:	8b 40 04             	mov    0x4(%eax),%eax
4128e4:	8b 30                	mov    (%eax),%esi
4128e6:	8b ce                	mov    %esi,%ecx
4128e8:	e8 aa 70 ff ff       	call   0x409997
4128ed:	8b 46 08             	mov    0x8(%esi),%eax
4128f0:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4128f4:	ff 30                	push   (%eax)
4128f6:	e8 46 56 ff ff       	call   0x407f41
4128fb:	8d 44 24 0f          	lea    0xf(%esp),%eax
4128ff:	50                   	push   %eax
412900:	8d 44 24 12          	lea    0x12(%esp),%eax
412904:	50                   	push   %eax
412905:	8d 44 24 14          	lea    0x14(%esp),%eax
412909:	50                   	push   %eax
41290a:	8d 44 24 19          	lea    0x19(%esp),%eax
41290e:	50                   	push   %eax
41290f:	8d 44 24 24          	lea    0x24(%esp),%eax
412913:	50                   	push   %eax
412914:	8d 44 24 34          	lea    0x34(%esp),%eax
412918:	50                   	push   %eax
412919:	e8 1d d9 00 00       	call   0x42023b
41291e:	8a d8                	mov    %al,%bl
412920:	8d 4c 24 20          	lea    0x20(%esp),%ecx
412924:	f6 db                	neg    %bl
412926:	1a db                	sbb    %bl,%bl
412928:	e8 37 31 ff ff       	call   0x405a64
41292d:	fe c3                	inc    %bl
41292f:	0f 85 0a 44 03 00    	jne    0x446d3f
412935:	8b 54 24 14          	mov    0x14(%esp),%edx
412939:	8a 4c 24 0c          	mov    0xc(%esp),%cl
41293d:	89 54 24 18          	mov    %edx,0x18(%esp)
412941:	83 fa 13             	cmp    $0x13,%edx
412944:	0f 84 1e 44 03 00    	je     0x446d68
41294a:	80 7c 24 0d 00       	cmpb   $0x0,0xd(%esp)
41294f:	0f 85 27 44 03 00    	jne    0x446d7c
412955:	8b 44 24 10          	mov    0x10(%esp),%eax
412959:	84 c9                	test   %cl,%cl
41295b:	0f 85 27 44 03 00    	jne    0x446d88
412961:	80 7c 24 0e 00       	cmpb   $0x0,0xe(%esp)
412966:	0f 85 28 44 03 00    	jne    0x446d94
41296c:	80 7c 24 0f 00       	cmpb   $0x0,0xf(%esp)
412971:	0f 85 29 44 03 00    	jne    0x446da0
412977:	8b 8f c8 01 00 00    	mov    0x1c8(%edi),%ecx
41297d:	33 f6                	xor    %esi,%esi
41297f:	c1 e2 10             	shl    $0x10,%edx
412982:	0b d0                	or     %eax,%edx
412984:	89 54 24 1c          	mov    %edx,0x1c(%esp)
412988:	85 c9                	test   %ecx,%ecx
41298a:	0f 85 1c 44 03 00    	jne    0x446dac
412990:	84 ff                	test   %bh,%bh
412992:	0f 85 be 43 03 00    	jne    0x446d56
412998:	33 db                	xor    %ebx,%ebx
41299a:	85 c9                	test   %ecx,%ecx
41299c:	0f 85 89 44 03 00    	jne    0x446e2b
4129a2:	6a 28                	push   $0x28
4129a4:	3b d9                	cmp    %ecx,%ebx
4129a6:	0f 85 9d 44 03 00    	jne    0x446e49
4129ac:	e8 45 e6 00 00       	call   0x420ff6
4129b1:	59                   	pop    %ecx
4129b2:	85 c0                	test   %eax,%eax
4129b4:	0f 84 b5 00 00 00    	je     0x412a6f
4129ba:	8b c8                	mov    %eax,%ecx
4129bc:	e8 40 e4 00 00       	call   0x420e01
4129c1:	89 44 24 14          	mov    %eax,0x14(%esp)
4129c5:	8d 44 24 14          	lea    0x14(%esp),%eax
4129c9:	50                   	push   %eax
4129ca:	8d 8f c0 01 00 00    	lea    0x1c0(%edi),%ecx
4129d0:	e8 ed 0a ff ff       	call   0x4034c2
4129d5:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax
4129db:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4129df:	8b 04 98             	mov    (%eax,%ebx,4),%eax
4129e2:	8b 00                	mov    (%eax),%eax
4129e4:	89 18                	mov    %ebx,(%eax)
4129e6:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax
4129ec:	8b 04 98             	mov    (%eax,%ebx,4),%eax
4129ef:	8b 00                	mov    (%eax),%eax
4129f1:	89 48 04             	mov    %ecx,0x4(%eax)
4129f4:	8d 44 24 30          	lea    0x30(%esp),%eax
4129f8:	50                   	push   %eax
4129f9:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax
4129ff:	8b 04 98             	mov    (%eax,%ebx,4),%eax
412a02:	8b 08                	mov    (%eax),%ecx
412a04:	83 c1 08             	add    $0x8,%ecx
412a07:	e8 9b 57 ff ff       	call   0x4081a7
412a0c:	8b 4d 08             	mov    0x8(%ebp),%ecx
412a0f:	8b 41 04             	mov    0x4(%ecx),%eax
412a12:	8b 30                	mov    (%eax),%esi
412a14:	8b ce                	mov    %esi,%ecx
412a16:	e8 7c 6f ff ff       	call   0x409997
412a1b:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax
412a21:	ff 76 08             	push   0x8(%esi)
412a24:	8b 04 98             	mov    (%eax,%ebx,4),%eax
412a27:	8b 08                	mov    (%eax),%ecx
412a29:	83 c1 18             	add    $0x18,%ecx
412a2c:	e8 76 57 ff ff       	call   0x4081a7
412a31:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax
412a37:	ff 74 24 18          	push   0x18(%esp)
412a3b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
412a3f:	51                   	push   %ecx
412a40:	8b 04 98             	mov    (%eax,%ebx,4),%eax
412a43:	8b 00                	mov    (%eax),%eax
412a45:	ff 30                	push   (%eax)
412a47:	ff 35 ac 62 4c 00    	push   0x4c62ac
412a4d:	ff 15 dc f4 48 00    	call   *0x48f4dc
412a53:	85 c0                	test   %eax,%eax
412a55:	0f 84 15 44 03 00    	je     0x446e70
412a5b:	8d 4c 24 30          	lea    0x30(%esp),%ecx
412a5f:	e8 00 30 ff ff       	call   0x405a64
412a64:	5f                   	pop    %edi
412a65:	5e                   	pop    %esi
412a66:	33 c0                	xor    %eax,%eax
412a68:	5b                   	pop    %ebx
412a69:	8b e5                	mov    %ebp,%esp
412a6b:	5d                   	pop    %ebp
412a6c:	c2 08 00             	ret    $0x8
412a6f:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
412a74:	e9 4c ff ff ff       	jmp    0x4129c5
412a79:	55                   	push   %ebp
412a7a:	8b ec                	mov    %esp,%ebp
412a7c:	83 ec 10             	sub    $0x10,%esp
412a7f:	56                   	push   %esi
412a80:	57                   	push   %edi
412a81:	8b 7d 08             	mov    0x8(%ebp),%edi
412a84:	33 f6                	xor    %esi,%esi
412a86:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
412a8a:	0f 87 2e 44 03 00    	ja     0x446ebe
412a90:	85 f6                	test   %esi,%esi
412a92:	0f 85 3e 44 03 00    	jne    0x446ed6
412a98:	8b 47 04             	mov    0x4(%edi),%eax
412a9b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412a9e:	ff 30                	push   (%eax)
412aa0:	e8 f7 73 ff ff       	call   0x409e9c
412aa5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412aa8:	e8 58 6a ff ff       	call   0x409505
412aad:	5f                   	pop    %edi
412aae:	33 c0                	xor    %eax,%eax
412ab0:	5e                   	pop    %esi
412ab1:	8b e5                	mov    %ebp,%esp
412ab3:	5d                   	pop    %ebp
412ab4:	c2 08 00             	ret    $0x8
412ab7:	55                   	push   %ebp
412ab8:	8b ec                	mov    %esp,%ebp
412aba:	83 e4 f8             	and    $0xfffffff8,%esp
412abd:	81 ec bc 00 00 00    	sub    $0xbc,%esp
412ac3:	53                   	push   %ebx
412ac4:	56                   	push   %esi
412ac5:	57                   	push   %edi
412ac6:	6a 00                	push   $0x0
412ac8:	ff 15 7c f1 48 00    	call   *0x48f17c
412ace:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
412ad5:	c7 84 24 88 00 00 00 	movl   $0x40,0x88(%esp)
412adc:	40 00 00 00
412ae0:	50                   	push   %eax
412ae1:	ff 15 f8 f2 48 00    	call   *0x48f2f8
412ae7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412aea:	e8 3f 69 ff ff       	call   0x40942e
412aef:	33 db                	xor    %ebx,%ebx
412af1:	8b f0                	mov    %eax,%esi
412af3:	6a 07                	push   $0x7
412af5:	43                   	inc    %ebx
412af6:	53                   	push   %ebx
412af7:	56                   	push   %esi
412af8:	e8 b3 66 ff ff       	call   0x4091b0
412afd:	8b 8c 24 98 00 00 00 	mov    0x98(%esp),%ecx
412b04:	db 84 24 98 00 00 00 	fildl  0x98(%esp)
412b0b:	85 c9                	test   %ecx,%ecx
412b0d:	79 06                	jns    0x412b15
412b0f:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
412b15:	83 64 24 6c 00       	andl   $0x0,0x6c(%esp)
412b1a:	8d 44 24 64          	lea    0x64(%esp),%eax
412b1e:	6a 03                	push   $0x3
412b20:	5f                   	pop    %edi
412b21:	6a 00                	push   $0x0
412b23:	53                   	push   %ebx
412b24:	50                   	push   %eax
412b25:	56                   	push   %esi
412b26:	dd 5c 24 74          	fstpl  0x74(%esp)
412b2a:	89 bc 24 80 00 00 00 	mov    %edi,0x80(%esp)
412b31:	e8 0a 65 ff ff       	call   0x409040
412b36:	83 c4 1c             	add    $0x1c,%esp
412b39:	8d 4c 24 58          	lea    0x58(%esp),%ecx
412b3d:	e8 de 6e ff ff       	call   0x409a20
412b42:	df ac 24 90 00 00 00 	fildll 0x90(%esp)
412b49:	53                   	push   %ebx
412b4a:	53                   	push   %ebx
412b4b:	8d 44 24 40          	lea    0x40(%esp),%eax
412b4f:	50                   	push   %eax
412b50:	dd 5c 24 1c          	fstpl  0x1c(%esp)
412b54:	dd 44 24 1c          	fldl   0x1c(%esp)
412b58:	dc 0d f8 4b 4a 00    	fmull  0x4a4bf8
412b5e:	83 64 24 4c 00       	andl   $0x0,0x4c(%esp)
412b63:	56                   	push   %esi
412b64:	89 7c 24 54          	mov    %edi,0x54(%esp)
412b68:	dd 5c 24 48          	fstpl  0x48(%esp)
412b6c:	e8 cf 64 ff ff       	call   0x409040
412b71:	83 c4 10             	add    $0x10,%esp
412b74:	8d 4c 24 38          	lea    0x38(%esp),%ecx
412b78:	e8 a3 6e ff ff       	call   0x409a20
412b7d:	df ac 24 98 00 00 00 	fildll 0x98(%esp)
412b84:	6a 02                	push   $0x2
412b86:	53                   	push   %ebx
412b87:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
412b8e:	50                   	push   %eax
412b8f:	dd 5c 24 1c          	fstpl  0x1c(%esp)
412b93:	dd 44 24 1c          	fldl   0x1c(%esp)
412b97:	dc 0d f8 4b 4a 00    	fmull  0x4a4bf8
412b9d:	83 a4 24 8c 00 00 00 	andl   $0x0,0x8c(%esp)
412ba4:	00
412ba5:	56                   	push   %esi
412ba6:	89 bc 24 94 00 00 00 	mov    %edi,0x94(%esp)
412bad:	dd 9c 24 88 00 00 00 	fstpl  0x88(%esp)
412bb4:	e8 87 64 ff ff       	call   0x409040
412bb9:	83 c4 10             	add    $0x10,%esp
412bbc:	8d 4c 24 78          	lea    0x78(%esp),%ecx
412bc0:	e8 5b 6e ff ff       	call   0x409a20
412bc5:	df ac 24 a0 00 00 00 	fildll 0xa0(%esp)
412bcc:	57                   	push   %edi
412bcd:	53                   	push   %ebx
412bce:	8d 44 24 20          	lea    0x20(%esp),%eax
412bd2:	50                   	push   %eax
412bd3:	dd 5c 24 1c          	fstpl  0x1c(%esp)
412bd7:	dd 44 24 1c          	fldl   0x1c(%esp)
412bdb:	dc 0d f8 4b 4a 00    	fmull  0x4a4bf8
412be1:	83 64 24 2c 00       	andl   $0x0,0x2c(%esp)
412be6:	56                   	push   %esi
412be7:	89 7c 24 34          	mov    %edi,0x34(%esp)
412beb:	dd 5c 24 28          	fstpl  0x28(%esp)
412bef:	e8 4c 64 ff ff       	call   0x409040
412bf4:	83 c4 10             	add    $0x10,%esp
412bf7:	8d 4c 24 18          	lea    0x18(%esp),%ecx
412bfb:	e8 20 6e ff ff       	call   0x409a20
412c00:	df ac 24 a8 00 00 00 	fildll 0xa8(%esp)
412c07:	6a 04                	push   $0x4
412c09:	53                   	push   %ebx
412c0a:	8d 44 24 30          	lea    0x30(%esp),%eax
412c0e:	50                   	push   %eax
412c0f:	dd 5c 24 1c          	fstpl  0x1c(%esp)
412c13:	dd 44 24 1c          	fldl   0x1c(%esp)
412c17:	dc 0d f8 4b 4a 00    	fmull  0x4a4bf8
412c1d:	83 64 24 3c 00       	andl   $0x0,0x3c(%esp)
412c22:	56                   	push   %esi
412c23:	89 7c 24 44          	mov    %edi,0x44(%esp)
412c27:	dd 5c 24 38          	fstpl  0x38(%esp)
412c2b:	e8 10 64 ff ff       	call   0x409040