409640:	8b f1                	mov    %ecx,%esi
409642:	57                   	push   %edi
409643:	8b 46 0c             	mov    0xc(%esi),%eax
409646:	48                   	dec    %eax
409647:	0f 85 3d 60 03 00    	jne    0x43f68a
40964d:	8b 7d 08             	mov    0x8(%ebp),%edi
409650:	53                   	push   %ebx
409651:	83 7f 0c 01          	cmpl   $0x1,0xc(%edi)
409655:	0f 84 a4 60 03 00    	je     0x43f6ff
40965b:	6a 02                	push   $0x2
40965d:	5b                   	pop    %ebx
40965e:	39 5f 0c             	cmp    %ebx,0xc(%edi)
409661:	0f 84 c8 60 03 00    	je     0x43f72f
409667:	e8 27 ff ff ff       	call   0x409593
40966c:	8b cf                	mov    %edi,%ecx
40966e:	e8 85 06 00 00       	call   0x409cf8
409673:	dc 0e                	fmull  (%esi)
409675:	dd 1e                	fstpl  (%esi)
409677:	5b                   	pop    %ebx
409678:	8b ce                	mov    %esi,%ecx
40967a:	e8 00 03 00 00       	call   0x40997f
40967f:	5f                   	pop    %edi
409680:	8b c6                	mov    %esi,%eax
409682:	5e                   	pop    %esi
409683:	5d                   	pop    %ebp
409684:	c2 04 00             	ret    $0x4
409687:	55                   	push   %ebp
409688:	8b ec                	mov    %esp,%ebp
40968a:	51                   	push   %ecx
40968b:	53                   	push   %ebx
40968c:	56                   	push   %esi
40968d:	57                   	push   %edi
40968e:	8b f9                	mov    %ecx,%edi
409690:	8b 47 0c             	mov    0xc(%edi),%eax
409693:	83 f8 07             	cmp    $0x7,%eax
409696:	0f 8f 4b 61 03 00    	jg     0x43f7e7
40969c:	0f 84 25 61 03 00    	je     0x43f7c7
4096a2:	48                   	dec    %eax
4096a3:	75 3d                	jne    0x4096e2
4096a5:	8b 75 08             	mov    0x8(%ebp),%esi
4096a8:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
4096ac:	0f 84 bd 60 03 00    	je     0x43f76f
4096b2:	6a 02                	push   $0x2
4096b4:	59                   	pop    %ecx
4096b5:	39 4e 0c             	cmp    %ecx,0xc(%esi)
4096b8:	0f 84 f4 60 03 00    	je     0x43f7b2
4096be:	8b cf                	mov    %edi,%ecx
4096c0:	e8 ce fe ff ff       	call   0x409593
4096c5:	8b ce                	mov    %esi,%ecx
4096c7:	e8 2c 06 00 00       	call   0x409cf8
4096cc:	dc 2f                	fsubrl (%edi)
4096ce:	dd 1f                	fstpl  (%edi)
4096d0:	8b cf                	mov    %edi,%ecx
4096d2:	e8 a8 02 00 00       	call   0x40997f
4096d7:	8b c7                	mov    %edi,%eax
4096d9:	5f                   	pop    %edi
4096da:	5e                   	pop    %esi
4096db:	5b                   	pop    %ebx
4096dc:	8b e5                	mov    %ebp,%esp
4096de:	5d                   	pop    %ebp
4096df:	c2 04 00             	ret    $0x4
4096e2:	48                   	dec    %eax
4096e3:	0f 84 62 60 03 00    	je     0x43f74b
4096e9:	48                   	dec    %eax
4096ea:	75 05                	jne    0x4096f1
4096ec:	8b 4d 08             	mov    0x8(%ebp),%ecx
4096ef:	eb d6                	jmp    0x4096c7
4096f1:	48                   	dec    %eax
4096f2:	0f 84 08 61 03 00    	je     0x43f800
4096f8:	eb d6                	jmp    0x4096d0
4096fa:	cc                   	int3
4096fb:	cc                   	int3
4096fc:	cc                   	int3
4096fd:	cc                   	int3
4096fe:	cc                   	int3
4096ff:	cc                   	int3
409700:	55                   	push   %ebp
409701:	8b ec                	mov    %esp,%ebp
409703:	83 ec 08             	sub    $0x8,%esp
409706:	53                   	push   %ebx
409707:	8b d9                	mov    %ecx,%ebx
409709:	56                   	push   %esi
40970a:	57                   	push   %edi
40970b:	8b 43 0c             	mov    0xc(%ebx),%eax
40970e:	83 f8 04             	cmp    $0x4,%eax
409711:	74 17                	je     0x40972a
409713:	83 f8 03             	cmp    $0x3,%eax
409716:	0f 85 84 00 00 00    	jne    0x4097a0
40971c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40971f:	e8 d4 05 00 00       	call   0x409cf8
409724:	dc 03                	faddl  (%ebx)
409726:	dd 1b                	fstpl  (%ebx)
409728:	eb 60                	jmp    0x40978a
40972a:	83 f8 01             	cmp    $0x1,%eax
40972d:	74 51                	je     0x409780
40972f:	83 f8 02             	cmp    $0x2,%eax
409732:	74 4c                	je     0x409780
409734:	83 f8 03             	cmp    $0x3,%eax
409737:	74 47                	je     0x409780
409739:	83 f8 04             	cmp    $0x4,%eax
40973c:	0f 85 b9 00 00 00    	jne    0x4097fb
409742:	8b 43 08             	mov    0x8(%ebx),%eax
409745:	68 80 fb 48 00       	push   $0x48fb80
40974a:	8b 30                	mov    (%eax),%esi
40974c:	56                   	push   %esi
40974d:	e8 68 a4 01 00       	call   0x423bba
409752:	83 c4 08             	add    $0x8,%esp
409755:	85 c0                	test   %eax,%eax
409757:	0f 84 88 00 00 00    	je     0x4097e5
40975d:	83 7b 0c 03          	cmpl   $0x3,0xc(%ebx)
409761:	74 1d                	je     0x409780
409763:	8b cb                	mov    %ebx,%ecx
409765:	e8 8e 05 00 00       	call   0x409cf8
40976a:	8b cb                	mov    %ebx,%ecx
40976c:	dd 5d f8             	fstpl  -0x8(%ebp)
40976f:	e8 ac 02 00 00       	call   0x409a20
409774:	dd 45 f8             	fldl   -0x8(%ebp)
409777:	dd 1b                	fstpl  (%ebx)
409779:	c7 43 0c 03 00 00 00 	movl   $0x3,0xc(%ebx)
409780:	ff 75 08             	push   0x8(%ebp)
409783:	8b cb                	mov    %ebx,%ecx
409785:	e8 76 ff ff ff       	call   0x409700
40978a:	8b 4b 08             	mov    0x8(%ebx),%ecx
40978d:	85 c9                	test   %ecx,%ecx
40978f:	0f 85 45 61 03 00    	jne    0x43f8da
409795:	5f                   	pop    %edi
409796:	5e                   	pop    %esi
409797:	8b c3                	mov    %ebx,%eax
409799:	5b                   	pop    %ebx
40979a:	8b e5                	mov    %ebp,%esp
40979c:	5d                   	pop    %ebp
40979d:	c2 04 00             	ret    $0x4
4097a0:	48                   	dec    %eax
4097a1:	83 f8 0a             	cmp    $0xa,%eax
4097a4:	77 e4                	ja     0x40978a
4097a6:	0f b6 80 58 98 40 00 	movzbl 0x409858(%eax),%eax
4097ad:	ff 24 85 40 98 40 00 	jmp    *0x409840(,%eax,4)
4097b4:	8b 75 08             	mov    0x8(%ebp),%esi
4097b7:	8b 46 0c             	mov    0xc(%esi),%eax
4097ba:	83 f8 01             	cmp    $0x1,%eax
4097bd:	75 48                	jne    0x409807
4097bf:	8b 0e                	mov    (%esi),%ecx
4097c1:	8b 03                	mov    (%ebx),%eax
4097c3:	8d 34 08             	lea    (%eax,%ecx,1),%esi
4097c6:	99                   	cltd
4097c7:	89 45 08             	mov    %eax,0x8(%ebp)
4097ca:	8b fa                	mov    %edx,%edi
4097cc:	8b c1                	mov    %ecx,%eax
4097ce:	8b 4d 08             	mov    0x8(%ebp),%ecx
4097d1:	99                   	cltd
4097d2:	03 c8                	add    %eax,%ecx
4097d4:	8b c6                	mov    %esi,%eax
4097d6:	13 fa                	adc    %edx,%edi
4097d8:	99                   	cltd
4097d9:	3b c1                	cmp    %ecx,%eax
4097db:	75 48                	jne    0x409825
4097dd:	3b d7                	cmp    %edi,%edx
4097df:	75 44                	jne    0x409825
4097e1:	89 33                	mov    %esi,(%ebx)
4097e3:	eb a5                	jmp    0x40978a
4097e5:	68 7c fb 48 00       	push   $0x48fb7c
4097ea:	56                   	push   %esi
4097eb:	e8 ca a3 01 00       	call   0x423bba
4097f0:	83 c4 08             	add    $0x8,%esp
4097f3:	85 c0                	test   %eax,%eax
4097f5:	0f 85 62 ff ff ff    	jne    0x40975d
4097fb:	8b cb                	mov    %ebx,%ecx
4097fd:	e8 03 fd ff ff       	call   0x409505
409802:	e9 79 ff ff ff       	jmp    0x409780
409807:	83 f8 02             	cmp    $0x2,%eax
40980a:	0f 84 04 60 03 00    	je     0x43f814
409810:	e8 7e fd ff ff       	call   0x409593
409815:	8b ce                	mov    %esi,%ecx
409817:	e8 dc 04 00 00       	call   0x409cf8
40981c:	dc 03                	faddl  (%ebx)
40981e:	dd 1b                	fstpl  (%ebx)
409820:	e9 65 ff ff ff       	jmp    0x40978a
409825:	c7 43 0c 02 00 00 00 	movl   $0x2,0xc(%ebx)
40982c:	89 0b                	mov    %ecx,(%ebx)
40982e:	89 7b 04             	mov    %edi,0x4(%ebx)
409831:	e9 54 ff ff ff       	jmp    0x40978a
409836:	e8 58 fd ff ff       	call   0x409593
40983b:	e9 dc fe ff ff       	jmp    0x40971c
409840:	b4 97                	mov    $0x97,%ah
409842:	40                   	inc    %eax
409843:	00 2d f8 43 00 ba    	add    %ch,0xba0043f8
409849:	f8                   	clc
40984a:	43                   	inc    %ebx
40984b:	00 36                	add    %dh,(%esi)
40984d:	98                   	cwtl
40984e:	40                   	inc    %eax
40984f:	00 52 f8             	add    %dl,-0x8(%edx)
409852:	43                   	inc    %ebx
409853:	00 8a 97 40 00 00    	add    %cl,0x4097(%edx)
409859:	01 05 05 05 05 02    	add    %eax,0x2050505
40985f:	05 03 03 04 55       	add    $0x55040303,%eax
409864:	8b ec                	mov    %esp,%ebp
409866:	56                   	push   %esi
409867:	8b f1                	mov    %ecx,%esi
409869:	e8 b2 01 00 00       	call   0x409a20
40986e:	8a 45 08             	mov    0x8(%ebp),%al
409871:	88 06                	mov    %al,(%esi)
409873:	8b c6                	mov    %esi,%eax
409875:	c7 46 0c 09 00 00 00 	movl   $0x9,0xc(%esi)
40987c:	5e                   	pop    %esi
40987d:	5d                   	pop    %ebp
40987e:	c2 04 00             	ret    $0x4
409881:	cc                   	int3
409882:	cc                   	int3
409883:	cc                   	int3
409884:	cc                   	int3
409885:	cc                   	int3
409886:	cc                   	int3
409887:	cc                   	int3
409888:	cc                   	int3
409889:	cc                   	int3
40988a:	cc                   	int3
40988b:	cc                   	int3
40988c:	cc                   	int3
40988d:	cc                   	int3
40988e:	cc                   	int3
40988f:	cc                   	int3
409890:	55                   	push   %ebp
409891:	8b ec                	mov    %esp,%ebp
409893:	83 ec 20             	sub    $0x20,%esp
409896:	53                   	push   %ebx
409897:	56                   	push   %esi
409898:	57                   	push   %edi
409899:	8b f9                	mov    %ecx,%edi
40989b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40989e:	e8 b5 fb ff ff       	call   0x409458
4098a3:	8b 37                	mov    (%edi),%esi
4098a5:	8b ce                	mov    %esi,%ecx
4098a7:	e8 14 fa ff ff       	call   0x4092c0
4098ac:	8b 06                	mov    (%esi),%eax
4098ae:	8b 5d 08             	mov    0x8(%ebp),%ebx
4098b1:	c7 80 10 02 00 00 00 	movl   $0x0,0x210(%eax)
4098b8:	00 00 00
4098bb:	8b 5b 08             	mov    0x8(%ebx),%ebx
4098be:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4098c1:	85 db                	test   %ebx,%ebx
4098c3:	0f 84 b2 00 00 00    	je     0x40997b
4098c9:	53                   	push   %ebx
4098ca:	6a 01                	push   $0x1
4098cc:	ff 37                	push   (%edi)
4098ce:	e8 dd f8 ff ff       	call   0x4091b0
4098d3:	83 c4 0c             	add    $0xc,%esp
4098d6:	33 f6                	xor    %esi,%esi
4098d8:	85 db                	test   %ebx,%ebx
4098da:	0f 84 9b 00 00 00    	je     0x40997b
4098e0:	8b 45 08             	mov    0x8(%ebp),%eax
4098e3:	6a 10                	push   $0x10
4098e5:	8b 40 04             	mov    0x4(%eax),%eax
4098e8:	8b 1c b0             	mov    (%eax,%esi,4),%ebx
4098eb:	e8 06 77 01 00       	call   0x420ff6
4098f0:	8b f8                	mov    %eax,%edi
4098f2:	83 c4 04             	add    $0x4,%esp
4098f5:	85 ff                	test   %edi,%edi
4098f7:	74 7e                	je     0x409977
4098f9:	8b 0b                	mov    (%ebx),%ecx
4098fb:	89 0f                	mov    %ecx,(%edi)
4098fd:	8b 4b 04             	mov    0x4(%ebx),%ecx
409900:	89 4f 04             	mov    %ecx,0x4(%edi)
409903:	8b 4b 08             	mov    0x8(%ebx),%ecx
409906:	89 4f 08             	mov    %ecx,0x8(%edi)
409909:	8b 43 0c             	mov    0xc(%ebx),%eax
40990c:	89 47 0c             	mov    %eax,0xc(%edi)
40990f:	ff 00                	incl   (%eax)
409911:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409914:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409917:	56                   	push   %esi
409918:	6a 01                	push   $0x1
40991a:	50                   	push   %eax
40991b:	ff 33                	push   (%ebx)
40991d:	89 7d ec             	mov    %edi,-0x14(%ebp)
409920:	c7 45 f0 04 00 00 00 	movl   $0x4,-0x10(%ebp)
409927:	e8 14 f7 ff ff       	call   0x409040
40992c:	83 c4 10             	add    $0x10,%esp
40992f:	85 ff                	test   %edi,%edi
409931:	74 21                	je     0x409954
409933:	8b 47 0c             	mov    0xc(%edi),%eax
409936:	ff 08                	decl   (%eax)
409938:	8b 47 0c             	mov    0xc(%edi),%eax
40993b:	83 38 00             	cmpl   $0x0,(%eax)
40993e:	0f 84 a8 5f 03 00    	je     0x43f8ec
409944:	57                   	push   %edi
409945:	e8 22 77 01 00       	call   0x42106c
40994a:	83 c4 04             	add    $0x4,%esp
40994d:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
409954:	46                   	inc    %esi
409955:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40995c:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
409963:	3b 75 f4             	cmp    -0xc(%ebp),%esi
409966:	0f 82 74 ff ff ff    	jb     0x4098e0
40996c:	8b c3                	mov    %ebx,%eax
40996e:	5f                   	pop    %edi
40996f:	5e                   	pop    %esi
409970:	5b                   	pop    %ebx
409971:	8b e5                	mov    %ebp,%esp
409973:	5d                   	pop    %ebp
409974:	c2 04 00             	ret    $0x4
409977:	33 ff                	xor    %edi,%edi
409979:	eb 96                	jmp    0x409911
40997b:	8b c7                	mov    %edi,%eax
40997d:	eb ef                	jmp    0x40996e
40997f:	56                   	push   %esi
409980:	8b f1                	mov    %ecx,%esi
409982:	8b 4e 08             	mov    0x8(%esi),%ecx
409985:	85 c9                	test   %ecx,%ecx
409987:	75 02                	jne    0x40998b
409989:	5e                   	pop    %esi
40998a:	c3                   	ret
40998b:	51                   	push   %ecx
40998c:	e8 ac e1 ff ff       	call   0x407b3d
409991:	83 66 08 00          	andl   $0x0,0x8(%esi)
409995:	5e                   	pop    %esi
409996:	c3                   	ret
409997:	55                   	push   %ebp
409998:	8b ec                	mov    %esp,%ebp
40999a:	81 ec 94 00 00 00    	sub    $0x94,%esp
4099a0:	56                   	push   %esi
4099a1:	8b f1                	mov    %ecx,%esi
4099a3:	57                   	push   %edi
4099a4:	33 ff                	xor    %edi,%edi
4099a6:	39 7e 08             	cmp    %edi,0x8(%esi)
4099a9:	74 06                	je     0x4099b1
4099ab:	5f                   	pop    %edi
4099ac:	5e                   	pop    %esi
4099ad:	8b e5                	mov    %ebp,%esp
4099af:	5d                   	pop    %ebp
4099b0:	c3                   	ret
4099b1:	8b 46 0c             	mov    0xc(%esi),%eax
4099b4:	48                   	dec    %eax
4099b5:	75 34                	jne    0x4099eb
4099b7:	6a 0a                	push   $0xa
4099b9:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
4099bf:	50                   	push   %eax
4099c0:	ff 36                	push   (%esi)
4099c2:	e8 39 9d 01 00       	call   0x423700
4099c7:	83 c4 0c             	add    $0xc,%esp
4099ca:	6a 10                	push   $0x10
4099cc:	e8 25 76 01 00       	call   0x420ff6
4099d1:	59                   	pop    %ecx
4099d2:	85 c0                	test   %eax,%eax
4099d4:	74 10                	je     0x4099e6
4099d6:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
4099dc:	51                   	push   %ecx
4099dd:	8b c8                	mov    %eax,%ecx
4099df:	e8 5d e5 ff ff       	call   0x407f41
4099e4:	8b f8                	mov    %eax,%edi