40d454:	85 db                	test   %ebx,%ebx
40d456:	74 09                	je     0x40d461
40d458:	53                   	push   %ebx
40d459:	e8 46 31 09 00       	call   0x4a05a4
40d45e:	83 c4 04             	add    $0x4,%esp
40d461:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40d464:	50                   	push   %eax
40d465:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40d468:	85 db                	test   %ebx,%ebx
40d46a:	74 09                	je     0x40d475
40d46c:	53                   	push   %ebx
40d46d:	e8 32 31 09 00       	call   0x4a05a4
40d472:	83 c4 04             	add    $0x4,%esp
40d475:	58                   	pop    %eax
40d476:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d479:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40d480:	6a 00                	push   $0x0
40d482:	ff 75 ec             	push   -0x14(%ebp)
40d485:	ff 75 10             	push   0x10(%ebp)
40d488:	e8 38 89 ff ff       	call   0x405dc5
40d48d:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d490:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d493:	50                   	push   %eax
40d494:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d497:	85 db                	test   %ebx,%ebx
40d499:	74 09                	je     0x40d4a4
40d49b:	53                   	push   %ebx
40d49c:	e8 03 31 09 00       	call   0x4a05a4
40d4a1:	83 c4 04             	add    $0x4,%esp
40d4a4:	58                   	pop    %eax
40d4a5:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d4a8:	89 65 ec             	mov    %esp,-0x14(%ebp)
40d4ab:	b8 00 00 00 00       	mov    $0x0,%eax
40d4b0:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d4b3:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d4b6:	50                   	push   %eax
40d4b7:	ff 35 54 99 50 00    	push   0x509954
40d4bd:	68 00 00 00 00       	push   $0x0
40d4c2:	ff 75 08             	push   0x8(%ebp)
40d4c5:	ff 75 30             	push   0x30(%ebp)
40d4c8:	ff 75 28             	push   0x28(%ebp)
40d4cb:	ff 75 20             	push   0x20(%ebp)
40d4ce:	ff 75 18             	push   0x18(%ebp)
40d4d1:	ff 75 48             	push   0x48(%ebp)
40d4d4:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d4d7:	85 c0                	test   %eax,%eax
40d4d9:	74 03                	je     0x40d4de
40d4db:	83 c0 08             	add    $0x8,%eax
40d4de:	50                   	push   %eax
40d4df:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d4e2:	85 c0                	test   %eax,%eax
40d4e4:	74 03                	je     0x40d4e9
40d4e6:	83 c0 08             	add    $0x8,%eax
40d4e9:	50                   	push   %eax
40d4ea:	ff 75 50             	push   0x50(%ebp)
40d4ed:	33 c0                	xor    %eax,%eax
40d4ef:	ff 15 f4 32 4b 00    	call   *0x4b32f4
40d4f5:	90                   	nop
40d4f6:	90                   	nop
40d4f7:	39 65 ec             	cmp    %esp,-0x14(%ebp)
40d4fa:	74 17                	je     0x40d513
40d4fc:	68 df 05 00 00       	push   $0x5df
40d501:	68 33 ce 03 04       	push   $0x403ce33
40d506:	68 06 00 00 00       	push   $0x6
40d50b:	e8 9a 30 09 00       	call   0x4a05aa
40d510:	83 c4 0c             	add    $0xc,%esp
40d513:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d516:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40d51a:	0f 85 b4 00 00 00    	jne    0x40d5d4
40d520:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40d527:	6a 00                	push   $0x0
40d529:	ff 75 ec             	push   -0x14(%ebp)
40d52c:	b8 69 3f 4e 00       	mov    $0x4e3f69,%eax
40d531:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d534:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d537:	50                   	push   %eax
40d538:	e8 88 88 ff ff       	call   0x405dc5
40d53d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d540:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40d543:	85 db                	test   %ebx,%ebx
40d545:	74 09                	je     0x40d550
40d547:	53                   	push   %ebx
40d548:	e8 57 30 09 00       	call   0x4a05a4
40d54d:	83 c4 04             	add    $0x4,%esp
40d550:	89 65 e0             	mov    %esp,-0x20(%ebp)
40d553:	b8 00 00 00 00       	mov    $0x0,%eax
40d558:	89 45 dc             	mov    %eax,-0x24(%ebp)
40d55b:	8d 45 dc             	lea    -0x24(%ebp),%eax
40d55e:	50                   	push   %eax
40d55f:	ff 35 54 99 50 00    	push   0x509954
40d565:	68 00 00 00 00       	push   $0x0
40d56a:	ff 75 08             	push   0x8(%ebp)
40d56d:	ff 75 30             	push   0x30(%ebp)
40d570:	ff 75 28             	push   0x28(%ebp)
40d573:	ff 75 20             	push   0x20(%ebp)
40d576:	ff 75 18             	push   0x18(%ebp)
40d579:	ff 75 48             	push   0x48(%ebp)
40d57c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d57f:	85 c0                	test   %eax,%eax
40d581:	74 03                	je     0x40d586
40d583:	83 c0 08             	add    $0x8,%eax
40d586:	50                   	push   %eax
40d587:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d58a:	85 c0                	test   %eax,%eax
40d58c:	74 03                	je     0x40d591
40d58e:	83 c0 08             	add    $0x8,%eax
40d591:	50                   	push   %eax
40d592:	ff 75 50             	push   0x50(%ebp)
40d595:	33 c0                	xor    %eax,%eax
40d597:	ff 15 f4 32 4b 00    	call   *0x4b32f4
40d59d:	90                   	nop
40d59e:	90                   	nop
40d59f:	39 65 e0             	cmp    %esp,-0x20(%ebp)
40d5a2:	74 17                	je     0x40d5bb
40d5a4:	68 b3 06 00 00       	push   $0x6b3
40d5a9:	68 33 ce 03 04       	push   $0x403ce33
40d5ae:	68 06 00 00 00       	push   $0x6
40d5b3:	e8 f2 2f 09 00       	call   0x4a05aa
40d5b8:	83 c4 0c             	add    $0xc,%esp
40d5bb:	89 45 d8             	mov    %eax,-0x28(%ebp)
40d5be:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40d5c1:	85 db                	test   %ebx,%ebx
40d5c3:	74 09                	je     0x40d5ce
40d5c5:	53                   	push   %ebx
40d5c6:	e8 d9 2f 09 00       	call   0x4a05a4
40d5cb:	83 c4 04             	add    $0x4,%esp
40d5ce:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d5d1:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d5d4:	89 65 ec             	mov    %esp,-0x14(%ebp)
40d5d7:	ff 35 58 99 50 00    	push   0x509958
40d5dd:	68 00 00 00 00       	push   $0x0
40d5e2:	68 80 00 00 00       	push   $0x80
40d5e7:	ff 75 f0             	push   -0x10(%ebp)
40d5ea:	33 c0                	xor    %eax,%eax
40d5ec:	ff 15 f0 32 4b 00    	call   *0x4b32f0
40d5f2:	90                   	nop
40d5f3:	90                   	nop
40d5f4:	39 65 ec             	cmp    %esp,-0x14(%ebp)
40d5f7:	74 17                	je     0x40d610
40d5f9:	68 19 07 00 00       	push   $0x719
40d5fe:	68 33 ce 03 04       	push   $0x403ce33
40d603:	68 06 00 00 00       	push   $0x6
40d608:	e8 9d 2f 09 00       	call   0x4a05aa
40d60d:	83 c4 0c             	add    $0xc,%esp
40d610:	89 65 ec             	mov    %esp,-0x14(%ebp)
40d613:	ff 35 5c 99 50 00    	push   0x50995c
40d619:	68 01 00 00 00       	push   $0x1
40d61e:	68 80 00 00 00       	push   $0x80
40d623:	ff 75 f0             	push   -0x10(%ebp)
40d626:	33 c0                	xor    %eax,%eax
40d628:	ff 15 f0 32 4b 00    	call   *0x4b32f0
40d62e:	90                   	nop
40d62f:	90                   	nop
40d630:	39 65 ec             	cmp    %esp,-0x14(%ebp)
40d633:	74 17                	je     0x40d64c
40d635:	68 4c 07 00 00       	push   $0x74c
40d63a:	68 33 ce 03 04       	push   $0x403ce33
40d63f:	68 06 00 00 00       	push   $0x6
40d644:	e8 61 2f 09 00       	call   0x4a05aa
40d649:	83 c4 0c             	add    $0xc,%esp
40d64c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d64f:	e9 00 00 00 00       	jmp    0x40d654
40d654:	50                   	push   %eax
40d655:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d658:	53                   	push   %ebx
40d659:	e8 46 2f 09 00       	call   0x4a05a4
40d65e:	83 c4 04             	add    $0x4,%esp
40d661:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40d664:	85 db                	test   %ebx,%ebx
40d666:	74 09                	je     0x40d671
40d668:	53                   	push   %ebx
40d669:	e8 36 2f 09 00       	call   0x4a05a4
40d66e:	83 c4 04             	add    $0x4,%esp
40d671:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d674:	85 db                	test   %ebx,%ebx
40d676:	74 09                	je     0x40d681
40d678:	53                   	push   %ebx
40d679:	e8 26 2f 09 00       	call   0x4a05a4
40d67e:	83 c4 04             	add    $0x4,%esp
40d681:	58                   	pop    %eax
40d682:	8b e5                	mov    %ebp,%esp
40d684:	5d                   	pop    %ebp
40d685:	c2 58 00             	ret    $0x58
40d688:	55                   	push   %ebp
40d689:	8b ec                	mov    %esp,%ebp
40d68b:	81 ec 3c 00 00 00    	sub    $0x3c,%esp
40d691:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40d698:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40d69f:	68 01 03 00 80       	push   $0x80000301
40d6a4:	6a 00                	push   $0x0
40d6a6:	68 10 00 00 00       	push   $0x10
40d6ab:	68 01 00 00 00       	push   $0x1
40d6b0:	bb bc 01 00 00       	mov    $0x1bc,%ebx
40d6b5:	e8 36 3e 09 00       	call   0x4a14f0
40d6ba:	83 c4 10             	add    $0x10,%esp
40d6bd:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d6c0:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d6c3:	50                   	push   %eax
40d6c4:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d6c7:	85 db                	test   %ebx,%ebx
40d6c9:	74 09                	je     0x40d6d4
40d6cb:	53                   	push   %ebx
40d6cc:	e8 d3 2e 09 00       	call   0x4a05a4
40d6d1:	83 c4 04             	add    $0x4,%esp
40d6d4:	58                   	pop    %eax
40d6d5:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d6d8:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d6db:	50                   	push   %eax
40d6dc:	e8 e7 3a ff ff       	call   0x4011c8
40d6e1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d6e4:	89 65 f4             	mov    %esp,-0xc(%ebp)
40d6e7:	68 00 00 00 00       	push   $0x0
40d6ec:	ff 75 f8             	push   -0x8(%ebp)
40d6ef:	68 00 00 00 00       	push   $0x0
40d6f4:	68 30 00 00 00       	push   $0x30
40d6f9:	33 c0                	xor    %eax,%eax
40d6fb:	ff 15 ec 32 4b 00    	call   *0x4b32ec
40d701:	90                   	nop
40d702:	90                   	nop
40d703:	39 65 f4             	cmp    %esp,-0xc(%ebp)
40d706:	74 17                	je     0x40d71f
40d708:	68 8c 00 00 00       	push   $0x8c
40d70d:	68 30 ce 03 04       	push   $0x403ce30
40d712:	68 06 00 00 00       	push   $0x6
40d717:	e8 8e 2e 09 00       	call   0x4a05aa
40d71c:	83 c4 0c             	add    $0xc,%esp
40d71f:	85 c0                	test   %eax,%eax
40d721:	0f 84 fc 00 00 00    	je     0x40d823
40d727:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d72a:	8b 1b                	mov    (%ebx),%ebx
40d72c:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d72f:	ff 75 f8             	push   -0x8(%ebp)
40d732:	e8 64 45 ff ff       	call   0x401c9b
40d737:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d73a:	89 03                	mov    %eax,(%ebx)
40d73c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d73f:	8b 1b                	mov    (%ebx),%ebx
40d741:	83 c3 04             	add    $0x4,%ebx
40d744:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d747:	db 45 f8             	fildl  -0x8(%ebp)
40d74a:	dd 5d ec             	fstpl  -0x14(%ebp)
40d74d:	dd 45 ec             	fldl   -0x14(%ebp)
40d750:	dc 05 f2 bb 4c 00    	faddl  0x4cbbf2
40d756:	dd 5d e4             	fstpl  -0x1c(%ebp)
40d759:	dd 45 e4             	fldl   -0x1c(%ebp)
40d75c:	e8 8e 3a ff ff       	call   0x4011ef
40d761:	50                   	push   %eax
40d762:	e8 34 45 ff ff       	call   0x401c9b
40d767:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d76a:	89 03                	mov    %eax,(%ebx)
40d76c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d76f:	8b 1b                	mov    (%ebx),%ebx
40d771:	83 c3 08             	add    $0x8,%ebx
40d774:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d777:	db 45 f8             	fildl  -0x8(%ebp)
40d77a:	dd 5d ec             	fstpl  -0x14(%ebp)
40d77d:	dd 45 ec             	fldl   -0x14(%ebp)
40d780:	dc 05 a2 bb 4c 00    	faddl  0x4cbba2
40d786:	dd 5d e4             	fstpl  -0x1c(%ebp)
40d789:	dd 45 e4             	fldl   -0x1c(%ebp)
40d78c:	e8 5e 3a ff ff       	call   0x4011ef
40d791:	50                   	push   %eax
40d792:	e8 04 45 ff ff       	call   0x401c9b
40d797:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d79a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d79d:	8b 1b                	mov    (%ebx),%ebx
40d79f:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40d7a2:	db 45 e0             	fildl  -0x20(%ebp)
40d7a5:	dd 5d d4             	fstpl  -0x2c(%ebp)
40d7a8:	dd 45 d4             	fldl   -0x2c(%ebp)
40d7ab:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40d7ae:	db 03                	fildl  (%ebx)
40d7b0:	dd 5d cc             	fstpl  -0x34(%ebp)
40d7b3:	dc 65 cc             	fsubl  -0x34(%ebp)
40d7b6:	dd 5d c4             	fstpl  -0x3c(%ebp)
40d7b9:	dd 45 c4             	fldl   -0x3c(%ebp)
40d7bc:	e8 2e 3a ff ff       	call   0x4011ef
40d7c1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d7c4:	89 03                	mov    %eax,(%ebx)
40d7c6:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d7c9:	8b 1b                	mov    (%ebx),%ebx
40d7cb:	83 c3 0c             	add    $0xc,%ebx
40d7ce:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d7d1:	db 45 f8             	fildl  -0x8(%ebp)
40d7d4:	dd 5d ec             	fstpl  -0x14(%ebp)
40d7d7:	dd 45 ec             	fldl   -0x14(%ebp)
40d7da:	dc 05 b2 bb 4c 00    	faddl  0x4cbbb2
40d7e0:	dd 5d e4             	fstpl  -0x1c(%ebp)
40d7e3:	dd 45 e4             	fldl   -0x1c(%ebp)
40d7e6:	e8 04 3a ff ff       	call   0x4011ef
40d7eb:	50                   	push   %eax
40d7ec:	e8 aa 44 ff ff       	call   0x401c9b
40d7f1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d7f4:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d7f7:	8b 1b                	mov    (%ebx),%ebx
40d7f9:	83 c3 04             	add    $0x4,%ebx
40d7fc:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40d7ff:	db 45 e0             	fildl  -0x20(%ebp)
40d802:	dd 5d d4             	fstpl  -0x2c(%ebp)
40d805:	dd 45 d4             	fldl   -0x2c(%ebp)
40d808:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40d80b:	db 03                	fildl  (%ebx)
40d80d:	dd 5d cc             	fstpl  -0x34(%ebp)
40d810:	dc 65 cc             	fsubl  -0x34(%ebp)
40d813:	dd 5d c4             	fstpl  -0x3c(%ebp)
40d816:	dd 45 c4             	fldl   -0x3c(%ebp)
40d819:	e8 d1 39 ff ff       	call   0x4011ef
40d81e:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40d821:	89 03                	mov    %eax,(%ebx)
40d823:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d826:	85 db                	test   %ebx,%ebx
40d828:	74 09                	je     0x40d833
40d82a:	53                   	push   %ebx
40d82b:	e8 74 2d 09 00       	call   0x4a05a4
40d830:	83 c4 04             	add    $0x4,%esp
40d833:	8b e5                	mov    %ebp,%esp
40d835:	5d                   	pop    %ebp
40d836:	c2 04 00             	ret    $0x4
40d839:	55                   	push   %ebp
40d83a:	8b ec                	mov    %esp,%ebp
40d83c:	51                   	push   %ecx
40d83d:	33 d2                	xor    %edx,%edx
40d83f:	8d 5d 08             	lea    0x8(%ebp),%ebx
40d842:	8b 03                	mov    (%ebx),%eax
40d844:	83 c3 04             	add    $0x4,%ebx
40d847:	85 c0                	test   %eax,%eax
40d849:	74 03                	je     0x40d84e
40d84b:	03 50 04             	add    0x4(%eax),%edx
40d84e:	49                   	dec    %ecx
40d84f:	75 f1                	jne    0x40d842
40d851:	85 d2                	test   %edx,%edx
40d853:	75 04                	jne    0x40d859
40d855:	33 c0                	xor    %eax,%eax
40d857:	eb 33                	jmp    0x40d88c
40d859:	52                   	push   %edx
40d85a:	83 c2 08             	add    $0x8,%edx
40d85d:	52                   	push   %edx
40d85e:	e8 3b 2d 09 00       	call   0x4a059e
40d863:	83 c4 04             	add    $0x4,%esp
40d866:	8b f8                	mov    %eax,%edi
40d868:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
40d86e:	8f 47 04             	pop    0x4(%edi)
40d871:	83 c7 08             	add    $0x8,%edi
40d874:	5a                   	pop    %edx
40d875:	8d 5d 08             	lea    0x8(%ebp),%ebx
40d878:	8b 33                	mov    (%ebx),%esi
40d87a:	83 c3 04             	add    $0x4,%ebx
40d87d:	85 f6                	test   %esi,%esi
40d87f:	74 08                	je     0x40d889
40d881:	8b 4e 04             	mov    0x4(%esi),%ecx