413731:	89 4c 24 38          	mov    %ecx,0x38(%esp)
413735:	57                   	push   %edi
413736:	8b 43 04             	mov    0x4(%ebx),%eax
413739:	8b 30                	mov    (%eax),%esi
41373b:	8b ce                	mov    %esi,%ecx
41373d:	e8 55 62 ff ff       	call   0x409997
413742:	8b 46 08             	mov    0x8(%esi),%eax
413745:	8b 00                	mov    (%eax),%eax
413747:	89 44 24 14          	mov    %eax,0x14(%esp)
41374b:	8b 43 04             	mov    0x4(%ebx),%eax
41374e:	8b 30                	mov    (%eax),%esi
413750:	8b ce                	mov    %esi,%ecx
413752:	e8 40 62 ff ff       	call   0x409997
413757:	8b 46 08             	mov    0x8(%esi),%eax
41375a:	8b 78 04             	mov    0x4(%eax),%edi
41375d:	8b 43 04             	mov    0x4(%ebx),%eax
413760:	8b 70 04             	mov    0x4(%eax),%esi
413763:	8b ce                	mov    %esi,%ecx
413765:	e8 2d 62 ff ff       	call   0x409997
41376a:	8b 46 08             	mov    0x8(%esi),%eax
41376d:	8b 00                	mov    (%eax),%eax
41376f:	89 44 24 20          	mov    %eax,0x20(%esp)
413773:	8b 43 04             	mov    0x4(%ebx),%eax
413776:	8b 70 04             	mov    0x4(%eax),%esi
413779:	8b ce                	mov    %esi,%ecx
41377b:	e8 17 62 ff ff       	call   0x409997
413780:	8b 46 08             	mov    0x8(%esi),%eax
413783:	8d 4c 24 40          	lea    0x40(%esp),%ecx
413787:	57                   	push   %edi
413788:	8b 40 04             	mov    0x4(%eax),%eax
41378b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
41378f:	e8 e2 43 ff ff       	call   0x407b76
413794:	8b 45 08             	mov    0x8(%ebp),%eax
413797:	33 db                	xor    %ebx,%ebx
413799:	33 f6                	xor    %esi,%esi
41379b:	8b d3                	mov    %ebx,%edx
41379d:	8a cb                	mov    %bl,%cl
41379f:	89 54 24 34          	mov    %edx,0x34(%esp)
4137a3:	46                   	inc    %esi
4137a4:	88 4c 24 13          	mov    %cl,0x13(%esp)
4137a8:	83 78 08 03          	cmpl   $0x3,0x8(%eax)
4137ac:	72 29                	jb     0x4137d7
4137ae:	8b 40 04             	mov    0x4(%eax),%eax
4137b1:	8b 48 08             	mov    0x8(%eax),%ecx
4137b4:	e8 e3 64 ff ff       	call   0x409c9c
4137b9:	8b d0                	mov    %eax,%edx
4137bb:	89 54 24 34          	mov    %edx,0x34(%esp)
4137bf:	f6 c2 02             	test   $0x2,%dl
4137c2:	0f 84 0f 02 00 00    	je     0x4139d7
4137c8:	33 c0                	xor    %eax,%eax
4137ca:	40                   	inc    %eax
4137cb:	8a c8                	mov    %al,%cl
4137cd:	23 d0                	and    %eax,%edx
4137cf:	88 4c 24 13          	mov    %cl,0x13(%esp)
4137d3:	89 54 24 34          	mov    %edx,0x34(%esp)
4137d7:	8b 44 24 18          	mov    0x18(%esp),%eax
4137db:	85 c0                	test   %eax,%eax
4137dd:	0f 84 6b 3c 03 00    	je     0x44744e
4137e3:	8b ca                	mov    %edx,%ecx
4137e5:	2b cb                	sub    %ebx,%ecx
4137e7:	0f 84 14 3d 03 00    	je     0x447501
4137ed:	49                   	dec    %ecx
4137ee:	0f 85 ea 01 00 00    	jne    0x4139de
4137f4:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
4137f8:	85 ff                	test   %edi,%edi
4137fa:	7e 5f                	jle    0x41385b
4137fc:	8b 74 24 14          	mov    0x14(%esp),%esi
413800:	8b 44 24 20          	mov    0x20(%esp),%eax
413804:	8b ce                	mov    %esi,%ecx
413806:	57                   	push   %edi
413807:	66 8b 10             	mov    (%eax),%dx
41380a:	e8 e7 c6 00 00       	call   0x41fef6
41380f:	8b d0                	mov    %eax,%edx
413811:	89 54 24 3c          	mov    %edx,0x3c(%esp)
413815:	59                   	pop    %ecx
413816:	85 d2                	test   %edx,%edx
413818:	0f 84 a2 01 00 00    	je     0x4139c0
41381e:	8b 44 24 18          	mov    0x18(%esp),%eax
413822:	8b ca                	mov    %edx,%ecx
413824:	2b ce                	sub    %esi,%ecx
413826:	d1 f9                	sar    $1,%ecx
413828:	03 c8                	add    %eax,%ecx
41382a:	2b f9                	sub    %ecx,%edi
41382c:	0f 88 8e 01 00 00    	js     0x4139c0
413832:	50                   	push   %eax
413833:	ff 74 24 24          	push   0x24(%esp)
413837:	52                   	push   %edx
413838:	e8 65 00 01 00       	call   0x4238a2
41383d:	8b 4c 24 24          	mov    0x24(%esp),%ecx
413841:	83 c4 0c             	add    $0xc,%esp
413844:	8b 74 24 38          	mov    0x38(%esp),%esi
413848:	85 c0                	test   %eax,%eax
41384a:	0f 85 a6 3c 03 00    	jne    0x4474f6
413850:	ff 44 24 1c          	incl   0x1c(%esp)
413854:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
413857:	85 ff                	test   %edi,%edi
413859:	7f a5                	jg     0x413800
41385b:	8b 7d 08             	mov    0x8(%ebp),%edi
41385e:	8b 47 04             	mov    0x4(%edi),%eax
413861:	8b 30                	mov    (%eax),%esi
413863:	8b ce                	mov    %esi,%ecx
413865:	e8 2d 61 ff ff       	call   0x409997
41386a:	8b 46 08             	mov    0x8(%esi),%eax
41386d:	8b 00                	mov    (%eax),%eax
41386f:	89 44 24 14          	mov    %eax,0x14(%esp)
413873:	8b 47 04             	mov    0x4(%edi),%eax
413876:	8b 30                	mov    (%eax),%esi
413878:	8b ce                	mov    %esi,%ecx
41387a:	e8 18 61 ff ff       	call   0x409997
41387f:	8b 46 08             	mov    0x8(%esi),%eax
413882:	8b 74 24 1c          	mov    0x1c(%esp),%esi
413886:	8b 78 04             	mov    0x4(%eax),%edi
413889:	85 f6                	test   %esi,%esi
41388b:	0f 8e 98 3d 03 00    	jle    0x447629
413891:	8b 4d 0c             	mov    0xc(%ebp),%ecx
413894:	46                   	inc    %esi
413895:	89 74 24 38          	mov    %esi,0x38(%esp)
413899:	e8 90 5b ff ff       	call   0x40942e
41389e:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
4138a3:	0f 84 a0 3c 03 00    	je     0x447549
4138a9:	56                   	push   %esi
4138aa:	33 f6                	xor    %esi,%esi
4138ac:	89 44 24 30          	mov    %eax,0x30(%esp)
4138b0:	46                   	inc    %esi
4138b1:	56                   	push   %esi
4138b2:	50                   	push   %eax
4138b3:	e8 f8 58 ff ff       	call   0x4091b0
4138b8:	83 c4 0c             	add    $0xc,%esp
4138bb:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
4138bf:	8d 4c 24 40          	lea    0x40(%esp),%ecx
4138c3:	89 5c 24 28          	mov    %ebx,0x28(%esp)
4138c7:	89 5c 24 30          	mov    %ebx,0x30(%esp)
4138cb:	e8 1c 46 ff ff       	call   0x407eec
4138d0:	83 7c 24 38 00       	cmpl   $0x0,0x38(%esp)
4138d5:	0f 8e d1 00 00 00    	jle    0x4139ac
4138db:	8b 44 24 34          	mov    0x34(%esp),%eax
4138df:	2b c3                	sub    %ebx,%eax
4138e1:	0f 84 c2 3c 03 00    	je     0x4475a9
4138e7:	48                   	dec    %eax
4138e8:	0f 85 b0 00 00 00    	jne    0x41399e
4138ee:	8b 44 24 14          	mov    0x14(%esp),%eax
4138f2:	89 44 24 3c          	mov    %eax,0x3c(%esp)
4138f6:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4138fa:	57                   	push   %edi
4138fb:	66 8b 11             	mov    (%ecx),%dx
4138fe:	8b c8                	mov    %eax,%ecx
413900:	e8 f1 c5 00 00       	call   0x41fef6
413905:	8b d0                	mov    %eax,%edx
413907:	89 54 24 28          	mov    %edx,0x28(%esp)
41390b:	59                   	pop    %ecx
41390c:	85 d2                	test   %edx,%edx
41390e:	0f 84 b3 00 00 00    	je     0x4139c7
413914:	8b 44 24 18          	mov    0x18(%esp),%eax
413918:	8b ca                	mov    %edx,%ecx
41391a:	2b 4c 24 14          	sub    0x14(%esp),%ecx
41391e:	d1 f9                	sar    $1,%ecx
413920:	03 c8                	add    %eax,%ecx
413922:	2b f9                	sub    %ecx,%edi
413924:	0f 88 be 00 00 00    	js     0x4139e8
41392a:	50                   	push   %eax
41392b:	ff 74 24 24          	push   0x24(%esp)
41392f:	52                   	push   %edx
413930:	e8 6d ff 00 00       	call   0x4238a2
413935:	83 c4 0c             	add    $0xc,%esp
413938:	85 c0                	test   %eax,%eax
41393a:	0f 85 52 3c 03 00    	jne    0x447592
413940:	8b 54 24 24          	mov    0x24(%esp),%edx
413944:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
413948:	8b c2                	mov    %edx,%eax
41394a:	2b c1                	sub    %ecx,%eax
41394c:	d1 f8                	sar    $1,%eax
41394e:	50                   	push   %eax
41394f:	53                   	push   %ebx
413950:	51                   	push   %ecx
413951:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
413955:	e8 53 3f ff ff       	call   0x4078ad
41395a:	8d 44 24 40          	lea    0x40(%esp),%eax
41395e:	50                   	push   %eax
41395f:	8d 4c 24 54          	lea    0x54(%esp),%ecx
413963:	e8 82 5a ff ff       	call   0x4093ea
413968:	ff 74 24 1c          	push   0x1c(%esp)
41396c:	8d 44 24 54          	lea    0x54(%esp),%eax
413970:	56                   	push   %esi
413971:	50                   	push   %eax
413972:	ff 74 24 38          	push   0x38(%esp)
413976:	e8 c5 56 ff ff       	call   0x409040
41397b:	83 c4 10             	add    $0x10,%esp
41397e:	8d 4c 24 50          	lea    0x50(%esp),%ecx
413982:	ff 44 24 1c          	incl   0x1c(%esp)
413986:	e8 95 60 ff ff       	call   0x409a20
41398b:	8b 44 24 18          	mov    0x18(%esp),%eax
41398f:	8b 4c 24 24          	mov    0x24(%esp),%ecx
413993:	ff 44 24 28          	incl   0x28(%esp)
413997:	8d 04 41             	lea    (%ecx,%eax,2),%eax
41399a:	89 44 24 14          	mov    %eax,0x14(%esp)
41399e:	8b 44 24 28          	mov    0x28(%esp),%eax
4139a2:	3b 44 24 38          	cmp    0x38(%esp),%eax
4139a6:	0f 8c 2f ff ff ff    	jl     0x4138db
4139ac:	8d 4c 24 40          	lea    0x40(%esp),%ecx
4139b0:	e8 af 20 ff ff       	call   0x405a64
4139b5:	5f                   	pop    %edi
4139b6:	5e                   	pop    %esi
4139b7:	33 c0                	xor    %eax,%eax
4139b9:	5b                   	pop    %ebx
4139ba:	8b e5                	mov    %ebp,%esp
4139bc:	5d                   	pop    %ebp
4139bd:	c2 08 00             	ret    $0x8
4139c0:	8b fb                	mov    %ebx,%edi
4139c2:	e9 90 fe ff ff       	jmp    0x413857
4139c7:	8b 44 24 14          	mov    0x14(%esp),%eax
4139cb:	8d 14 78             	lea    (%eax,%edi,2),%edx
4139ce:	89 54 24 24          	mov    %edx,0x24(%esp)
4139d2:	e9 6d ff ff ff       	jmp    0x413944
4139d7:	8a cb                	mov    %bl,%cl
4139d9:	e9 f9 fd ff ff       	jmp    0x4137d7
4139de:	83 4c 24 1c ff       	orl    $0xffffffff,0x1c(%esp)
4139e3:	e9 41 3c 03 00       	jmp    0x447629
4139e8:	03 c7                	add    %edi,%eax
4139ea:	8d 14 42             	lea    (%edx,%eax,2),%edx
4139ed:	eb df                	jmp    0x4139ce
4139ef:	55                   	push   %ebp
4139f0:	8b ec                	mov    %esp,%ebp
4139f2:	8b 45 08             	mov    0x8(%ebp),%eax
4139f5:	83 ec 10             	sub    $0x10,%esp
4139f8:	8b 40 04             	mov    0x4(%eax),%eax
4139fb:	53                   	push   %ebx
4139fc:	56                   	push   %esi
4139fd:	57                   	push   %edi
4139fe:	8b 30                	mov    (%eax),%esi
413a00:	8b ce                	mov    %esi,%ecx
413a02:	e8 90 5f ff ff       	call   0x409997
413a07:	8b 46 08             	mov    0x8(%esi),%eax
413a0a:	8b 75 08             	mov    0x8(%ebp),%esi
413a0d:	8b 58 04             	mov    0x4(%eax),%ebx
413a10:	8b 46 04             	mov    0x4(%esi),%eax
413a13:	8b 48 04             	mov    0x4(%eax),%ecx
413a16:	e8 81 62 ff ff       	call   0x409c9c
413a1b:	8b f8                	mov    %eax,%edi
413a1d:	85 ff                	test   %edi,%edi
413a1f:	78 47                	js     0x413a68
413a21:	3b fb                	cmp    %ebx,%edi
413a23:	7f 47                	jg     0x413a6c
413a25:	2b df                	sub    %edi,%ebx
413a27:	8d 4d f0             	lea    -0x10(%ebp),%ecx
413a2a:	53                   	push   %ebx
413a2b:	e8 46 41 ff ff       	call   0x407b76
413a30:	8b 46 04             	mov    0x4(%esi),%eax
413a33:	8b 30                	mov    (%eax),%esi
413a35:	8b ce                	mov    %esi,%ecx
413a37:	e8 5b 5f ff ff       	call   0x409997
413a3c:	53                   	push   %ebx
413a3d:	57                   	push   %edi
413a3e:	ff 76 08             	push   0x8(%esi)
413a41:	8d 4d f0             	lea    -0x10(%ebp),%ecx
413a44:	e8 62 3f ff ff       	call   0x4079ab
413a49:	8b 4d 0c             	mov    0xc(%ebp),%ecx
413a4c:	8d 45 f0             	lea    -0x10(%ebp),%eax
413a4f:	50                   	push   %eax
413a50:	e8 47 61 ff ff       	call   0x409b9c
413a55:	8d 4d f0             	lea    -0x10(%ebp),%ecx
413a58:	e8 07 20 ff ff       	call   0x405a64
413a5d:	5f                   	pop    %edi
413a5e:	5e                   	pop    %esi
413a5f:	33 c0                	xor    %eax,%eax
413a61:	5b                   	pop    %ebx
413a62:	8b e5                	mov    %ebp,%esp
413a64:	5d                   	pop    %ebp
413a65:	c2 08 00             	ret    $0x8
413a68:	33 ff                	xor    %edi,%edi
413a6a:	eb b5                	jmp    0x413a21
413a6c:	8b fb                	mov    %ebx,%edi
413a6e:	eb b5                	jmp    0x413a25
413a70:	55                   	push   %ebp
413a71:	8b ec                	mov    %esp,%ebp
413a73:	83 ec 10             	sub    $0x10,%esp
413a76:	8d 45 f0             	lea    -0x10(%ebp),%eax
413a79:	56                   	push   %esi
413a7a:	57                   	push   %edi
413a7b:	50                   	push   %eax
413a7c:	8b f9                	mov    %ecx,%edi
413a7e:	ff 15 bc f1 48 00    	call   *0x48f1bc
413a84:	85 c0                	test   %eax,%eax
413a86:	0f 84 8f 3c 03 00    	je     0x44771b
413a8c:	8b 45 08             	mov    0x8(%ebp),%eax
413a8f:	df 6d f0             	fildll -0x10(%ebp)
413a92:	8b 40 04             	mov    0x4(%eax),%eax
413a95:	8b 08                	mov    (%eax),%ecx
413a97:	dd 5d f8             	fstpl  -0x8(%ebp)
413a9a:	dd 45 f8             	fldl   -0x8(%ebp)
413a9d:	dd 5d f8             	fstpl  -0x8(%ebp)
413aa0:	e8 53 62 ff ff       	call   0x409cf8
413aa5:	dc 6d f8             	fsubrl -0x8(%ebp)
413aa8:	dd 5d f8             	fstpl  -0x8(%ebp)
413aab:	e8 46 cd 00 00       	call   0x4207f6
413ab0:	dc 7d f8             	fdivrl -0x8(%ebp)
413ab3:	8b 75 0c             	mov    0xc(%ebp),%esi
413ab6:	8b ce                	mov    %esi,%ecx
413ab8:	dd 5d f8             	fstpl  -0x8(%ebp)
413abb:	e8 60 5f ff ff       	call   0x409a20
413ac0:	dd 45 f8             	fldl   -0x8(%ebp)
413ac3:	dd 1e                	fstpl  (%esi)
413ac5:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
413acc:	5f                   	pop    %edi
413acd:	33 c0                	xor    %eax,%eax
413acf:	5e                   	pop    %esi
413ad0:	8b e5                	mov    %ebp,%esp
413ad2:	5d                   	pop    %ebp
413ad3:	c2 08 00             	ret    $0x8
413ad6:	55                   	push   %ebp
413ad7:	8b ec                	mov    %esp,%ebp
413ad9:	83 ec 10             	sub    $0x10,%esp
413adc:	8d 45 f8             	lea    -0x8(%ebp),%eax
413adf:	56                   	push   %esi
413ae0:	57                   	push   %edi
413ae1:	50                   	push   %eax
413ae2:	8b f9                	mov    %ecx,%edi
413ae4:	ff 15 bc f1 48 00    	call   *0x48f1bc
413aea:	8b 75 0c             	mov    0xc(%ebp),%esi
413aed:	8b ce                	mov    %esi,%ecx
413aef:	85 c0                	test   %eax,%eax
413af1:	0f 84 4e 3c 03 00    	je     0x447745
413af7:	df 6d f8             	fildll -0x8(%ebp)
413afa:	dd 5d f0             	fstpl  -0x10(%ebp)
413afd:	e8 1e 5f ff ff       	call   0x409a20
413b02:	dd 45 f0             	fldl   -0x10(%ebp)
413b05:	dd 1e                	fstpl  (%esi)
413b07:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
413b0e:	5f                   	pop    %edi
413b0f:	33 c0                	xor    %eax,%eax
413b11:	5e                   	pop    %esi
413b12:	8b e5                	mov    %ebp,%esp
413b14:	5d                   	pop    %ebp
413b15:	c2 08 00             	ret    $0x8
413b18:	55                   	push   %ebp
413b19:	8b ec                	mov    %esp,%ebp
413b1b:	51                   	push   %ecx
413b1c:	8b 45 08             	mov    0x8(%ebp),%eax
413b1f:	53                   	push   %ebx
413b20:	56                   	push   %esi
413b21:	57                   	push   %edi
413b22:	8b f9                	mov    %ecx,%edi
413b24:	8b 48 04             	mov    0x4(%eax),%ecx
413b27:	89 7d fc             	mov    %edi,-0x4(%ebp)
413b2a:	8b 31                	mov    (%ecx),%esi
413b2c:	83 7e 0c 06          	cmpl   $0x6,0xc(%esi)
413b30:	75 02                	jne    0x413b34
413b32:	8b 36                	mov    (%esi),%esi
413b34:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
413b38:	0f 85 2c 3c 03 00    	jne    0x44776a
413b3e:	33 db                	xor    %ebx,%ebx