40a2cb:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a2ce:	50                   	push   %eax
40a2cf:	6a 02                	push   $0x2
40a2d1:	ff 15 28 10 40 00    	call   *0x401028
40a2d7:	83 c4 0c             	add    $0xc,%esp
40a2da:	68 2c 7b 40 00       	push   $0x407b2c
40a2df:	68 38 7b 40 00       	push   $0x407b38
40a2e4:	ff d7                	call   *%edi
40a2e6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a2e9:	51                   	push   %ecx
40a2ea:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a2ed:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a2f4:	ff d3                	call   *%ebx
40a2f6:	8b d0                	mov    %eax,%edx
40a2f8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a2fb:	ff 15 88 11 40 00    	call   *0x401188
40a301:	50                   	push   %eax
40a302:	6a 00                	push   $0x0
40a304:	ff 15 b8 10 40 00    	call   *0x4010b8
40a30a:	8b f0                	mov    %eax,%esi
40a30c:	f7 de                	neg    %esi
40a30e:	1b f6                	sbb    %esi,%esi
40a310:	46                   	inc    %esi
40a311:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a314:	f7 de                	neg    %esi
40a316:	ff 15 a8 11 40 00    	call   *0x4011a8
40a31c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a31f:	ff 15 14 10 40 00    	call   *0x401014
40a325:	66 85 f6             	test   %si,%si
40a328:	74 3b                	je     0x40a365
40a32a:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a32d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a330:	c7 45 c0 bc 7b 40 00 	movl   $0x407bbc,-0x40(%ebp)
40a337:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a33e:	ff 15 74 11 40 00    	call   *0x401174
40a344:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a347:	52                   	push   %edx
40a348:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a34b:	50                   	push   %eax
40a34c:	ff 15 58 10 40 00    	call   *0x401058
40a352:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a355:	51                   	push   %ecx
40a356:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a359:	52                   	push   %edx
40a35a:	6a 02                	push   $0x2
40a35c:	ff 15 28 10 40 00    	call   *0x401028
40a362:	83 c4 0c             	add    $0xc,%esp
40a365:	68 2c 7b 40 00       	push   $0x407b2c
40a36a:	68 38 7b 40 00       	push   $0x407b38
40a36f:	ff d7                	call   *%edi
40a371:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a374:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a377:	50                   	push   %eax
40a378:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a37f:	ff d3                	call   *%ebx
40a381:	8b d0                	mov    %eax,%edx
40a383:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a386:	ff 15 88 11 40 00    	call   *0x401188
40a38c:	50                   	push   %eax
40a38d:	6a 00                	push   $0x0
40a38f:	ff 15 b8 10 40 00    	call   *0x4010b8
40a395:	8b f0                	mov    %eax,%esi
40a397:	f7 de                	neg    %esi
40a399:	1b f6                	sbb    %esi,%esi
40a39b:	46                   	inc    %esi
40a39c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a39f:	f7 de                	neg    %esi
40a3a1:	ff 15 a8 11 40 00    	call   *0x4011a8
40a3a7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3aa:	ff 15 14 10 40 00    	call   *0x401014
40a3b0:	66 85 f6             	test   %si,%si
40a3b3:	74 3b                	je     0x40a3f0
40a3b5:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a3b8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3bb:	c7 45 c0 dc 7b 40 00 	movl   $0x407bdc,-0x40(%ebp)
40a3c2:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a3c9:	ff 15 74 11 40 00    	call   *0x401174
40a3cf:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3d2:	51                   	push   %ecx
40a3d3:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a3d6:	52                   	push   %edx
40a3d7:	ff 15 58 10 40 00    	call   *0x401058
40a3dd:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a3e0:	50                   	push   %eax
40a3e1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3e4:	51                   	push   %ecx
40a3e5:	6a 02                	push   $0x2
40a3e7:	ff 15 28 10 40 00    	call   *0x401028
40a3ed:	83 c4 0c             	add    $0xc,%esp
40a3f0:	68 2c 7b 40 00       	push   $0x407b2c
40a3f5:	68 38 7b 40 00       	push   $0x407b38
40a3fa:	ff d7                	call   *%edi
40a3fc:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a3ff:	52                   	push   %edx
40a400:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a403:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a40a:	ff d3                	call   *%ebx
40a40c:	8b d0                	mov    %eax,%edx
40a40e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a411:	ff 15 88 11 40 00    	call   *0x401188
40a417:	50                   	push   %eax
40a418:	6a 00                	push   $0x0
40a41a:	ff 15 b8 10 40 00    	call   *0x4010b8
40a420:	8b f0                	mov    %eax,%esi
40a422:	f7 de                	neg    %esi
40a424:	1b f6                	sbb    %esi,%esi
40a426:	46                   	inc    %esi
40a427:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a42a:	f7 de                	neg    %esi
40a42c:	ff 15 a8 11 40 00    	call   *0x4011a8
40a432:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a435:	ff 15 14 10 40 00    	call   *0x401014
40a43b:	66 85 f6             	test   %si,%si
40a43e:	74 3b                	je     0x40a47b
40a440:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a443:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a446:	c7 45 c0 00 7c 40 00 	movl   $0x407c00,-0x40(%ebp)
40a44d:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a454:	ff 15 74 11 40 00    	call   *0x401174
40a45a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a45d:	50                   	push   %eax
40a45e:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a461:	51                   	push   %ecx
40a462:	ff 15 58 10 40 00    	call   *0x401058
40a468:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a46b:	52                   	push   %edx
40a46c:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a46f:	50                   	push   %eax
40a470:	6a 02                	push   $0x2
40a472:	ff 15 28 10 40 00    	call   *0x401028
40a478:	83 c4 0c             	add    $0xc,%esp
40a47b:	68 2c 7b 40 00       	push   $0x407b2c
40a480:	68 38 7b 40 00       	push   $0x407b38
40a485:	ff d7                	call   *%edi
40a487:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a48a:	51                   	push   %ecx
40a48b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a48e:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a495:	ff d3                	call   *%ebx
40a497:	8b d0                	mov    %eax,%edx
40a499:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a49c:	ff 15 88 11 40 00    	call   *0x401188
40a4a2:	50                   	push   %eax
40a4a3:	6a 00                	push   $0x0
40a4a5:	ff 15 b8 10 40 00    	call   *0x4010b8
40a4ab:	8b f0                	mov    %eax,%esi
40a4ad:	f7 de                	neg    %esi
40a4af:	1b f6                	sbb    %esi,%esi
40a4b1:	46                   	inc    %esi
40a4b2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a4b5:	f7 de                	neg    %esi
40a4b7:	ff 15 a8 11 40 00    	call   *0x4011a8
40a4bd:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a4c0:	ff 15 14 10 40 00    	call   *0x401014
40a4c6:	66 85 f6             	test   %si,%si
40a4c9:	74 3b                	je     0x40a506
40a4cb:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a4ce:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a4d1:	c7 45 c0 48 7a 40 00 	movl   $0x407a48,-0x40(%ebp)
40a4d8:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a4df:	ff 15 74 11 40 00    	call   *0x401174
40a4e5:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a4e8:	52                   	push   %edx
40a4e9:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a4ec:	50                   	push   %eax
40a4ed:	ff 15 58 10 40 00    	call   *0x401058
40a4f3:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a4f6:	51                   	push   %ecx
40a4f7:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a4fa:	52                   	push   %edx
40a4fb:	6a 02                	push   $0x2
40a4fd:	ff 15 28 10 40 00    	call   *0x401028
40a503:	83 c4 0c             	add    $0xc,%esp
40a506:	68 2c 7b 40 00       	push   $0x407b2c
40a50b:	68 38 7b 40 00       	push   $0x407b38
40a510:	ff d7                	call   *%edi
40a512:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a515:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a518:	50                   	push   %eax
40a519:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a520:	ff d3                	call   *%ebx
40a522:	8b d0                	mov    %eax,%edx
40a524:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a527:	ff 15 88 11 40 00    	call   *0x401188
40a52d:	50                   	push   %eax
40a52e:	6a 00                	push   $0x0
40a530:	ff 15 b8 10 40 00    	call   *0x4010b8
40a536:	8b f0                	mov    %eax,%esi
40a538:	f7 de                	neg    %esi
40a53a:	1b f6                	sbb    %esi,%esi
40a53c:	46                   	inc    %esi
40a53d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a540:	f7 de                	neg    %esi
40a542:	ff 15 a8 11 40 00    	call   *0x4011a8
40a548:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a54b:	ff 15 14 10 40 00    	call   *0x401014
40a551:	66 85 f6             	test   %si,%si
40a554:	74 3b                	je     0x40a591
40a556:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a559:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a55c:	c7 45 c0 20 7c 40 00 	movl   $0x407c20,-0x40(%ebp)
40a563:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a56a:	ff 15 74 11 40 00    	call   *0x401174
40a570:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a573:	51                   	push   %ecx
40a574:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a577:	52                   	push   %edx
40a578:	ff 15 58 10 40 00    	call   *0x401058
40a57e:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a581:	50                   	push   %eax
40a582:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a585:	51                   	push   %ecx
40a586:	6a 02                	push   $0x2
40a588:	ff 15 28 10 40 00    	call   *0x401028
40a58e:	83 c4 0c             	add    $0xc,%esp
40a591:	68 2c 7b 40 00       	push   $0x407b2c
40a596:	68 38 7b 40 00       	push   $0x407b38
40a59b:	ff d7                	call   *%edi
40a59d:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a5a0:	52                   	push   %edx
40a5a1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a5a4:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a5ab:	ff d3                	call   *%ebx
40a5ad:	8b d0                	mov    %eax,%edx
40a5af:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a5b2:	ff 15 88 11 40 00    	call   *0x401188
40a5b8:	50                   	push   %eax
40a5b9:	6a 00                	push   $0x0
40a5bb:	ff 15 b8 10 40 00    	call   *0x4010b8
40a5c1:	8b f0                	mov    %eax,%esi
40a5c3:	f7 de                	neg    %esi
40a5c5:	1b f6                	sbb    %esi,%esi
40a5c7:	46                   	inc    %esi
40a5c8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a5cb:	f7 de                	neg    %esi
40a5cd:	ff 15 a8 11 40 00    	call   *0x4011a8
40a5d3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a5d6:	ff 15 14 10 40 00    	call   *0x401014
40a5dc:	66 85 f6             	test   %si,%si
40a5df:	74 3b                	je     0x40a61c
40a5e1:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a5e4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a5e7:	c7 45 c0 40 7c 40 00 	movl   $0x407c40,-0x40(%ebp)
40a5ee:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a5f5:	ff 15 74 11 40 00    	call   *0x401174
40a5fb:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a5fe:	50                   	push   %eax
40a5ff:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a602:	51                   	push   %ecx
40a603:	ff 15 58 10 40 00    	call   *0x401058
40a609:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a60c:	52                   	push   %edx
40a60d:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a610:	50                   	push   %eax
40a611:	6a 02                	push   $0x2
40a613:	ff 15 28 10 40 00    	call   *0x401028
40a619:	83 c4 0c             	add    $0xc,%esp
40a61c:	68 41 a6 40 00       	push   $0x40a641
40a621:	eb 1d                	jmp    0x40a640
40a623:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a626:	ff 15 a8 11 40 00    	call   *0x4011a8
40a62c:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a62f:	51                   	push   %ecx
40a630:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a633:	52                   	push   %edx
40a634:	6a 02                	push   $0x2
40a636:	ff 15 28 10 40 00    	call   *0x401028
40a63c:	83 c4 0c             	add    $0xc,%esp
40a63f:	c3                   	ret
40a640:	c3                   	ret
40a641:	8b 45 08             	mov    0x8(%ebp),%eax
40a644:	8b 08                	mov    (%eax),%ecx
40a646:	50                   	push   %eax
40a647:	ff 51 08             	call   *0x8(%ecx)
40a64a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a64d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a650:	5f                   	pop    %edi
40a651:	5e                   	pop    %esi
40a652:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a659:	5b                   	pop    %ebx
40a65a:	8b e5                	mov    %ebp,%esp
40a65c:	5d                   	pop    %ebp
40a65d:	c2 2c 00             	ret    $0x2c
40a660:	55                   	push   %ebp
40a661:	8b ec                	mov    %esp,%ebp
40a663:	83 ec 08             	sub    $0x8,%esp
40a666:	68 b6 12 40 00       	push   $0x4012b6
40a66b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a671:	50                   	push   %eax
40a672:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40a679:	83 ec 34             	sub    $0x34,%esp
40a67c:	53                   	push   %ebx
40a67d:	56                   	push   %esi
40a67e:	57                   	push   %edi
40a67f:	89 65 f8             	mov    %esp,-0x8(%ebp)
40a682:	c7 45 fc e0 11 40 00 	movl   $0x4011e0,-0x4(%ebp)
40a689:	8b 55 0c             	mov    0xc(%ebp),%edx
40a68c:	8b 35 48 11 40 00    	mov    0x401148,%esi
40a692:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a695:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40a69c:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40a6a3:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40a6aa:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40a6b1:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40a6b8:	ff d6                	call   *%esi
40a6ba:	8b 55 10             	mov    0x10(%ebp),%edx
40a6bd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a6c0:	ff d6                	call   *%esi
40a6c2:	68 78 77 40 00       	push   $0x407778
40a6c7:	ff 15 88 10 40 00    	call   *0x401088
40a6cd:	dd 05 d8 11 40 00    	fldl   0x4011d8
40a6d3:	52                   	push   %edx
40a6d4:	50                   	push   %eax
40a6d5:	ff 15 f4 10 40 00    	call   *0x4010f4
40a6db:	85 c0                	test   %eax,%eax
40a6dd:	0f 84 8c 00 00 00    	je     0x40a76f
40a6e3:	a1 38 03 41 00       	mov    0x410338,%eax
40a6e8:	85 c0                	test   %eax,%eax
40a6ea:	75 10                	jne    0x40a6fc
40a6ec:	68 38 03 41 00       	push   $0x410338
40a6f1:	68 a8 7c 40 00       	push   $0x407ca8
40a6f6:	ff 15 2c 11 40 00    	call   *0x40112c
40a6fc:	8b 35 38 03 41 00    	mov    0x410338,%esi
40a702:	8b 06                	mov    (%esi),%eax
40a704:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a707:	51                   	push   %ecx
40a708:	56                   	push   %esi
40a709:	ff 50 1c             	call   *0x1c(%eax)
40a70c:	db e2                	fnclex
40a70e:	85 c0                	test   %eax,%eax
40a710:	7d 0f                	jge    0x40a721
40a712:	6a 1c                	push   $0x1c
40a714:	68 98 7c 40 00       	push   $0x407c98
40a719:	56                   	push   %esi
40a71a:	50                   	push   %eax
40a71b:	ff 15 48 10 40 00    	call   *0x401048
40a721:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a724:	8b 38                	mov    (%eax),%edi
40a726:	83 ec 10             	sub    $0x10,%esp
40a729:	8b dc                	mov    %esp,%ebx
40a72b:	ba 0a 00 00 00       	mov    $0xa,%edx
40a730:	89 13                	mov    %edx,(%ebx)
40a732:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a735:	89 53 04             	mov    %edx,0x4(%ebx)
40a738:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40a73d:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a740:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a743:	68 64 7c 40 00       	push   $0x407c64
40a748:	50                   	push   %eax
40a749:	8b f0                	mov    %eax,%esi