40d5a5:	8d 44 24 14          	lea    0x14(%esp),%eax
40d5a9:	50                   	push   %eax
40d5aa:	ff d7                	call   *%edi
40d5ac:	50                   	push   %eax
40d5ad:	ff d3                	call   *%ebx
40d5af:	33 c9                	xor    %ecx,%ecx
40d5b1:	66 3d ff ff          	cmp    $0xffff,%ax
40d5b5:	0f 95 c1             	setne  %cl
40d5b8:	f7 d9                	neg    %ecx
40d5ba:	66 89 4c 24 24       	mov    %cx,0x24(%esp)
40d5bf:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40d5c3:	ff d5                	call   *%ebp
40d5c5:	66 83 7c 24 24 00    	cmpw   $0x0,0x24(%esp)
40d5cb:	74 1f                	je     0x40d5ec
40d5cd:	8b 16                	mov    (%esi),%edx
40d5cf:	56                   	push   %esi
40d5d0:	ff 92 14 07 00 00    	call   *0x714(%edx)
40d5d6:	85 c0                	test   %eax,%eax
40d5d8:	7d 12                	jge    0x40d5ec
40d5da:	68 14 07 00 00       	push   $0x714
40d5df:	68 04 76 40 00       	push   $0x407604
40d5e4:	56                   	push   %esi
40d5e5:	50                   	push   %eax
40d5e6:	ff 15 48 10 40 00    	call   *0x401048
40d5ec:	68 f1 50 00 00       	push   $0x50f1
40d5f1:	8d 44 24 14          	lea    0x14(%esp),%eax
40d5f5:	50                   	push   %eax
40d5f6:	ff d7                	call   *%edi
40d5f8:	50                   	push   %eax
40d5f9:	ff d3                	call   *%ebx
40d5fb:	33 c9                	xor    %ecx,%ecx
40d5fd:	66 3d ff ff          	cmp    $0xffff,%ax
40d601:	0f 95 c1             	setne  %cl
40d604:	f7 d9                	neg    %ecx
40d606:	66 8b f9             	mov    %cx,%di
40d609:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40d60d:	ff d5                	call   *%ebp
40d60f:	66 85 ff             	test   %di,%di
40d612:	74 4b                	je     0x40d65f
40d614:	8b 16                	mov    (%esi),%edx
40d616:	56                   	push   %esi
40d617:	ff 92 14 07 00 00    	call   *0x714(%edx)
40d61d:	85 c0                	test   %eax,%eax
40d61f:	7d 28                	jge    0x40d649
40d621:	68 14 07 00 00       	push   $0x714
40d626:	68 04 76 40 00       	push   $0x407604
40d62b:	56                   	push   %esi
40d62c:	50                   	push   %eax
40d62d:	ff 15 48 10 40 00    	call   *0x401048
40d633:	8b 44 24 38          	mov    0x38(%esp),%eax
40d637:	5f                   	pop    %edi
40d638:	5e                   	pop    %esi
40d639:	5d                   	pop    %ebp
40d63a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40d640:	33 c0                	xor    %eax,%eax
40d642:	5b                   	pop    %ebx
40d643:	83 c4 10             	add    $0x10,%esp
40d646:	c2 18 00             	ret    $0x18
40d649:	8b 4c 24 38          	mov    0x38(%esp),%ecx
40d64d:	5f                   	pop    %edi
40d64e:	5e                   	pop    %esi
40d64f:	5d                   	pop    %ebp
40d650:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
40d656:	33 c0                	xor    %eax,%eax
40d658:	5b                   	pop    %ebx
40d659:	83 c4 10             	add    $0x10,%esp
40d65c:	c2 18 00             	ret    $0x18
40d65f:	8b 54 24 38          	mov    0x38(%esp),%edx
40d663:	5f                   	pop    %edi
40d664:	5e                   	pop    %esi
40d665:	5d                   	pop    %ebp
40d666:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40d66c:	33 c0                	xor    %eax,%eax
40d66e:	5b                   	pop    %ebx
40d66f:	83 c4 10             	add    $0x10,%esp
40d672:	c2 18 00             	ret    $0x18
40d675:	90                   	nop
40d676:	90                   	nop
40d677:	90                   	nop
40d678:	90                   	nop
40d679:	90                   	nop
40d67a:	90                   	nop
40d67b:	90                   	nop
40d67c:	90                   	nop
40d67d:	90                   	nop
40d67e:	90                   	nop
40d67f:	90                   	nop
40d680:	55                   	push   %ebp
40d681:	8b ec                	mov    %esp,%ebp
40d683:	83 ec 0c             	sub    $0xc,%esp
40d686:	68 b6 12 40 00       	push   $0x4012b6
40d68b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40d691:	50                   	push   %eax
40d692:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40d699:	83 ec 0c             	sub    $0xc,%esp
40d69c:	53                   	push   %ebx
40d69d:	56                   	push   %esi
40d69e:	57                   	push   %edi
40d69f:	89 65 f4             	mov    %esp,-0xc(%ebp)
40d6a2:	c7 45 f8 70 12 40 00 	movl   $0x401270,-0x8(%ebp)
40d6a9:	33 f6                	xor    %esi,%esi
40d6ab:	89 75 fc             	mov    %esi,-0x4(%ebp)
40d6ae:	8b 45 08             	mov    0x8(%ebp),%eax
40d6b1:	8b 08                	mov    (%eax),%ecx
40d6b3:	50                   	push   %eax
40d6b4:	ff 51 04             	call   *0x4(%ecx)
40d6b7:	8b 55 24             	mov    0x24(%ebp),%edx
40d6ba:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40d6bd:	89 75 e8             	mov    %esi,-0x18(%ebp)
40d6c0:	ff 15 48 11 40 00    	call   *0x401148
40d6c6:	8b 35 0c 11 40 00    	mov    0x40110c,%esi
40d6cc:	68 70 77 40 00       	push   $0x407770
40d6d1:	ff d6                	call   *%esi
40d6d3:	66 3d 01 00          	cmp    $0x1,%ax
40d6d7:	74 0f                	je     0x40d6e8
40d6d9:	8b 3d 14 11 40 00    	mov    0x401114,%edi
40d6df:	68 80 81 40 00       	push   $0x408180
40d6e4:	ff d7                	call   *%edi
40d6e6:	eb 06                	jmp    0x40d6ee
40d6e8:	8b 3d 14 11 40 00    	mov    0x401114,%edi
40d6ee:	68 70 77 40 00       	push   $0x407770
40d6f3:	ff d6                	call   *%esi
40d6f5:	66 3d 01 00          	cmp    $0x1,%ax
40d6f9:	74 07                	je     0x40d702
40d6fb:	68 a8 81 40 00       	push   $0x4081a8
40d700:	ff d7                	call   *%edi
40d702:	68 70 77 40 00       	push   $0x407770
40d707:	ff d6                	call   *%esi
40d709:	66 3d 01 00          	cmp    $0x1,%ax
40d70d:	74 07                	je     0x40d716
40d70f:	68 c4 81 40 00       	push   $0x4081c4
40d714:	ff d7                	call   *%edi
40d716:	68 70 77 40 00       	push   $0x407770
40d71b:	ff d6                	call   *%esi
40d71d:	66 3d 01 00          	cmp    $0x1,%ax
40d721:	74 07                	je     0x40d72a
40d723:	68 d8 81 40 00       	push   $0x4081d8
40d728:	ff d7                	call   *%edi
40d72a:	68 70 77 40 00       	push   $0x407770
40d72f:	ff d6                	call   *%esi
40d731:	66 3d 01 00          	cmp    $0x1,%ax
40d735:	74 07                	je     0x40d73e
40d737:	68 00 82 40 00       	push   $0x408200
40d73c:	ff d7                	call   *%edi
40d73e:	68 70 77 40 00       	push   $0x407770
40d743:	ff d6                	call   *%esi
40d745:	66 3d 01 00          	cmp    $0x1,%ax
40d749:	74 07                	je     0x40d752
40d74b:	68 1c 82 40 00       	push   $0x40821c
40d750:	ff d7                	call   *%edi
40d752:	68 70 77 40 00       	push   $0x407770
40d757:	ff d6                	call   *%esi
40d759:	66 3d 01 00          	cmp    $0x1,%ax
40d75d:	74 07                	je     0x40d766
40d75f:	68 38 82 40 00       	push   $0x408238
40d764:	ff d7                	call   *%edi
40d766:	68 70 77 40 00       	push   $0x407770
40d76b:	ff d6                	call   *%esi
40d76d:	66 3d 01 00          	cmp    $0x1,%ax
40d771:	74 07                	je     0x40d77a
40d773:	68 4c 82 40 00       	push   $0x40824c
40d778:	ff d7                	call   *%edi
40d77a:	68 70 77 40 00       	push   $0x407770
40d77f:	ff d6                	call   *%esi
40d781:	66 3d 01 00          	cmp    $0x1,%ax
40d785:	74 07                	je     0x40d78e
40d787:	68 74 82 40 00       	push   $0x408274
40d78c:	ff d7                	call   *%edi
40d78e:	68 70 77 40 00       	push   $0x407770
40d793:	ff d6                	call   *%esi
40d795:	66 3d 01 00          	cmp    $0x1,%ax
40d799:	74 07                	je     0x40d7a2
40d79b:	68 90 82 40 00       	push   $0x408290
40d7a0:	ff d7                	call   *%edi
40d7a2:	68 b1 d7 40 00       	push   $0x40d7b1
40d7a7:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40d7aa:	ff 15 a8 11 40 00    	call   *0x4011a8
40d7b0:	c3                   	ret
40d7b1:	8b 45 08             	mov    0x8(%ebp),%eax
40d7b4:	8b 10                	mov    (%eax),%edx
40d7b6:	50                   	push   %eax
40d7b7:	ff 52 08             	call   *0x8(%edx)
40d7ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d7bd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d7c0:	5f                   	pop    %edi
40d7c1:	5e                   	pop    %esi
40d7c2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d7c9:	5b                   	pop    %ebx
40d7ca:	8b e5                	mov    %ebp,%esp
40d7cc:	5d                   	pop    %ebp
40d7cd:	c2 24 00             	ret    $0x24
40d7d0:	55                   	push   %ebp
40d7d1:	8b ec                	mov    %esp,%ebp
40d7d3:	83 ec 0c             	sub    $0xc,%esp
40d7d6:	68 b6 12 40 00       	push   $0x4012b6
40d7db:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40d7e1:	50                   	push   %eax
40d7e2:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40d7e9:	83 ec 68             	sub    $0x68,%esp
40d7ec:	53                   	push   %ebx
40d7ed:	56                   	push   %esi
40d7ee:	57                   	push   %edi
40d7ef:	89 65 f4             	mov    %esp,-0xc(%ebp)
40d7f2:	c7 45 f8 80 12 40 00 	movl   $0x401280,-0x8(%ebp)
40d7f9:	33 db                	xor    %ebx,%ebx
40d7fb:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d7fe:	8b 45 08             	mov    0x8(%ebp),%eax
40d801:	8b 08                	mov    (%eax),%ecx
40d803:	50                   	push   %eax
40d804:	ff 51 04             	call   *0x4(%ecx)
40d807:	8b 55 0c             	mov    0xc(%ebp),%edx
40d80a:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40d80d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40d810:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40d813:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40d816:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40d819:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40d81c:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40d81f:	ff 15 48 11 40 00    	call   *0x401148
40d825:	b8 0a 00 00 00       	mov    $0xa,%eax
40d82a:	8d 55 bc             	lea    -0x44(%ebp),%edx
40d82d:	52                   	push   %edx
40d82e:	89 45 bc             	mov    %eax,-0x44(%ebp)
40d831:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d834:	8d 45 cc             	lea    -0x34(%ebp),%eax
40d837:	50                   	push   %eax
40d838:	68 00 00 f0 3f       	push   $0x3ff00000
40d83d:	53                   	push   %ebx
40d83e:	68 00 00 f0 3f       	push   $0x3ff00000
40d843:	53                   	push   %ebx
40d844:	68 00 00 f0 3f       	push   $0x3ff00000
40d849:	53                   	push   %ebx
40d84a:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40d84f:	68 00 00 f0 3f       	push   $0x3ff00000
40d854:	53                   	push   %ebx
40d855:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40d858:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40d85b:	ff 15 e0 10 40 00    	call   *0x4010e0
40d861:	ff 15 9c 10 40 00    	call   *0x40109c
40d867:	dc 1d 10 12 40 00    	fcompl 0x401210
40d86d:	df e0                	fnstsw %ax
40d86f:	f6 c4 40             	test   $0x40,%ah
40d872:	75 07                	jne    0x40d87b
40d874:	be 01 00 00 00       	mov    $0x1,%esi
40d879:	eb 02                	jmp    0x40d87d
40d87b:	33 f6                	xor    %esi,%esi
40d87d:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40d880:	51                   	push   %ecx
40d881:	8d 55 cc             	lea    -0x34(%ebp),%edx
40d884:	52                   	push   %edx
40d885:	6a 02                	push   $0x2
40d887:	ff 15 28 10 40 00    	call   *0x401028
40d88d:	f7 de                	neg    %esi
40d88f:	83 c4 0c             	add    $0xc,%esp
40d892:	66 85 f6             	test   %si,%si
40d895:	0f 84 85 00 00 00    	je     0x40d920
40d89b:	39 1d 38 03 41 00    	cmp    %ebx,0x410338
40d8a1:	75 10                	jne    0x40d8b3
40d8a3:	68 38 03 41 00       	push   $0x410338
40d8a8:	68 a8 7c 40 00       	push   $0x407ca8
40d8ad:	ff 15 2c 11 40 00    	call   *0x40112c
40d8b3:	8b 35 38 03 41 00    	mov    0x410338,%esi
40d8b9:	8b 06                	mov    (%esi),%eax
40d8bb:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40d8be:	51                   	push   %ecx
40d8bf:	56                   	push   %esi
40d8c0:	ff 50 4c             	call   *0x4c(%eax)
40d8c3:	db e2                	fnclex
40d8c5:	3b c3                	cmp    %ebx,%eax
40d8c7:	7d 13                	jge    0x40d8dc
40d8c9:	8b 3d 48 10 40 00    	mov    0x401048,%edi
40d8cf:	6a 4c                	push   $0x4c
40d8d1:	68 98 7c 40 00       	push   $0x407c98
40d8d6:	56                   	push   %esi
40d8d7:	50                   	push   %eax
40d8d8:	ff d7                	call   *%edi
40d8da:	eb 06                	jmp    0x40d8e2
40d8dc:	8b 3d 48 10 40 00    	mov    0x401048,%edi
40d8e2:	8b 45 dc             	mov    -0x24(%ebp),%eax
40d8e5:	8b 10                	mov    (%eax),%edx
40d8e7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d8ea:	51                   	push   %ecx
40d8eb:	68 c0 82 40 00       	push   $0x4082c0
40d8f0:	68 a4 82 40 00       	push   $0x4082a4
40d8f5:	50                   	push   %eax
40d8f6:	8b f0                	mov    %eax,%esi
40d8f8:	ff 52 24             	call   *0x24(%edx)
40d8fb:	db e2                	fnclex
40d8fd:	3b c3                	cmp    %ebx,%eax
40d8ff:	7d 0b                	jge    0x40d90c
40d901:	6a 24                	push   $0x24
40d903:	68 20 7e 40 00       	push   $0x407e20
40d908:	56                   	push   %esi
40d909:	50                   	push   %eax
40d90a:	ff d7                	call   *%edi
40d90c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d90f:	ff 15 a8 11 40 00    	call   *0x4011a8
40d915:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40d918:	ff 15 ac 11 40 00    	call   *0x4011ac
40d91e:	eb 06                	jmp    0x40d926
40d920:	8b 3d 48 10 40 00    	mov    0x401048,%edi
40d926:	b8 0a 00 00 00       	mov    $0xa,%eax
40d92b:	8d 55 bc             	lea    -0x44(%ebp),%edx
40d92e:	52                   	push   %edx
40d92f:	89 45 bc             	mov    %eax,-0x44(%ebp)
40d932:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d935:	8d 45 cc             	lea    -0x34(%ebp),%eax
40d938:	50                   	push   %eax
40d939:	68 00 00 f0 3f       	push   $0x3ff00000
40d93e:	53                   	push   %ebx
40d93f:	68 00 00 f0 3f       	push   $0x3ff00000
40d944:	53                   	push   %ebx
40d945:	68 00 00 f0 3f       	push   $0x3ff00000
40d94a:	53                   	push   %ebx
40d94b:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40d950:	68 00 00 f0 3f       	push   $0x3ff00000
40d955:	53                   	push   %ebx
40d956:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40d959:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40d95c:	ff 15 e0 10 40 00    	call   *0x4010e0
40d962:	ff 15 9c 10 40 00    	call   *0x40109c
40d968:	dc 1d 10 12 40 00    	fcompl 0x401210
40d96e:	df e0                	fnstsw %ax
40d970:	f6 c4 40             	test   $0x40,%ah
40d973:	75 07                	jne    0x40d97c
40d975:	be 01 00 00 00       	mov    $0x1,%esi
40d97a:	eb 02                	jmp    0x40d97e
40d97c:	33 f6                	xor    %esi,%esi
40d97e:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40d981:	51                   	push   %ecx
40d982:	8d 55 cc             	lea    -0x34(%ebp),%edx
40d985:	52                   	push   %edx
40d986:	6a 02                	push   $0x2
40d988:	ff 15 28 10 40 00    	call   *0x401028
40d98e:	f7 de                	neg    %esi
40d990:	83 c4 0c             	add    $0xc,%esp
40d993:	66 85 f6             	test   %si,%si
40d996:	74 75                	je     0x40da0d
40d998:	39 1d 38 03 41 00    	cmp    %ebx,0x410338
40d99e:	75 10                	jne    0x40d9b0
40d9a0:	68 38 03 41 00       	push   $0x410338
40d9a5:	68 a8 7c 40 00       	push   $0x407ca8
40d9aa:	ff 15 2c 11 40 00    	call   *0x40112c
40d9b0:	8b 35 38 03 41 00    	mov    0x410338,%esi
40d9b6:	8b 06                	mov    (%esi),%eax
40d9b8:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40d9bb:	51                   	push   %ecx
40d9bc:	56                   	push   %esi
40d9bd:	ff 50 4c             	call   *0x4c(%eax)
40d9c0:	db e2                	fnclex