40e6c2:	df e0                	fnstsw %ax
40e6c4:	f6 c4 40             	test   $0x40,%ah
40e6c7:	0f 85 b8 00 00 00    	jne    0x40e785
40e6cd:	83 ec 10             	sub    $0x10,%esp
40e6d0:	8b dc                	mov    %esp,%ebx
40e6d2:	b9 09 00 00 00       	mov    $0x9,%ecx
40e6d7:	89 0b                	mov    %ecx,(%ebx)
40e6d9:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
40e6df:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
40e6e5:	89 4b 04             	mov    %ecx,0x4(%ebx)
40e6e8:	8b c7                	mov    %edi,%eax
40e6ea:	89 43 08             	mov    %eax,0x8(%ebx)
40e6ed:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
40e6f3:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
40e6f9:	89 43 0c             	mov    %eax,0xc(%ebx)
40e6fc:	8b 85 e0 fe ff ff    	mov    -0x120(%ebp),%eax
40e702:	83 ec 10             	sub    $0x10,%esp
40e705:	8b cc                	mov    %esp,%ecx
40e707:	be 08 00 00 00       	mov    $0x8,%esi
40e70c:	89 31                	mov    %esi,(%ecx)
40e70e:	89 41 04             	mov    %eax,0x4(%ecx)
40e711:	ba 30 da 40 00       	mov    $0x40da30,%edx
40e716:	89 51 08             	mov    %edx,0x8(%ecx)
40e719:	89 95 e4 fe ff ff    	mov    %edx,-0x11c(%ebp)
40e71f:	8b 95 e8 fe ff ff    	mov    -0x118(%ebp),%edx
40e725:	89 51 0c             	mov    %edx,0xc(%ecx)
40e728:	8b 95 c0 fe ff ff    	mov    -0x140(%ebp),%edx
40e72e:	83 ec 10             	sub    $0x10,%esp
40e731:	8b c4                	mov    %esp,%eax
40e733:	c7 85 bc fe ff ff 03 	movl   $0x3,-0x144(%ebp)
40e73a:	00 00 00
40e73d:	8b 8d bc fe ff ff    	mov    -0x144(%ebp),%ecx
40e743:	89 08                	mov    %ecx,(%eax)
40e745:	8b 8d c8 fe ff ff    	mov    -0x138(%ebp),%ecx
40e74b:	89 50 04             	mov    %edx,0x4(%eax)
40e74e:	6a 03                	push   $0x3
40e750:	bf 4f 1d 5b 00       	mov    $0x5b1d4f,%edi
40e755:	68 60 da 40 00       	push   $0x40da60
40e75a:	8d 55 94             	lea    -0x6c(%ebp),%edx
40e75d:	89 78 08             	mov    %edi,0x8(%eax)
40e760:	52                   	push   %edx
40e761:	89 b5 dc fe ff ff    	mov    %esi,-0x124(%ebp)
40e767:	89 bd c4 fe ff ff    	mov    %edi,-0x13c(%ebp)
40e76d:	89 48 0c             	mov    %ecx,0xc(%eax)
40e770:	ff 15 94 10 40 00    	call   *0x401094
40e776:	50                   	push   %eax
40e777:	ff 15 24 11 40 00    	call   *0x401124
40e77d:	8b 7d 08             	mov    0x8(%ebp),%edi
40e780:	83 c4 3c             	add    $0x3c,%esp
40e783:	33 db                	xor    %ebx,%ebx
40e785:	8b 07                	mov    (%edi),%eax
40e787:	8d 8d a8 fe ff ff    	lea    -0x158(%ebp),%ecx
40e78d:	51                   	push   %ecx
40e78e:	57                   	push   %edi
40e78f:	ff 90 b0 00 00 00    	call   *0xb0(%eax)
40e795:	db e2                	fnclex
40e797:	3b c3                	cmp    %ebx,%eax
40e799:	7d 12                	jge    0x40e7ad
40e79b:	68 b0 00 00 00       	push   $0xb0
40e7a0:	68 9c d7 40 00       	push   $0x40d79c
40e7a5:	57                   	push   %edi
40e7a6:	50                   	push   %eax
40e7a7:	ff 15 38 10 40 00    	call   *0x401038
40e7ad:	d9 85 a8 fe ff ff    	flds   -0x158(%ebp)
40e7b3:	d8 1d 90 11 40 00    	fcomps 0x401190
40e7b9:	df e0                	fnstsw %ax
40e7bb:	f6 c4 40             	test   $0x40,%ah
40e7be:	0f 84 90 00 00 00    	je     0x40e854
40e7c4:	39 1d 20 07 41 00    	cmp    %ebx,0x410720
40e7ca:	75 10                	jne    0x40e7dc
40e7cc:	68 20 07 41 00       	push   $0x410720
40e7d1:	68 94 d9 40 00       	push   $0x40d994
40e7d6:	ff 15 e8 10 40 00    	call   *0x4010e8
40e7dc:	8b 35 20 07 41 00    	mov    0x410720,%esi
40e7e2:	8d 9d 54 ff ff ff    	lea    -0xac(%ebp),%ebx
40e7e8:	53                   	push   %ebx
40e7e9:	68 09 53 00 00       	push   $0x5309
40e7ee:	83 ec 10             	sub    $0x10,%esp
40e7f1:	b9 02 00 00 00       	mov    $0x2,%ecx
40e7f6:	8b dc                	mov    %esp,%ebx
40e7f8:	89 0b                	mov    %ecx,(%ebx)
40e7fa:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
40e800:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
40e806:	b8 1b 00 00 00       	mov    $0x1b,%eax
40e80b:	89 4b 04             	mov    %ecx,0x4(%ebx)
40e80e:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
40e814:	8b 16                	mov    (%esi),%edx
40e816:	89 43 08             	mov    %eax,0x8(%ebx)
40e819:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
40e81f:	56                   	push   %esi
40e820:	89 43 0c             	mov    %eax,0xc(%ebx)
40e823:	ff 52 34             	call   *0x34(%edx)
40e826:	db e2                	fnclex
40e828:	33 db                	xor    %ebx,%ebx
40e82a:	3b c3                	cmp    %ebx,%eax
40e82c:	7d 0f                	jge    0x40e83d
40e82e:	6a 34                	push   $0x34
40e830:	68 84 d9 40 00       	push   $0x40d984
40e835:	56                   	push   %esi
40e836:	50                   	push   %eax
40e837:	ff 15 38 10 40 00    	call   *0x401038
40e83d:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40e843:	50                   	push   %eax
40e844:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
40e847:	51                   	push   %ecx
40e848:	89 9d 54 ff ff ff    	mov    %ebx,-0xac(%ebp)
40e84e:	ff 15 fc 10 40 00    	call   *0x4010fc
40e854:	68 c8 d9 40 00       	push   $0x40d9c8
40e859:	68 a0 da 40 00       	push   $0x40daa0
40e85e:	ff 15 30 10 40 00    	call   *0x401030
40e864:	8b d0                	mov    %eax,%edx
40e866:	8d 8d 60 ff ff ff    	lea    -0xa0(%ebp),%ecx
40e86c:	ff 15 48 11 40 00    	call   *0x401148
40e872:	6a 02                	push   $0x2
40e874:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40e87a:	50                   	push   %eax
40e87b:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40e881:	8d 95 60 ff ff ff    	lea    -0xa0(%ebp),%edx
40e887:	51                   	push   %ecx
40e888:	89 95 04 ff ff ff    	mov    %edx,-0xfc(%ebp)
40e88e:	c7 85 fc fe ff ff 08 	movl   $0x4008,-0x104(%ebp)
40e895:	40 00 00
40e898:	ff 15 24 10 40 00    	call   *0x401024
40e89e:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40e8a4:	52                   	push   %edx
40e8a5:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40e8ab:	50                   	push   %eax
40e8ac:	c7 85 f4 fe ff ff ac 	movl   $0x40daac,-0x10c(%ebp)
40e8b3:	da 40 00
40e8b6:	c7 85 ec fe ff ff 08 	movl   $0x8008,-0x114(%ebp)
40e8bd:	80 00 00
40e8c0:	ff 15 18 11 40 00    	call   *0x401118
40e8c6:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40e8cc:	8b f0                	mov    %eax,%esi
40e8ce:	ff 15 14 10 40 00    	call   *0x401014
40e8d4:	66 3b f3             	cmp    %bx,%si
40e8d7:	74 41                	je     0x40e91a
40e8d9:	dd 05 88 11 40 00    	fldl   0x401188
40e8df:	8b 0f                	mov    (%edi),%ecx
40e8e1:	df e0                	fnstsw %ax
40e8e3:	a8 0d                	test   $0xd,%al
40e8e5:	0f 85 a8 0c 00 00    	jne    0x40f593
40e8eb:	d9 9d 6c fe ff ff    	fstps  -0x194(%ebp)
40e8f1:	d9 85 6c fe ff ff    	flds   -0x194(%ebp)
40e8f7:	51                   	push   %ecx
40e8f8:	d9 1c 24             	fstps  (%esp)
40e8fb:	57                   	push   %edi
40e8fc:	ff 91 84 00 00 00    	call   *0x84(%ecx)
40e902:	db e2                	fnclex
40e904:	3b c3                	cmp    %ebx,%eax
40e906:	7d 12                	jge    0x40e91a
40e908:	68 84 00 00 00       	push   $0x84
40e90d:	68 9c d7 40 00       	push   $0x40d79c
40e912:	57                   	push   %edi
40e913:	50                   	push   %eax
40e914:	ff 15 38 10 40 00    	call   *0x401038
40e91a:	8b 35 30 10 40 00    	mov    0x401030,%esi
40e920:	68 b4 da 40 00       	push   $0x40dab4
40e925:	68 bc da 40 00       	push   $0x40dabc
40e92a:	ff d6                	call   *%esi
40e92c:	8b d0                	mov    %eax,%edx
40e92e:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40e934:	ff 15 48 11 40 00    	call   *0x401148
40e93a:	50                   	push   %eax
40e93b:	68 c4 da 40 00       	push   $0x40dac4
40e940:	ff d6                	call   *%esi
40e942:	8b d0                	mov    %eax,%edx
40e944:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
40e94a:	ff 15 48 11 40 00    	call   *0x401148
40e950:	50                   	push   %eax
40e951:	ff 15 58 10 40 00    	call   *0x401058
40e957:	33 d2                	xor    %edx,%edx
40e959:	66 3d ff ff          	cmp    $0xffff,%ax
40e95d:	0f 95 c2             	setne  %dl
40e960:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
40e966:	50                   	push   %eax
40e967:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40e96d:	51                   	push   %ecx
40e96e:	6a 02                	push   $0x2
40e970:	f7 da                	neg    %edx
40e972:	8b f2                	mov    %edx,%esi
40e974:	ff 15 04 11 40 00    	call   *0x401104
40e97a:	83 c4 0c             	add    $0xc,%esp
40e97d:	66 3b f3             	cmp    %bx,%si
40e980:	74 43                	je     0x40e9c5
40e982:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40e988:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40e98e:	c7 85 04 ff ff ff d0 	movl   $0x40dad0,-0xfc(%ebp)
40e995:	da 40 00
40e998:	c7 85 fc fe ff ff 08 	movl   $0x8,-0x104(%ebp)
40e99f:	00 00 00
40e9a2:	ff 15 2c 11 40 00    	call   *0x40112c
40e9a8:	6a 02                	push   $0x2
40e9aa:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40e9b0:	52                   	push   %edx
40e9b1:	ff 15 b0 10 40 00    	call   *0x4010b0
40e9b7:	dd d8                	fstp   %st(0)
40e9b9:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40e9bf:	ff 15 14 10 40 00    	call   *0x401014
40e9c5:	68 ec da 40 00       	push   $0x40daec
40e9ca:	ff 15 00 11 40 00    	call   *0x401100
40e9d0:	83 f8 02             	cmp    $0x2,%eax
40e9d3:	0f 84 ab 00 00 00    	je     0x40ea84
40e9d9:	39 1d 20 07 41 00    	cmp    %ebx,0x410720
40e9df:	75 10                	jne    0x40e9f1
40e9e1:	68 20 07 41 00       	push   $0x410720
40e9e6:	68 94 d9 40 00       	push   $0x40d994
40e9eb:	ff 15 e8 10 40 00    	call   *0x4010e8
40e9f1:	8b 35 20 07 41 00    	mov    0x410720,%esi
40e9f7:	8b 06                	mov    (%esi),%eax
40e9f9:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40e9ff:	51                   	push   %ecx
40ea00:	56                   	push   %esi
40ea01:	ff 50 1c             	call   *0x1c(%eax)
40ea04:	db e2                	fnclex
40ea06:	3b c3                	cmp    %ebx,%eax
40ea08:	7d 0f                	jge    0x40ea19
40ea0a:	6a 1c                	push   $0x1c
40ea0c:	68 84 d9 40 00       	push   $0x40d984
40ea11:	56                   	push   %esi
40ea12:	50                   	push   %eax
40ea13:	ff 15 38 10 40 00    	call   *0x401038
40ea19:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40ea1f:	83 ec 10             	sub    $0x10,%esp
40ea22:	8b dc                	mov    %esp,%ebx
40ea24:	ba 0a 00 00 00       	mov    $0xa,%edx
40ea29:	89 13                	mov    %edx,(%ebx)
40ea2b:	89 95 fc fe ff ff    	mov    %edx,-0x104(%ebp)
40ea31:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
40ea37:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40ea3c:	89 53 04             	mov    %edx,0x4(%ebx)
40ea3f:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40ea45:	8b 38                	mov    (%eax),%edi
40ea47:	89 4b 08             	mov    %ecx,0x8(%ebx)
40ea4a:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40ea50:	68 f4 da 40 00       	push   $0x40daf4
40ea55:	50                   	push   %eax
40ea56:	8b f0                	mov    %eax,%esi
40ea58:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40ea5b:	ff 57 60             	call   *0x60(%edi)
40ea5e:	db e2                	fnclex
40ea60:	33 db                	xor    %ebx,%ebx
40ea62:	3b c3                	cmp    %ebx,%eax
40ea64:	7d 0f                	jge    0x40ea75
40ea66:	6a 60                	push   $0x60
40ea68:	68 1c da 40 00       	push   $0x40da1c
40ea6d:	56                   	push   %esi
40ea6e:	50                   	push   %eax
40ea6f:	ff 15 38 10 40 00    	call   *0x401038
40ea75:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40ea7b:	ff 15 5c 11 40 00    	call   *0x40115c
40ea81:	8b 7d 08             	mov    0x8(%ebp),%edi
40ea84:	39 1d 20 07 41 00    	cmp    %ebx,0x410720
40ea8a:	75 10                	jne    0x40ea9c
40ea8c:	68 20 07 41 00       	push   $0x410720
40ea91:	68 94 d9 40 00       	push   $0x40d994
40ea96:	ff 15 e8 10 40 00    	call   *0x4010e8
40ea9c:	8b 35 20 07 41 00    	mov    0x410720,%esi
40eaa2:	8b 16                	mov    (%esi),%edx
40eaa4:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
40eaaa:	50                   	push   %eax
40eaab:	56                   	push   %esi
40eaac:	ff 52 14             	call   *0x14(%edx)
40eaaf:	db e2                	fnclex
40eab1:	3b c3                	cmp    %ebx,%eax
40eab3:	7d 0f                	jge    0x40eac4
40eab5:	6a 14                	push   $0x14
40eab7:	68 84 d9 40 00       	push   $0x40d984
40eabc:	56                   	push   %esi
40eabd:	50                   	push   %eax
40eabe:	ff 15 38 10 40 00    	call   *0x401038
40eac4:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40eaca:	8b 08                	mov    (%eax),%ecx
40eacc:	6a 01                	push   $0x1
40eace:	68 44 db 40 00       	push   $0x40db44
40ead3:	50                   	push   %eax
40ead4:	8b f0                	mov    %eax,%esi
40ead6:	ff 91 38 01 00 00    	call   *0x138(%ecx)
40eadc:	db e2                	fnclex
40eade:	3b c3                	cmp    %ebx,%eax
40eae0:	7d 12                	jge    0x40eaf4
40eae2:	68 38 01 00 00       	push   $0x138
40eae7:	68 b4 d9 40 00       	push   $0x40d9b4
40eaec:	56                   	push   %esi
40eaed:	50                   	push   %eax
40eaee:	ff 15 38 10 40 00    	call   *0x401038
40eaf4:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40eafa:	ff 15 5c 11 40 00    	call   *0x40115c
40eb00:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40eb06:	52                   	push   %edx
40eb07:	c7 85 48 ff ff ff f3 	movl   $0x61f3,-0xb8(%ebp)
40eb0e:	61 00 00
40eb11:	c7 85 40 ff ff ff 02 	movl   $0x2,-0xc0(%ebp)
40eb18:	00 00 00
40eb1b:	ff 15 54 10 40 00    	call   *0x401054
40eb21:	33 f6                	xor    %esi,%esi
40eb23:	66 8b f0             	mov    %ax,%si
40eb26:	66 f7 de             	neg    %si
40eb29:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40eb2f:	1b f6                	sbb    %esi,%esi
40eb31:	f7 de                	neg    %esi
40eb33:	f7 de                	neg    %esi
40eb35:	ff 15 14 10 40 00    	call   *0x401014
40eb3b:	66 3b f3             	cmp    %bx,%si
40eb3e:	74 1f                	je     0x40eb5f
40eb40:	53                   	push   %ebx
40eb41:	68 74 db 40 00       	push   $0x40db74
40eb46:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40eb4c:	50                   	push   %eax
40eb4d:	ff 15 cc 10 40 00    	call   *0x4010cc
40eb53:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40eb59:	ff 15 14 10 40 00    	call   *0x401014
40eb5f:	6a 02                	push   $0x2
40eb61:	68 c8 d9 40 00       	push   $0x40d9c8
40eb66:	68 a0 da 40 00       	push   $0x40daa0
40eb6b:	ff 15 30 10 40 00    	call   *0x401030
40eb71:	8b d0                	mov    %eax,%edx
40eb73:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40eb79:	ff 15 48 11 40 00    	call   *0x401148
40eb7f:	50                   	push   %eax
40eb80:	68 ac da 40 00       	push   $0x40daac
40eb85:	53                   	push   %ebx
40eb86:	ff 15 28 11 40 00    	call   *0x401128
40eb8c:	33 c9                	xor    %ecx,%ecx
40eb8e:	83 f8 05             	cmp    $0x5,%eax
40eb91:	0f 95 c1             	setne  %cl
40eb94:	f7 d9                	neg    %ecx
40eb96:	8b f1                	mov    %ecx,%esi
40eb98:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40eb9e:	ff 15 58 11 40 00    	call   *0x401158
40eba4:	66 3b f3             	cmp    %bx,%si
40eba7:	74 0b                	je     0x40ebb4
40eba9:	68 d0 db 40 00       	push   $0x40dbd0
40ebae:	ff 15 d8 10 40 00    	call   *0x4010d8
40ebb4:	68 2c dc 40 00       	push   $0x40dc2c
40ebb9:	68 2c dc 40 00       	push   $0x40dc2c
40ebbe:	ff 15 30 10 40 00    	call   *0x401030
40ebc4:	8b d0                	mov    %eax,%edx
40ebc6:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ebcc:	ff 15 48 11 40 00    	call   *0x401148
40ebd2:	8b 1d 30 11 40 00    	mov    0x401130,%ebx
40ebd8:	50                   	push   %eax
40ebd9:	68 2c dc 40 00       	push   $0x40dc2c
40ebde:	6a 00                	push   $0x0
40ebe0:	ff d3                	call   *%ebx
40ebe2:	33 f6                	xor    %esi,%esi
40ebe4:	66 8b f0             	mov    %ax,%si
40ebe7:	66 4e                	dec    %si
40ebe9:	66 f7 de             	neg    %si
40ebec:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx