40a66f:	7d 0e                	jge    0x40a67f
40a671:	68 40 01 00 00       	push   $0x140
40a676:	68 38 8f 40 00       	push   $0x408f38
40a67b:	56                   	push   %esi
40a67c:	50                   	push   %eax
40a67d:	ff d7                	call   *%edi
40a67f:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40a682:	ff 15 8c 11 40 00    	call   *0x40118c
40a688:	8d 45 98             	lea    -0x68(%ebp),%eax
40a68b:	50                   	push   %eax
40a68c:	ff 15 84 11 40 00    	call   *0x401184
40a692:	8d 55 98             	lea    -0x68(%ebp),%edx
40a695:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40a698:	ff 15 08 10 40 00    	call   *0x401008
40a69e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40a6a1:	89 19                	mov    %ebx,(%ecx)
40a6a3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a6a6:	c7 42 04 00 00 f0 3f 	movl   $0x3ff00000,0x4(%edx)
40a6ad:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40a6b0:	89 58 08             	mov    %ebx,0x8(%eax)
40a6b3:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40a6b6:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
40a6bc:	50                   	push   %eax
40a6bd:	68 00 00 f0 3f       	push   $0x3ff00000
40a6c2:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a6c5:	c7 41 0c 00 00 00 40 	movl   $0x40000000,0xc(%ecx)
40a6cc:	53                   	push   %ebx
40a6cd:	89 95 50 ff ff ff    	mov    %edx,-0xb0(%ebp)
40a6d3:	ff 15 44 11 40 00    	call   *0x401144
40a6d9:	ff 15 78 10 40 00    	call   *0x401078
40a6df:	dc 1d b0 11 40 00    	fcompl 0x4011b0
40a6e5:	df e0                	fnstsw %ax
40a6e7:	f6 c4 40             	test   $0x40,%ah
40a6ea:	0f 85 81 00 00 00    	jne    0x40a771
40a6f0:	53                   	push   %ebx
40a6f1:	68 5c 91 40 00       	push   $0x40915c
40a6f6:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a6f9:	51                   	push   %ecx
40a6fa:	8d 55 98             	lea    -0x68(%ebp),%edx
40a6fd:	52                   	push   %edx
40a6fe:	ff 15 64 11 40 00    	call   *0x401164
40a704:	a1 c8 d6 40 00       	mov    0x40d6c8,%eax
40a709:	83 c4 10             	add    $0x10,%esp
40a70c:	3b c3                	cmp    %ebx,%eax
40a70e:	75 10                	jne    0x40a720
40a710:	68 c8 d6 40 00       	push   $0x40d6c8
40a715:	68 28 8f 40 00       	push   $0x408f28
40a71a:	ff 15 14 11 40 00    	call   *0x401114
40a720:	8b 35 c8 d6 40 00    	mov    0x40d6c8,%esi
40a726:	8b 1e                	mov    (%esi),%ebx
40a728:	68 88 91 40 00       	push   $0x409188
40a72d:	68 20 90 40 00       	push   $0x409020
40a732:	8d 45 98             	lea    -0x68(%ebp),%eax
40a735:	50                   	push   %eax
40a736:	ff 15 b4 10 40 00    	call   *0x4010b4
40a73c:	50                   	push   %eax
40a73d:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40a740:	51                   	push   %ecx
40a741:	ff 15 60 10 40 00    	call   *0x401060
40a747:	50                   	push   %eax
40a748:	56                   	push   %esi
40a749:	ff 53 40             	call   *0x40(%ebx)
40a74c:	db e2                	fnclex
40a74e:	33 db                	xor    %ebx,%ebx
40a750:	3b c3                	cmp    %ebx,%eax
40a752:	7d 0b                	jge    0x40a75f
40a754:	6a 40                	push   $0x40
40a756:	68 18 8f 40 00       	push   $0x408f18
40a75b:	56                   	push   %esi
40a75c:	50                   	push   %eax
40a75d:	ff d7                	call   *%edi
40a75f:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40a762:	ff 15 8c 11 40 00    	call   *0x40118c
40a768:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40a76b:	ff 15 18 10 40 00    	call   *0x401018
40a771:	8d 95 68 ff ff ff    	lea    -0x98(%ebp),%edx
40a777:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40a77a:	c7 85 70 ff ff ff bc 	movl   $0x4091bc,-0x90(%ebp)
40a781:	91 40 00
40a784:	c7 85 68 ff ff ff 08 	movl   $0x8,-0x98(%ebp)
40a78b:	00 00 00
40a78e:	ff 15 60 11 40 00    	call   *0x401160
40a794:	53                   	push   %ebx
40a795:	6a 03                	push   $0x3
40a797:	8d 55 98             	lea    -0x68(%ebp),%edx
40a79a:	52                   	push   %edx
40a79b:	8d 45 88             	lea    -0x78(%ebp),%eax
40a79e:	50                   	push   %eax
40a79f:	ff 15 f8 10 40 00    	call   *0x4010f8
40a7a5:	8d 4d 88             	lea    -0x78(%ebp),%ecx
40a7a8:	51                   	push   %ecx
40a7a9:	8d 95 58 ff ff ff    	lea    -0xa8(%ebp),%edx
40a7af:	52                   	push   %edx
40a7b0:	c7 85 60 ff ff ff c4 	movl   $0x4091c4,-0xa0(%ebp)
40a7b7:	91 40 00
40a7ba:	c7 85 58 ff ff ff 08 	movl   $0x8008,-0xa8(%ebp)
40a7c1:	80 00 00
40a7c4:	ff 15 50 11 40 00    	call   *0x401150
40a7ca:	66 8b f0             	mov    %ax,%si
40a7cd:	8d 45 88             	lea    -0x78(%ebp),%eax
40a7d0:	50                   	push   %eax
40a7d1:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40a7d4:	51                   	push   %ecx
40a7d5:	6a 02                	push   $0x2
40a7d7:	ff 15 20 10 40 00    	call   *0x401020
40a7dd:	83 c4 0c             	add    $0xc,%esp
40a7e0:	66 3b f3             	cmp    %bx,%si
40a7e3:	74 25                	je     0x40a80a
40a7e5:	8b 75 08             	mov    0x8(%ebp),%esi
40a7e8:	8b 16                	mov    (%esi),%edx
40a7ea:	68 83 12 00 00       	push   $0x1283
40a7ef:	56                   	push   %esi
40a7f0:	ff 92 5c 01 00 00    	call   *0x15c(%edx)
40a7f6:	db e2                	fnclex
40a7f8:	3b c3                	cmp    %ebx,%eax
40a7fa:	7d 0e                	jge    0x40a80a
40a7fc:	68 5c 01 00 00       	push   $0x15c
40a801:	68 7c 8d 40 00       	push   $0x408d7c
40a806:	56                   	push   %esi
40a807:	50                   	push   %eax
40a808:	ff d7                	call   *%edi
40a80a:	68 bc 91 40 00       	push   $0x4091bc
40a80f:	ff 15 2c 10 40 00    	call   *0x40102c
40a815:	66 3d 61 00          	cmp    $0x61,%ax
40a819:	74 47                	je     0x40a862
40a81b:	39 1d c8 d6 40 00    	cmp    %ebx,0x40d6c8
40a821:	75 10                	jne    0x40a833
40a823:	68 c8 d6 40 00       	push   $0x40d6c8
40a828:	68 28 8f 40 00       	push   $0x408f28
40a82d:	ff 15 14 11 40 00    	call   *0x401114
40a833:	8b 35 c8 d6 40 00    	mov    0x40d6c8,%esi
40a839:	8b 06                	mov    (%esi),%eax
40a83b:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40a83e:	51                   	push   %ecx
40a83f:	68 81 00 00 00       	push   $0x81
40a844:	56                   	push   %esi
40a845:	ff 50 48             	call   *0x48(%eax)
40a848:	db e2                	fnclex
40a84a:	3b c3                	cmp    %ebx,%eax
40a84c:	7d 0b                	jge    0x40a859
40a84e:	6a 48                	push   $0x48
40a850:	68 18 8f 40 00       	push   $0x408f18
40a855:	56                   	push   %esi
40a856:	50                   	push   %eax
40a857:	ff d7                	call   *%edi
40a859:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40a85c:	ff 15 90 11 40 00    	call   *0x401190
40a862:	9b                   	fwait
40a863:	68 c0 a8 40 00       	push   $0x40a8c0
40a868:	eb 2d                	jmp    0x40a897
40a86a:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40a86d:	ff 15 90 11 40 00    	call   *0x401190
40a873:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40a876:	ff 15 8c 11 40 00    	call   *0x40118c
40a87c:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
40a882:	52                   	push   %edx
40a883:	8d 45 88             	lea    -0x78(%ebp),%eax
40a886:	50                   	push   %eax
40a887:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40a88a:	51                   	push   %ecx
40a88b:	6a 03                	push   $0x3
40a88d:	ff 15 20 10 40 00    	call   *0x401020
40a893:	83 c4 10             	add    $0x10,%esp
40a896:	c3                   	ret
40a897:	8b 35 18 10 40 00    	mov    0x401018,%esi
40a89d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a8a0:	ff d6                	call   *%esi
40a8a2:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
40a8a8:	50                   	push   %eax
40a8a9:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a8ac:	6a 00                	push   $0x0
40a8ae:	89 95 50 ff ff ff    	mov    %edx,-0xb0(%ebp)
40a8b4:	ff 15 54 10 40 00    	call   *0x401054
40a8ba:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40a8bd:	ff d6                	call   *%esi
40a8bf:	c3                   	ret
40a8c0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a8c3:	5f                   	pop    %edi
40a8c4:	5e                   	pop    %esi
40a8c5:	33 c0                	xor    %eax,%eax
40a8c7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a8ce:	5b                   	pop    %ebx
40a8cf:	8b e5                	mov    %ebp,%esp
40a8d1:	5d                   	pop    %ebp
40a8d2:	c2 24 00             	ret    $0x24
40a8d5:	90                   	nop
40a8d6:	90                   	nop
40a8d7:	90                   	nop
40a8d8:	90                   	nop
40a8d9:	90                   	nop
40a8da:	90                   	nop
40a8db:	90                   	nop
40a8dc:	90                   	nop
40a8dd:	90                   	nop
40a8de:	90                   	nop
40a8df:	90                   	nop
40a8e0:	55                   	push   %ebp
40a8e1:	8b ec                	mov    %esp,%ebp
40a8e3:	83 ec 0c             	sub    $0xc,%esp
40a8e6:	68 76 12 40 00       	push   $0x401276
40a8eb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a8f1:	50                   	push   %eax
40a8f2:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40a8f9:	81 ec 8c 00 00 00    	sub    $0x8c,%esp
40a8ff:	53                   	push   %ebx
40a900:	56                   	push   %esi
40a901:	57                   	push   %edi
40a902:	89 65 f4             	mov    %esp,-0xc(%ebp)
40a905:	c7 45 f8 c8 11 40 00 	movl   $0x4011c8,-0x8(%ebp)
40a90c:	33 ff                	xor    %edi,%edi
40a90e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a911:	8b 45 08             	mov    0x8(%ebp),%eax
40a914:	8b 08                	mov    (%eax),%ecx
40a916:	50                   	push   %eax
40a917:	ff 51 04             	call   *0x4(%ecx)
40a91a:	8b 55 14             	mov    0x14(%ebp),%edx
40a91d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a920:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40a923:	89 7d e0             	mov    %edi,-0x20(%ebp)
40a926:	89 7d dc             	mov    %edi,-0x24(%ebp)
40a929:	89 7d d8             	mov    %edi,-0x28(%ebp)
40a92c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40a92f:	89 7d d0             	mov    %edi,-0x30(%ebp)
40a932:	89 7d c0             	mov    %edi,-0x40(%ebp)
40a935:	89 7d b0             	mov    %edi,-0x50(%ebp)
40a938:	89 7d a0             	mov    %edi,-0x60(%ebp)
40a93b:	89 7d 90             	mov    %edi,-0x70(%ebp)
40a93e:	89 7d 80             	mov    %edi,-0x80(%ebp)
40a941:	89 bd 7c ff ff ff    	mov    %edi,-0x84(%ebp)
40a947:	ff 15 2c 11 40 00    	call   *0x40112c
40a94d:	8d 55 c0             	lea    -0x40(%ebp),%edx
40a950:	52                   	push   %edx
40a951:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a954:	50                   	push   %eax
40a955:	c7 45 c8 0e 00 00 00 	movl   $0xe,-0x38(%ebp)
40a95c:	c7 45 c0 02 00 00 00 	movl   $0x2,-0x40(%ebp)
40a963:	ff 15 7c 11 40 00    	call   *0x40117c
40a969:	68 e8 91 40 00       	push   $0x4091e8
40a96e:	68 fc 91 40 00       	push   $0x4091fc
40a973:	ff 15 3c 10 40 00    	call   *0x40103c
40a979:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40a97c:	51                   	push   %ecx
40a97d:	8d 55 a0             	lea    -0x60(%ebp),%edx
40a980:	52                   	push   %edx
40a981:	89 45 a8             	mov    %eax,-0x58(%ebp)
40a984:	c7 45 a0 08 80 00 00 	movl   $0x8008,-0x60(%ebp)
40a98b:	ff 15 50 11 40 00    	call   *0x401150
40a991:	8b 1d 20 10 40 00    	mov    0x401020,%ebx
40a997:	66 8b f0             	mov    %ax,%si
40a99a:	8d 45 a0             	lea    -0x60(%ebp),%eax
40a99d:	50                   	push   %eax
40a99e:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40a9a1:	51                   	push   %ecx
40a9a2:	8d 55 c0             	lea    -0x40(%ebp),%edx
40a9a5:	52                   	push   %edx
40a9a6:	6a 03                	push   $0x3
40a9a8:	ff d3                	call   *%ebx
40a9aa:	83 c4 10             	add    $0x10,%esp
40a9ad:	66 3b f7             	cmp    %di,%si
40a9b0:	74 37                	je     0x40a9e9
40a9b2:	8d 55 80             	lea    -0x80(%ebp),%edx
40a9b5:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a9b8:	c7 45 88 1c 92 40 00 	movl   $0x40921c,-0x78(%ebp)
40a9bf:	c7 45 80 08 00 00 00 	movl   $0x8,-0x80(%ebp)
40a9c6:	ff 15 60 11 40 00    	call   *0x401160
40a9cc:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a9cf:	50                   	push   %eax
40a9d0:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40a9d3:	51                   	push   %ecx
40a9d4:	ff 15 50 10 40 00    	call   *0x401050
40a9da:	8d 55 b0             	lea    -0x50(%ebp),%edx
40a9dd:	52                   	push   %edx
40a9de:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a9e1:	50                   	push   %eax
40a9e2:	6a 02                	push   $0x2
40a9e4:	ff d3                	call   *%ebx
40a9e6:	83 c4 0c             	add    $0xc,%esp
40a9e9:	68 50 92 40 00       	push   $0x409250
40a9ee:	68 58 92 40 00       	push   $0x409258
40a9f3:	ff 15 3c 10 40 00    	call   *0x40103c
40a9f9:	8b 35 70 11 40 00    	mov    0x401170,%esi
40a9ff:	8b d0                	mov    %eax,%edx
40aa01:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40aa04:	ff d6                	call   *%esi
40aa06:	50                   	push   %eax
40aa07:	ff 15 38 11 40 00    	call   *0x401138
40aa0d:	50                   	push   %eax
40aa0e:	ff 15 00 11 40 00    	call   *0x401100
40aa14:	8b d0                	mov    %eax,%edx
40aa16:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40aa19:	ff d6                	call   *%esi
40aa1b:	50                   	push   %eax
40aa1c:	68 bc 91 40 00       	push   $0x4091bc
40aa21:	ff 15 90 10 40 00    	call   *0x401090
40aa27:	8b f0                	mov    %eax,%esi
40aa29:	f7 de                	neg    %esi
40aa2b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40aa2e:	51                   	push   %ecx
40aa2f:	1b f6                	sbb    %esi,%esi
40aa31:	8d 55 d8             	lea    -0x28(%ebp),%edx
40aa34:	52                   	push   %edx
40aa35:	f7 de                	neg    %esi
40aa37:	6a 02                	push   $0x2
40aa39:	f7 de                	neg    %esi
40aa3b:	ff 15 3c 11 40 00    	call   *0x40113c
40aa41:	83 c4 0c             	add    $0xc,%esp
40aa44:	66 3b f7             	cmp    %di,%si
40aa47:	74 2d                	je     0x40aa76
40aa49:	8d 55 80             	lea    -0x80(%ebp),%edx
40aa4c:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40aa4f:	c7 45 88 60 92 40 00 	movl   $0x409260,-0x78(%ebp)
40aa56:	c7 45 80 08 00 00 00 	movl   $0x8,-0x80(%ebp)
40aa5d:	ff 15 60 11 40 00    	call   *0x401160
40aa63:	8d 45 c0             	lea    -0x40(%ebp),%eax
40aa66:	50                   	push   %eax
40aa67:	ff 15 94 10 40 00    	call   *0x401094
40aa6d:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40aa70:	ff 15 18 10 40 00    	call   *0x401018
40aa76:	39 3d c8 d6 40 00    	cmp    %edi,0x40d6c8
40aa7c:	75 10                	jne    0x40aa8e
40aa7e:	68 c8 d6 40 00       	push   $0x40d6c8
40aa83:	68 28 8f 40 00       	push   $0x408f28
40aa88:	ff 15 14 11 40 00    	call   *0x401114
40aa8e:	8b 35 c8 d6 40 00    	mov    0x40d6c8,%esi
40aa94:	8b 0e                	mov    (%esi),%ecx
40aa96:	8d 55 d0             	lea    -0x30(%ebp),%edx
40aa99:	52                   	push   %edx
40aa9a:	56                   	push   %esi
40aa9b:	ff 51 14             	call   *0x14(%ecx)
40aa9e:	db e2                	fnclex
40aaa0:	3b c7                	cmp    %edi,%eax
40aaa2:	7d 13                	jge    0x40aab7
40aaa4:	8b 1d 44 10 40 00    	mov    0x401044,%ebx
40aaaa:	6a 14                	push   $0x14
40aaac:	68 18 8f 40 00       	push   $0x408f18
40aab1:	56                   	push   %esi
40aab2:	50                   	push   %eax
40aab3:	ff d3                	call   *%ebx
40aab5:	eb 06                	jmp    0x40aabd
40aab7:	8b 1d 44 10 40 00    	mov    0x401044,%ebx
40aabd:	8b 45 d0             	mov    -0x30(%ebp),%eax
40aac0:	8b 08                	mov    (%eax),%ecx
40aac2:	8d 95 7c ff ff ff    	lea    -0x84(%ebp),%edx
40aac8:	52                   	push   %edx
40aac9:	50                   	push   %eax
40aaca:	8b f0                	mov    %eax,%esi
40aacc:	ff 91 c8 00 00 00    	call   *0xc8(%ecx)
40aad2:	db e2                	fnclex
40aad4:	3b c7                	cmp    %edi,%eax
40aad6:	7d 0e                	jge    0x40aae6