40c5b1:	83 e0 fc             	and    $0xfffffffc,%eax
40c5b4:	e8 37 a1 00 00       	call   0x4166f0
40c5b9:	8b c4                	mov    %esp,%eax
40c5bb:	ff 75 ec             	push   -0x14(%ebp)
40c5be:	56                   	push   %esi
40c5bf:	53                   	push   %ebx
40c5c0:	50                   	push   %eax
40c5c1:	e8 29 9e ff ff       	call   0x4063ef
40c5c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c5c9:	50                   	push   %eax
40c5ca:	e8 c5 4c ff ff       	call   0x401294
40c5cf:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c5d2:	50                   	push   %eax
40c5d3:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40c5d9:	8d 4f f0             	lea    -0x10(%edi),%ecx
40c5dc:	e8 71 4d ff ff       	call   0x401352
40c5e1:	8b 45 08             	mov    0x8(%ebp),%eax
40c5e4:	8d 65 d0             	lea    -0x30(%ebp),%esp
40c5e7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c5ea:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c5f1:	5f                   	pop    %edi
40c5f2:	5e                   	pop    %esi
40c5f3:	5b                   	pop    %ebx
40c5f4:	c9                   	leave
40c5f5:	c2 0c 00             	ret    $0xc
40c5f8:	b8 79 31 48 00       	mov    $0x483179,%eax
40c5fd:	e8 7a b6 00 00       	call   0x417c7c
40c602:	53                   	push   %ebx
40c603:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c606:	57                   	push   %edi
40c607:	ff 75 0c             	push   0xc(%ebp)
40c60a:	8b cb                	mov    %ebx,%ecx
40c60c:	e8 87 97 04 00       	call   0x455d98
40c611:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c614:	8d 45 08             	lea    0x8(%ebp),%eax
40c617:	50                   	push   %eax
40c618:	ff 75 0c             	push   0xc(%ebp)
40c61b:	e8 e0 44 03 00       	call   0x440b00
40c620:	33 ff                	xor    %edi,%edi
40c622:	39 3b                	cmp    %edi,(%ebx)
40c624:	74 77                	je     0x40c69d
40c626:	56                   	push   %esi
40c627:	ff 75 08             	push   0x8(%ebp)
40c62a:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c630:	8b f0                	mov    %eax,%esi
40c632:	e8 bf 3b 03 00       	call   0x4401f6
40c637:	8b 10                	mov    (%eax),%edx
40c639:	8b c8                	mov    %eax,%ecx
40c63b:	ff 52 0c             	call   *0xc(%edx)
40c63e:	83 c0 10             	add    $0x10,%eax
40c641:	89 45 0c             	mov    %eax,0xc(%ebp)
40c644:	8d 46 01             	lea    0x1(%esi),%eax
40c647:	50                   	push   %eax
40c648:	56                   	push   %esi
40c649:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c64c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c64f:	e8 f6 4a ff ff       	call   0x40114a
40c654:	50                   	push   %eax
40c655:	ff 75 08             	push   0x8(%ebp)
40c658:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c65e:	6a ff                	push   $0xffffffff
40c660:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c663:	e8 bf 4a ff ff       	call   0x401127
40c668:	8b 75 0c             	mov    0xc(%ebp),%esi
40c66b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c66e:	68 00 04 00 00       	push   $0x400
40c673:	57                   	push   %edi
40c674:	56                   	push   %esi
40c675:	e8 a2 fd ff ff       	call   0x40c41c
40c67a:	85 c0                	test   %eax,%eax
40c67c:	75 14                	jne    0x40c692
40c67e:	6a ff                	push   $0xffffffff
40c680:	57                   	push   %edi
40c681:	68 19 f1 00 00       	push   $0xf119
40c686:	e8 32 92 04 00       	call   0x4558bd
40c68b:	8b cb                	mov    %ebx,%ecx
40c68d:	e8 38 93 04 00       	call   0x4559ca
40c692:	8d 4e f0             	lea    -0x10(%esi),%ecx
40c695:	e8 b8 4c ff ff       	call   0x401352
40c69a:	5e                   	pop    %esi
40c69b:	eb 2f                	jmp    0x40c6cc
40c69d:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c6a0:	68 00 04 00 00       	push   $0x400
40c6a5:	57                   	push   %edi
40c6a6:	8d 45 0c             	lea    0xc(%ebp),%eax
40c6a9:	50                   	push   %eax
40c6aa:	e8 45 fe ff ff       	call   0x40c4f4
40c6af:	ff 75 0c             	push   0xc(%ebp)
40c6b2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c6b9:	ff 75 08             	push   0x8(%ebp)
40c6bc:	e8 72 4b 04 00       	call   0x451233
40c6c1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c6c4:	83 c1 f0             	add    $0xfffffff0,%ecx
40c6c7:	e8 86 4c ff ff       	call   0x401352
40c6cc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c6cf:	5f                   	pop    %edi
40c6d0:	5b                   	pop    %ebx
40c6d1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c6d8:	c9                   	leave
40c6d9:	c2 0c 00             	ret    $0xc
40c6dc:	b8 a3 31 48 00       	mov    $0x4831a3,%eax
40c6e1:	e8 96 b5 00 00       	call   0x417c7c
40c6e6:	51                   	push   %ecx
40c6e7:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40c6eb:	8b 41 08             	mov    0x8(%ecx),%eax
40c6ee:	83 f8 02             	cmp    $0x2,%eax
40c6f1:	75 12                	jne    0x40c705
40c6f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c6f6:	68 71 92 48 00       	push   $0x489271
40c6fb:	e8 94 4b ff ff       	call   0x401294
40c700:	e9 eb 00 00 00       	jmp    0x40c7f0
40c705:	33 d2                	xor    %edx,%edx
40c707:	42                   	inc    %edx
40c708:	3b c2                	cmp    %edx,%eax
40c70a:	75 4f                	jne    0x40c75b
40c70c:	e8 e5 3a 03 00       	call   0x4401f6
40c711:	8b 10                	mov    (%eax),%edx
40c713:	8b c8                	mov    %eax,%ecx
40c715:	ff 52 0c             	call   *0xc(%edx)
40c718:	83 c0 10             	add    $0x10,%eax
40c71b:	89 45 0c             	mov    %eax,0xc(%ebp)
40c71e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c722:	68 00 d8 00 00       	push   $0xd800
40c727:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c72a:	e8 cf 4a ff ff       	call   0x4011fe
40c72f:	85 c0                	test   %eax,%eax
40c731:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c734:	74 0b                	je     0x40c741
40c736:	8d 45 0c             	lea    0xc(%ebp),%eax
40c739:	50                   	push   %eax
40c73a:	e8 93 49 ff ff       	call   0x4010d2
40c73f:	eb 0a                	jmp    0x40c74b
40c741:	68 2c 91 48 00       	push   $0x48912c
40c746:	e8 49 4b ff ff       	call   0x401294
40c74b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c74e:	83 c1 f0             	add    $0xfffffff0,%ecx
40c751:	e8 fc 4b ff ff       	call   0x401352
40c756:	e9 95 00 00 00       	jmp    0x40c7f0
40c75b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40c75f:	dd 01                	fldl   (%ecx)
40c761:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c764:	50                   	push   %eax
40c765:	ff 75 0c             	push   0xc(%ebp)
40c768:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c76b:	ff 75 10             	push   0x10(%ebp)
40c76e:	51                   	push   %ecx
40c76f:	51                   	push   %ecx
40c770:	dd 1c 24             	fstpl  (%esp)
40c773:	ff 15 78 04 4b 00    	call   *0x4b0478
40c779:	85 c0                	test   %eax,%eax
40c77b:	7d 44                	jge    0x40c7c1
40c77d:	e8 74 3a 03 00       	call   0x4401f6
40c782:	8b 10                	mov    (%eax),%edx
40c784:	8b c8                	mov    %eax,%ecx
40c786:	ff 52 0c             	call   *0xc(%edx)
40c789:	83 c0 10             	add    $0x10,%eax
40c78c:	89 45 0c             	mov    %eax,0xc(%ebp)
40c78f:	68 00 d8 00 00       	push   $0xd800
40c794:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c797:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40c79b:	e8 5e 4a ff ff       	call   0x4011fe
40c7a0:	85 c0                	test   %eax,%eax
40c7a2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c7a5:	74 0b                	je     0x40c7b2
40c7a7:	8d 45 0c             	lea    0xc(%ebp),%eax
40c7aa:	50                   	push   %eax
40c7ab:	e8 22 49 ff ff       	call   0x4010d2
40c7b0:	eb 0a                	jmp    0x40c7bc
40c7b2:	68 2c 91 48 00       	push   $0x48912c
40c7b7:	e8 d8 4a ff ff       	call   0x401294
40c7bc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c7bf:	eb 1e                	jmp    0x40c7df
40c7c1:	ff 75 f0             	push   -0x10(%ebp)
40c7c4:	8d 4d 10             	lea    0x10(%ebp),%ecx
40c7c7:	e8 05 fc ff ff       	call   0x40c3d1
40c7cc:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c7cf:	8d 45 10             	lea    0x10(%ebp),%eax
40c7d2:	50                   	push   %eax
40c7d3:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40c7d7:	e8 f6 48 ff ff       	call   0x4010d2
40c7dc:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c7df:	83 c1 f0             	add    $0xfffffff0,%ecx
40c7e2:	e8 6b 4b ff ff       	call   0x401352
40c7e7:	ff 75 f0             	push   -0x10(%ebp)
40c7ea:	ff 15 08 05 4b 00    	call   *0x4b0508
40c7f0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c7f3:	8b 45 08             	mov    0x8(%ebp),%eax
40c7f6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c7fd:	c9                   	leave
40c7fe:	c2 0c 00             	ret    $0xc
40c801:	b8 bd 31 48 00       	mov    $0x4831bd,%eax
40c806:	e8 71 b4 00 00       	call   0x417c7c
40c80b:	53                   	push   %ebx
40c80c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c80f:	57                   	push   %edi
40c810:	ff 75 0c             	push   0xc(%ebp)
40c813:	8b cb                	mov    %ebx,%ecx
40c815:	e8 7e 95 04 00       	call   0x455d98
40c81a:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c81d:	8d 45 08             	lea    0x8(%ebp),%eax
40c820:	50                   	push   %eax
40c821:	ff 75 0c             	push   0xc(%ebp)
40c824:	e8 d7 42 03 00       	call   0x440b00
40c829:	33 ff                	xor    %edi,%edi
40c82b:	39 3b                	cmp    %edi,(%ebx)
40c82d:	74 77                	je     0x40c8a6
40c82f:	56                   	push   %esi
40c830:	ff 75 08             	push   0x8(%ebp)
40c833:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c839:	8b f0                	mov    %eax,%esi
40c83b:	e8 b6 39 03 00       	call   0x4401f6
40c840:	8b 10                	mov    (%eax),%edx
40c842:	8b c8                	mov    %eax,%ecx
40c844:	ff 52 0c             	call   *0xc(%edx)
40c847:	83 c0 10             	add    $0x10,%eax
40c84a:	89 45 0c             	mov    %eax,0xc(%ebp)
40c84d:	8d 46 01             	lea    0x1(%esi),%eax
40c850:	50                   	push   %eax
40c851:	56                   	push   %esi
40c852:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c855:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c858:	e8 ed 48 ff ff       	call   0x40114a
40c85d:	50                   	push   %eax
40c85e:	ff 75 08             	push   0x8(%ebp)
40c861:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c867:	6a ff                	push   $0xffffffff
40c869:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c86c:	e8 b6 48 ff ff       	call   0x401127
40c871:	8b 75 0c             	mov    0xc(%ebp),%esi
40c874:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c877:	68 00 04 00 00       	push   $0x400
40c87c:	57                   	push   %edi
40c87d:	56                   	push   %esi
40c87e:	e8 dc f2 ff ff       	call   0x40bb5f
40c883:	84 c0                	test   %al,%al
40c885:	75 14                	jne    0x40c89b
40c887:	6a ff                	push   $0xffffffff
40c889:	57                   	push   %edi
40c88a:	68 18 f1 00 00       	push   $0xf118
40c88f:	e8 29 90 04 00       	call   0x4558bd
40c894:	8b cb                	mov    %ebx,%ecx
40c896:	e8 2f 91 04 00       	call   0x4559ca
40c89b:	8d 4e f0             	lea    -0x10(%esi),%ecx
40c89e:	e8 af 4a ff ff       	call   0x401352
40c8a3:	5e                   	pop    %esi
40c8a4:	eb 2f                	jmp    0x40c8d5
40c8a6:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c8a9:	68 00 04 00 00       	push   $0x400
40c8ae:	57                   	push   %edi
40c8af:	8d 45 0c             	lea    0xc(%ebp),%eax
40c8b2:	50                   	push   %eax
40c8b3:	e8 24 fe ff ff       	call   0x40c6dc
40c8b8:	ff 75 0c             	push   0xc(%ebp)
40c8bb:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c8c2:	ff 75 08             	push   0x8(%ebp)
40c8c5:	e8 69 49 04 00       	call   0x451233
40c8ca:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c8cd:	83 c1 f0             	add    $0xfffffff0,%ecx
40c8d0:	e8 7d 4a ff ff       	call   0x401352
40c8d5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c8d8:	5f                   	pop    %edi
40c8d9:	5b                   	pop    %ebx
40c8da:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c8e1:	c9                   	leave
40c8e2:	c2 0c 00             	ret    $0xc
40c8e5:	b8 d7 31 48 00       	mov    $0x4831d7,%eax
40c8ea:	e8 8d b3 00 00       	call   0x417c7c
40c8ef:	83 ec 1c             	sub    $0x1c,%esp
40c8f2:	53                   	push   %ebx
40c8f3:	d9 ee                	fldz
40c8f5:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c8f8:	dd 5d e8             	fstpl  -0x18(%ebp)
40c8fb:	57                   	push   %edi
40c8fc:	ff 75 0c             	push   0xc(%ebp)
40c8ff:	33 ff                	xor    %edi,%edi
40c901:	8b cb                	mov    %ebx,%ecx
40c903:	89 7d f0             	mov    %edi,-0x10(%ebp)
40c906:	e8 8d 94 04 00       	call   0x455d98
40c90b:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c90e:	8d 45 08             	lea    0x8(%ebp),%eax
40c911:	50                   	push   %eax
40c912:	ff 75 0c             	push   0xc(%ebp)
40c915:	e8 e6 41 03 00       	call   0x440b00
40c91a:	39 3b                	cmp    %edi,(%ebx)
40c91c:	0f 84 90 00 00 00    	je     0x40c9b2
40c922:	56                   	push   %esi
40c923:	ff 75 08             	push   0x8(%ebp)
40c926:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c92c:	8b f0                	mov    %eax,%esi
40c92e:	e8 c3 38 03 00       	call   0x4401f6
40c933:	8b 10                	mov    (%eax),%edx
40c935:	8b c8                	mov    %eax,%ecx
40c937:	ff 52 0c             	call   *0xc(%edx)
40c93a:	83 c0 10             	add    $0x10,%eax
40c93d:	89 45 0c             	mov    %eax,0xc(%ebp)
40c940:	8d 46 01             	lea    0x1(%esi),%eax
40c943:	50                   	push   %eax
40c944:	56                   	push   %esi
40c945:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c948:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c94b:	e8 fa 47 ff ff       	call   0x40114a
40c950:	50                   	push   %eax
40c951:	ff 75 08             	push   0x8(%ebp)
40c954:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c95a:	6a ff                	push   $0xffffffff
40c95c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c95f:	e8 c3 47 ff ff       	call   0x401127
40c964:	8b 75 0c             	mov    0xc(%ebp),%esi
40c967:	68 00 04 00 00       	push   $0x400
40c96c:	57                   	push   %edi
40c96d:	56                   	push   %esi
40c96e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40c971:	e8 e9 f1 ff ff       	call   0x40bb5f
40c976:	84 c0                	test   %al,%al
40c978:	75 14                	jne    0x40c98e
40c97a:	6a ff                	push   $0xffffffff
40c97c:	57                   	push   %edi
40c97d:	68 18 f1 00 00       	push   $0xf118
40c982:	e8 36 8f 04 00       	call   0x4558bd
40c987:	8b cb                	mov    %ebx,%ecx
40c989:	e8 3c 90 04 00       	call   0x4559ca
40c98e:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c991:	50                   	push   %eax
40c992:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40c995:	e8 08 de ff ff       	call   0x40a7a2
40c99a:	ff 75 10             	push   0x10(%ebp)
40c99d:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c9a0:	50                   	push   %eax
40c9a1:	ff 15 34 02 4b 00    	call   *0x4b0234
40c9a7:	8d 4e f0             	lea    -0x10(%esi),%ecx
40c9aa:	e8 a3 49 ff ff       	call   0x401352
40c9af:	5e                   	pop    %esi
40c9b0:	eb 62                	jmp    0x40ca14
40c9b2:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c9b5:	50                   	push   %eax
40c9b6:	ff 75 10             	push   0x10(%ebp)
40c9b9:	ff 15 2c 03 4b 00    	call   *0x4b032c
40c9bf:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
40c9c3:	50                   	push   %eax
40c9c4:	0f b7 45 e2          	movzwl -0x1e(%ebp),%eax
40c9c8:	50                   	push   %eax
40c9c9:	0f b7 45 e0          	movzwl -0x20(%ebp),%eax
40c9cd:	50                   	push   %eax
40c9ce:	0f b7 45 de          	movzwl -0x22(%ebp),%eax
40c9d2:	50                   	push   %eax
40c9d3:	0f b7 45 da          	movzwl -0x26(%ebp),%eax
40c9d7:	50                   	push   %eax
40c9d8:	0f b7 45 d8          	movzwl -0x28(%ebp),%eax
40c9dc:	50                   	push   %eax
40c9dd:	8d 4d e8             	lea    -0x18(%ebp),%ecx