40a5a1:	50                   	push   %eax
40a5a2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a5a5:	51                   	push   %ecx
40a5a6:	6a 02                	push   $0x2
40a5a8:	ff 15 28 10 40 00    	call   *0x401028
40a5ae:	83 c4 0c             	add    $0xc,%esp
40a5b1:	68 34 7b 40 00       	push   $0x407b34
40a5b6:	68 40 7b 40 00       	push   $0x407b40
40a5bb:	ff d7                	call   *%edi
40a5bd:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a5c0:	52                   	push   %edx
40a5c1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a5c4:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a5cb:	ff d3                	call   *%ebx
40a5cd:	8b d0                	mov    %eax,%edx
40a5cf:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a5d2:	ff 15 84 11 40 00    	call   *0x401184
40a5d8:	50                   	push   %eax
40a5d9:	6a 00                	push   $0x0
40a5db:	ff 15 b8 10 40 00    	call   *0x4010b8
40a5e1:	8b f0                	mov    %eax,%esi
40a5e3:	f7 de                	neg    %esi
40a5e5:	1b f6                	sbb    %esi,%esi
40a5e7:	46                   	inc    %esi
40a5e8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a5eb:	f7 de                	neg    %esi
40a5ed:	ff 15 ac 11 40 00    	call   *0x4011ac
40a5f3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a5f6:	ff 15 14 10 40 00    	call   *0x401014
40a5fc:	66 85 f6             	test   %si,%si
40a5ff:	74 3b                	je     0x40a63c
40a601:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a604:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a607:	c7 45 c0 48 7c 40 00 	movl   $0x407c48,-0x40(%ebp)
40a60e:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a615:	ff 15 70 11 40 00    	call   *0x401170
40a61b:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a61e:	50                   	push   %eax
40a61f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a622:	51                   	push   %ecx
40a623:	ff 15 58 10 40 00    	call   *0x401058
40a629:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a62c:	52                   	push   %edx
40a62d:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a630:	50                   	push   %eax
40a631:	6a 02                	push   $0x2
40a633:	ff 15 28 10 40 00    	call   *0x401028
40a639:	83 c4 0c             	add    $0xc,%esp
40a63c:	68 61 a6 40 00       	push   $0x40a661
40a641:	eb 1d                	jmp    0x40a660
40a643:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a646:	ff 15 ac 11 40 00    	call   *0x4011ac
40a64c:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a64f:	51                   	push   %ecx
40a650:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a653:	52                   	push   %edx
40a654:	6a 02                	push   $0x2
40a656:	ff 15 28 10 40 00    	call   *0x401028
40a65c:	83 c4 0c             	add    $0xc,%esp
40a65f:	c3                   	ret
40a660:	c3                   	ret
40a661:	8b 45 08             	mov    0x8(%ebp),%eax
40a664:	8b 08                	mov    (%eax),%ecx
40a666:	50                   	push   %eax
40a667:	ff 51 08             	call   *0x8(%ecx)
40a66a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a66d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a670:	5f                   	pop    %edi
40a671:	5e                   	pop    %esi
40a672:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a679:	5b                   	pop    %ebx
40a67a:	8b e5                	mov    %ebp,%esp
40a67c:	5d                   	pop    %ebp
40a67d:	c2 2c 00             	ret    $0x2c
40a680:	55                   	push   %ebp
40a681:	8b ec                	mov    %esp,%ebp
40a683:	83 ec 08             	sub    $0x8,%esp
40a686:	68 b6 12 40 00       	push   $0x4012b6
40a68b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a691:	50                   	push   %eax
40a692:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40a699:	83 ec 34             	sub    $0x34,%esp
40a69c:	53                   	push   %ebx
40a69d:	56                   	push   %esi
40a69e:	57                   	push   %edi
40a69f:	89 65 f8             	mov    %esp,-0x8(%ebp)
40a6a2:	c7 45 fc e0 11 40 00 	movl   $0x4011e0,-0x4(%ebp)
40a6a9:	8b 55 0c             	mov    0xc(%ebp),%edx
40a6ac:	8b 35 40 11 40 00    	mov    0x401140,%esi
40a6b2:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a6b5:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40a6bc:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40a6c3:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40a6ca:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40a6d1:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40a6d8:	ff d6                	call   *%esi
40a6da:	8b 55 10             	mov    0x10(%ebp),%edx
40a6dd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a6e0:	ff d6                	call   *%esi
40a6e2:	68 80 77 40 00       	push   $0x407780
40a6e7:	ff 15 88 10 40 00    	call   *0x401088
40a6ed:	dd 05 d8 11 40 00    	fldl   0x4011d8
40a6f3:	52                   	push   %edx
40a6f4:	50                   	push   %eax
40a6f5:	ff 15 f0 10 40 00    	call   *0x4010f0
40a6fb:	85 c0                	test   %eax,%eax
40a6fd:	0f 84 8c 00 00 00    	je     0x40a78f
40a703:	a1 38 03 41 00       	mov    0x410338,%eax
40a708:	85 c0                	test   %eax,%eax
40a70a:	75 10                	jne    0x40a71c
40a70c:	68 38 03 41 00       	push   $0x410338
40a711:	68 b0 7c 40 00       	push   $0x407cb0
40a716:	ff 15 24 11 40 00    	call   *0x401124
40a71c:	8b 35 38 03 41 00    	mov    0x410338,%esi
40a722:	8b 06                	mov    (%esi),%eax
40a724:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a727:	51                   	push   %ecx
40a728:	56                   	push   %esi
40a729:	ff 50 1c             	call   *0x1c(%eax)
40a72c:	db e2                	fnclex
40a72e:	85 c0                	test   %eax,%eax
40a730:	7d 0f                	jge    0x40a741
40a732:	6a 1c                	push   $0x1c
40a734:	68 a0 7c 40 00       	push   $0x407ca0
40a739:	56                   	push   %esi
40a73a:	50                   	push   %eax
40a73b:	ff 15 48 10 40 00    	call   *0x401048
40a741:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a744:	8b 38                	mov    (%eax),%edi
40a746:	83 ec 10             	sub    $0x10,%esp
40a749:	8b dc                	mov    %esp,%ebx
40a74b:	ba 0a 00 00 00       	mov    $0xa,%edx
40a750:	89 13                	mov    %edx,(%ebx)
40a752:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a755:	89 53 04             	mov    %edx,0x4(%ebx)
40a758:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40a75d:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a760:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a763:	68 6c 7c 40 00       	push   $0x407c6c
40a768:	50                   	push   %eax
40a769:	8b f0                	mov    %eax,%esi
40a76b:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40a76e:	ff 57 60             	call   *0x60(%edi)
40a771:	db e2                	fnclex
40a773:	85 c0                	test   %eax,%eax
40a775:	7d 0f                	jge    0x40a786
40a777:	6a 60                	push   $0x60
40a779:	68 c0 7c 40 00       	push   $0x407cc0
40a77e:	56                   	push   %esi
40a77f:	50                   	push   %eax
40a780:	ff 15 48 10 40 00    	call   *0x401048
40a786:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a789:	ff 15 b0 11 40 00    	call   *0x4011b0
40a78f:	68 80 77 40 00       	push   $0x407780
40a794:	ff 15 88 10 40 00    	call   *0x401088
40a79a:	dd 05 d8 11 40 00    	fldl   0x4011d8
40a7a0:	52                   	push   %edx
40a7a1:	50                   	push   %eax
40a7a2:	ff 15 f0 10 40 00    	call   *0x4010f0
40a7a8:	85 c0                	test   %eax,%eax
40a7aa:	0f 84 8c 00 00 00    	je     0x40a83c
40a7b0:	a1 38 03 41 00       	mov    0x410338,%eax
40a7b5:	85 c0                	test   %eax,%eax
40a7b7:	75 10                	jne    0x40a7c9
40a7b9:	68 38 03 41 00       	push   $0x410338
40a7be:	68 b0 7c 40 00       	push   $0x407cb0
40a7c3:	ff 15 24 11 40 00    	call   *0x401124
40a7c9:	8b 35 38 03 41 00    	mov    0x410338,%esi
40a7cf:	8b 16                	mov    (%esi),%edx
40a7d1:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a7d4:	50                   	push   %eax
40a7d5:	56                   	push   %esi
40a7d6:	ff 52 1c             	call   *0x1c(%edx)
40a7d9:	db e2                	fnclex
40a7db:	85 c0                	test   %eax,%eax
40a7dd:	7d 0f                	jge    0x40a7ee
40a7df:	6a 1c                	push   $0x1c
40a7e1:	68 a0 7c 40 00       	push   $0x407ca0
40a7e6:	56                   	push   %esi
40a7e7:	50                   	push   %eax
40a7e8:	ff 15 48 10 40 00    	call   *0x401048
40a7ee:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a7f1:	8b 38                	mov    (%eax),%edi
40a7f3:	83 ec 10             	sub    $0x10,%esp
40a7f6:	8b dc                	mov    %esp,%ebx
40a7f8:	ba 0a 00 00 00       	mov    $0xa,%edx
40a7fd:	89 13                	mov    %edx,(%ebx)
40a7ff:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a802:	89 53 04             	mov    %edx,0x4(%ebx)
40a805:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40a80a:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a80d:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a810:	68 d4 7c 40 00       	push   $0x407cd4
40a815:	50                   	push   %eax
40a816:	8b f0                	mov    %eax,%esi
40a818:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40a81b:	ff 57 60             	call   *0x60(%edi)
40a81e:	db e2                	fnclex
40a820:	85 c0                	test   %eax,%eax
40a822:	7d 0f                	jge    0x40a833
40a824:	6a 60                	push   $0x60
40a826:	68 c0 7c 40 00       	push   $0x407cc0
40a82b:	56                   	push   %esi
40a82c:	50                   	push   %eax
40a82d:	ff 15 48 10 40 00    	call   *0x401048
40a833:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a836:	ff 15 b0 11 40 00    	call   *0x4011b0
40a83c:	68 80 77 40 00       	push   $0x407780
40a841:	ff 15 88 10 40 00    	call   *0x401088
40a847:	dd 05 d8 11 40 00    	fldl   0x4011d8
40a84d:	52                   	push   %edx
40a84e:	50                   	push   %eax
40a84f:	ff 15 f0 10 40 00    	call   *0x4010f0
40a855:	85 c0                	test   %eax,%eax
40a857:	0f 84 8c 00 00 00    	je     0x40a8e9
40a85d:	a1 38 03 41 00       	mov    0x410338,%eax
40a862:	85 c0                	test   %eax,%eax
40a864:	75 10                	jne    0x40a876
40a866:	68 38 03 41 00       	push   $0x410338
40a86b:	68 b0 7c 40 00       	push   $0x407cb0
40a870:	ff 15 24 11 40 00    	call   *0x401124
40a876:	8b 35 38 03 41 00    	mov    0x410338,%esi
40a87c:	8b 16                	mov    (%esi),%edx
40a87e:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a881:	50                   	push   %eax
40a882:	56                   	push   %esi
40a883:	ff 52 1c             	call   *0x1c(%edx)
40a886:	db e2                	fnclex
40a888:	85 c0                	test   %eax,%eax
40a88a:	7d 0f                	jge    0x40a89b
40a88c:	6a 1c                	push   $0x1c
40a88e:	68 a0 7c 40 00       	push   $0x407ca0
40a893:	56                   	push   %esi
40a894:	50                   	push   %eax
40a895:	ff 15 48 10 40 00    	call   *0x401048
40a89b:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a89e:	8b 38                	mov    (%eax),%edi
40a8a0:	83 ec 10             	sub    $0x10,%esp
40a8a3:	8b dc                	mov    %esp,%ebx
40a8a5:	ba 0a 00 00 00       	mov    $0xa,%edx
40a8aa:	89 13                	mov    %edx,(%ebx)
40a8ac:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a8af:	89 53 04             	mov    %edx,0x4(%ebx)
40a8b2:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40a8b7:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a8ba:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a8bd:	68 f8 7c 40 00       	push   $0x407cf8
40a8c2:	50                   	push   %eax
40a8c3:	8b f0                	mov    %eax,%esi
40a8c5:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40a8c8:	ff 57 60             	call   *0x60(%edi)
40a8cb:	db e2                	fnclex
40a8cd:	85 c0                	test   %eax,%eax
40a8cf:	7d 0f                	jge    0x40a8e0
40a8d1:	6a 60                	push   $0x60
40a8d3:	68 c0 7c 40 00       	push   $0x407cc0
40a8d8:	56                   	push   %esi
40a8d9:	50                   	push   %eax
40a8da:	ff 15 48 10 40 00    	call   *0x401048
40a8e0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a8e3:	ff 15 b0 11 40 00    	call   *0x4011b0
40a8e9:	68 80 77 40 00       	push   $0x407780
40a8ee:	ff 15 88 10 40 00    	call   *0x401088
40a8f4:	dd 05 d8 11 40 00    	fldl   0x4011d8
40a8fa:	52                   	push   %edx
40a8fb:	50                   	push   %eax
40a8fc:	ff 15 f0 10 40 00    	call   *0x4010f0
40a902:	85 c0                	test   %eax,%eax
40a904:	0f 84 8c 00 00 00    	je     0x40a996
40a90a:	a1 38 03 41 00       	mov    0x410338,%eax
40a90f:	85 c0                	test   %eax,%eax
40a911:	75 10                	jne    0x40a923
40a913:	68 38 03 41 00       	push   $0x410338
40a918:	68 b0 7c 40 00       	push   $0x407cb0
40a91d:	ff 15 24 11 40 00    	call   *0x401124
40a923:	8b 35 38 03 41 00    	mov    0x410338,%esi
40a929:	8b 16                	mov    (%esi),%edx
40a92b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a92e:	50                   	push   %eax
40a92f:	56                   	push   %esi
40a930:	ff 52 1c             	call   *0x1c(%edx)
40a933:	db e2                	fnclex
40a935:	85 c0                	test   %eax,%eax
40a937:	7d 0f                	jge    0x40a948
40a939:	6a 1c                	push   $0x1c
40a93b:	68 a0 7c 40 00       	push   $0x407ca0
40a940:	56                   	push   %esi
40a941:	50                   	push   %eax
40a942:	ff 15 48 10 40 00    	call   *0x401048
40a948:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a94b:	8b 38                	mov    (%eax),%edi
40a94d:	83 ec 10             	sub    $0x10,%esp
40a950:	8b dc                	mov    %esp,%ebx
40a952:	ba 0a 00 00 00       	mov    $0xa,%edx
40a957:	89 13                	mov    %edx,(%ebx)
40a959:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a95c:	89 53 04             	mov    %edx,0x4(%ebx)
40a95f:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40a964:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a967:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40a96a:	68 1c 7d 40 00       	push   $0x407d1c
40a96f:	50                   	push   %eax
40a970:	8b f0                	mov    %eax,%esi
40a972:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40a975:	ff 57 60             	call   *0x60(%edi)
40a978:	db e2                	fnclex
40a97a:	85 c0                	test   %eax,%eax
40a97c:	7d 0f                	jge    0x40a98d
40a97e:	6a 60                	push   $0x60
40a980:	68 c0 7c 40 00       	push   $0x407cc0
40a985:	56                   	push   %esi
40a986:	50                   	push   %eax
40a987:	ff 15 48 10 40 00    	call   *0x401048
40a98d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40a990:	ff 15 b0 11 40 00    	call   *0x4011b0
40a996:	68 80 77 40 00       	push   $0x407780
40a99b:	ff 15 88 10 40 00    	call   *0x401088
40a9a1:	dd 05 d8 11 40 00    	fldl   0x4011d8
40a9a7:	52                   	push   %edx
40a9a8:	50                   	push   %eax
40a9a9:	ff 15 f0 10 40 00    	call   *0x4010f0
40a9af:	85 c0                	test   %eax,%eax
40a9b1:	0f 84 8c 00 00 00    	je     0x40aa43
40a9b7:	a1 38 03 41 00       	mov    0x410338,%eax
40a9bc:	85 c0                	test   %eax,%eax
40a9be:	75 10                	jne    0x40a9d0
40a9c0:	68 38 03 41 00       	push   $0x410338
40a9c5:	68 b0 7c 40 00       	push   $0x407cb0
40a9ca:	ff 15 24 11 40 00    	call   *0x401124
40a9d0:	8b 35 38 03 41 00    	mov    0x410338,%esi
40a9d6:	8b 16                	mov    (%esi),%edx
40a9d8:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a9db:	50                   	push   %eax
40a9dc:	56                   	push   %esi
40a9dd:	ff 52 1c             	call   *0x1c(%edx)
40a9e0:	db e2                	fnclex
40a9e2:	85 c0                	test   %eax,%eax
40a9e4:	7d 0f                	jge    0x40a9f5
40a9e6:	6a 1c                	push   $0x1c
40a9e8:	68 a0 7c 40 00       	push   $0x407ca0
40a9ed:	56                   	push   %esi
40a9ee:	50                   	push   %eax
40a9ef:	ff 15 48 10 40 00    	call   *0x401048
40a9f5:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a9f8:	8b 38                	mov    (%eax),%edi
40a9fa:	83 ec 10             	sub    $0x10,%esp
40a9fd:	8b dc                	mov    %esp,%ebx
40a9ff:	ba 0a 00 00 00       	mov    $0xa,%edx
40aa04:	89 13                	mov    %edx,(%ebx)
40aa06:	8b 55 d4             	mov    -0x2c(%ebp),%edx