40d4d5:	eb ea                	jmp    0x40d4c1
40d4d7:	55                   	push   %ebp
40d4d8:	8b ec                	mov    %esp,%ebp
40d4da:	83 ec 68             	sub    $0x68,%esp
40d4dd:	53                   	push   %ebx
40d4de:	56                   	push   %esi
40d4df:	8b 75 08             	mov    0x8(%ebp),%esi
40d4e2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40d4e5:	8b 5e 04             	mov    0x4(%esi),%ebx
40d4e8:	6a 0b                	push   $0xb
40d4ea:	8b 0b                	mov    (%ebx),%ecx
40d4ec:	e8 f3 00 00 00       	call   0x40d5e4
40d4f1:	84 c0                	test   %al,%al
40d4f3:	0f 85 44 8e 06 00    	jne    0x47633d
40d4f9:	57                   	push   %edi
40d4fa:	6a 08                	push   $0x8
40d4fc:	33 db                	xor    %ebx,%ebx
40d4fe:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
40d502:	5f                   	pop    %edi
40d503:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40d507:	76 28                	jbe    0x40d531
40d509:	8b 46 04             	mov    0x4(%esi),%eax
40d50c:	8b 40 04             	mov    0x4(%eax),%eax
40d50f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d512:	83 78 0c 0a          	cmpl   $0xa,0xc(%eax)
40d516:	0f 84 64 8e 06 00    	je     0x476380
40d51c:	8b c8                	mov    %eax,%ecx
40d51e:	88 5d ff             	mov    %bl,-0x1(%ebp)
40d521:	e8 60 fd ff ff       	call   0x40d286
40d526:	8b f8                	mov    %eax,%edi
40d528:	83 ff 10             	cmp    $0x10,%edi
40d52b:	0f 8f ab 00 00 00    	jg     0x40d5dc
40d531:	8b 46 04             	mov    0x4(%esi),%eax
40d534:	6a 07                	push   $0x7
40d536:	8b 08                	mov    (%eax),%ecx
40d538:	e8 a7 00 00 00       	call   0x40d5e4
40d53d:	84 c0                	test   %al,%al
40d53f:	0f 85 54 8e 06 00    	jne    0x476399
40d545:	33 c0                	xor    %eax,%eax
40d547:	40                   	inc    %eax
40d548:	39 46 08             	cmp    %eax,0x8(%esi)
40d54b:	76 18                	jbe    0x40d565
40d54d:	8b 76 04             	mov    0x4(%esi),%esi
40d550:	8b 76 04             	mov    0x4(%esi),%esi
40d553:	8b ce                	mov    %esi,%ecx
40d555:	e8 c6 56 00 00       	call   0x412c20
40d55a:	33 c0                	xor    %eax,%eax
40d55c:	40                   	inc    %eax
40d55d:	89 46 0c             	mov    %eax,0xc(%esi)
40d560:	89 1e                	mov    %ebx,(%esi)
40d562:	8b 75 08             	mov    0x8(%ebp),%esi
40d565:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d568:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d56b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40d56e:	50                   	push   %eax
40d56f:	56                   	push   %esi
40d570:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40d573:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40d576:	e8 7b 00 00 00       	call   0x40d5f6
40d57b:	6a 03                	push   $0x3
40d57d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d580:	e8 5f 00 00 00       	call   0x40d5e4
40d585:	84 c0                	test   %al,%al
40d587:	0f 85 26 8e 06 00    	jne    0x4763b3
40d58d:	8b 46 04             	mov    0x4(%esi),%eax
40d590:	8b 08                	mov    (%eax),%ecx
40d592:	e8 fc f9 ff ff       	call   0x40cf93
40d597:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d59a:	8b f2                	mov    %edx,%esi
40d59c:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40d59f:	0f 85 2c 8e 06 00    	jne    0x4763d1
40d5a5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d5a8:	e8 73 56 00 00       	call   0x412c20
40d5ad:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d5b0:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40d5b3:	0f 85 35 8e 06 00    	jne    0x4763ee
40d5b9:	56                   	push   %esi
40d5ba:	50                   	push   %eax
40d5bb:	8b d7                	mov    %edi,%edx
40d5bd:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40d5c0:	e8 c2 f8 ff ff       	call   0x40ce87
40d5c5:	59                   	pop    %ecx
40d5c6:	59                   	pop    %ecx
40d5c7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d5ca:	8d 45 98             	lea    -0x68(%ebp),%eax
40d5cd:	50                   	push   %eax
40d5ce:	e8 e6 f7 ff ff       	call   0x40cdb9
40d5d3:	5f                   	pop    %edi
40d5d4:	5e                   	pop    %esi
40d5d5:	33 c0                	xor    %eax,%eax
40d5d7:	5b                   	pop    %ebx
40d5d8:	c9                   	leave
40d5d9:	c2 08 00             	ret    $0x8
40d5dc:	6a 10                	push   $0x10
40d5de:	5f                   	pop    %edi
40d5df:	e9 4d ff ff ff       	jmp    0x40d531
40d5e4:	55                   	push   %ebp
40d5e5:	8b ec                	mov    %esp,%ebp
40d5e7:	8b 49 0c             	mov    0xc(%ecx),%ecx
40d5ea:	33 c0                	xor    %eax,%eax
40d5ec:	3b 4d 08             	cmp    0x8(%ebp),%ecx
40d5ef:	0f 94 c0             	sete   %al
40d5f2:	5d                   	pop    %ebp
40d5f3:	c2 04 00             	ret    $0x4
40d5f6:	55                   	push   %ebp
40d5f7:	8b ec                	mov    %esp,%ebp
40d5f9:	51                   	push   %ecx
40d5fa:	51                   	push   %ecx
40d5fb:	56                   	push   %esi
40d5fc:	8b 75 08             	mov    0x8(%ebp),%esi
40d5ff:	57                   	push   %edi
40d600:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
40d604:	8b f9                	mov    %ecx,%edi
40d606:	76 20                	jbe    0x40d628
40d608:	8b 46 04             	mov    0x4(%esi),%eax
40d60b:	8b 48 04             	mov    0x4(%eax),%ecx
40d60e:	e8 73 fc ff ff       	call   0x40d286
40d613:	48                   	dec    %eax
40d614:	0f 84 8a 8e 06 00    	je     0x4764a4
40d61a:	48                   	dec    %eax
40d61b:	0f 84 83 8e 06 00    	je     0x4764a4
40d621:	48                   	dec    %eax
40d622:	0f 84 54 8e 06 00    	je     0x47647c
40d628:	8b 46 04             	mov    0x4(%esi),%eax
40d62b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d62e:	ff 30                	push   (%eax)
40d630:	e8 79 06 00 00       	call   0x40dcae
40d635:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d638:	e8 2c fe ff ff       	call   0x40d469
40d63d:	5f                   	pop    %edi
40d63e:	33 c0                	xor    %eax,%eax
40d640:	5e                   	pop    %esi
40d641:	c9                   	leave
40d642:	c2 08 00             	ret    $0x8
40d645:	55                   	push   %ebp
40d646:	8b ec                	mov    %esp,%ebp
40d648:	56                   	push   %esi
40d649:	33 f6                	xor    %esi,%esi
40d64b:	80 3d fc 20 4c 00 00 	cmpb   $0x0,0x4c20fc
40d652:	75 46                	jne    0x40d69a
40d654:	8b 45 14             	mov    0x14(%ebp),%eax
40d657:	2b c6                	sub    %esi,%eax
40d659:	74 67                	je     0x40d6c2
40d65b:	48                   	dec    %eax
40d65c:	75 4d                	jne    0x40d6ab
40d65e:	39 35 f0 20 4c 00    	cmp    %esi,0x4c20f0
40d664:	74 48                	je     0x40d6ae
40d666:	57                   	push   %edi
40d667:	38 05 f9 20 4c 00    	cmp    %al,0x4c20f9
40d66d:	75 6c                	jne    0x40d6db
40d66f:	8b 3d f4 20 4c 00    	mov    0x4c20f4,%edi
40d675:	57                   	push   %edi
40d676:	ff 75 08             	push   0x8(%ebp)
40d679:	e8 22 03 00 00       	call   0x40d9a0
40d67e:	84 c0                	test   %al,%al
40d680:	74 63                	je     0x40d6e5
40d682:	8b 17                	mov    (%edi),%edx
40d684:	5f                   	pop    %edi
40d685:	85 d2                	test   %edx,%edx
40d687:	74 11                	je     0x40d69a
40d689:	8b 4a 10             	mov    0x10(%edx),%ecx
40d68c:	8b 45 10             	mov    0x10(%ebp),%eax
40d68f:	8b 72 14             	mov    0x14(%edx),%esi
40d692:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
40d698:	89 08                	mov    %ecx,(%eax)
40d69a:	8b 45 0c             	mov    0xc(%ebp),%eax
40d69d:	89 30                	mov    %esi,(%eax)
40d69f:	33 c0                	xor    %eax,%eax
40d6a1:	85 f6                	test   %esi,%esi
40d6a3:	0f 95 c0             	setne  %al
40d6a6:	5e                   	pop    %esi
40d6a7:	5d                   	pop    %ebp
40d6a8:	c2 10 00             	ret    $0x10
40d6ab:	48                   	dec    %eax
40d6ac:	75 21                	jne    0x40d6cf
40d6ae:	b9 e0 20 4c 00       	mov    $0x4c20e0,%ecx
40d6b3:	ff 75 10             	push   0x10(%ebp)
40d6b6:	ff 75 08             	push   0x8(%ebp)
40d6b9:	e8 22 06 01 00       	call   0x41dce0
40d6be:	8b f0                	mov    %eax,%esi
40d6c0:	eb d8                	jmp    0x40d69a
40d6c2:	39 35 f0 20 4c 00    	cmp    %esi,0x4c20f0
40d6c8:	74 e4                	je     0x40d6ae
40d6ca:	e9 59 6c 06 00       	jmp    0x474328
40d6cf:	83 e8 0e             	sub    $0xe,%eax
40d6d2:	75 c6                	jne    0x40d69a
40d6d4:	b9 e8 20 4c 00       	mov    $0x4c20e8,%ecx
40d6d9:	eb d8                	jmp    0x40d6b3
40d6db:	a1 f4 20 4c 00       	mov    0x4c20f4,%eax
40d6e0:	8b 78 08             	mov    0x8(%eax),%edi
40d6e3:	eb 90                	jmp    0x40d675
40d6e5:	8b d6                	mov    %esi,%edx
40d6e7:	eb 9b                	jmp    0x40d684
40d6e9:	55                   	push   %ebp
40d6ea:	8b ec                	mov    %esp,%ebp
40d6ec:	8b 45 14             	mov    0x14(%ebp),%eax
40d6ef:	83 e8 00             	sub    $0x0,%eax
40d6f2:	74 2d                	je     0x40d721
40d6f4:	48                   	dec    %eax
40d6f5:	75 43                	jne    0x40d73a
40d6f7:	39 05 f0 20 4c 00    	cmp    %eax,0x4c20f0
40d6fd:	74 42                	je     0x40d741
40d6ff:	38 05 f9 20 4c 00    	cmp    %al,0x4c20f9
40d705:	75 45                	jne    0x40d74c
40d707:	8b 0d f4 20 4c 00    	mov    0x4c20f4,%ecx
40d70d:	ff 75 10             	push   0x10(%ebp)
40d710:	ff 75 0c             	push   0xc(%ebp)
40d713:	ff 75 08             	push   0x8(%ebp)
40d716:	e8 49 00 00 00       	call   0x40d764
40d71b:	b0 01                	mov    $0x1,%al
40d71d:	5d                   	pop    %ebp
40d71e:	c2 10 00             	ret    $0x10
40d721:	83 3d f0 20 4c 00 00 	cmpl   $0x0,0x4c20f0
40d728:	ff 75 10             	push   0x10(%ebp)
40d72b:	ff 75 0c             	push   0xc(%ebp)
40d72e:	ff 75 08             	push   0x8(%ebp)
40d731:	75 23                	jne    0x40d756
40d733:	b9 e0 20 4c 00       	mov    $0x4c20e0,%ecx
40d738:	eb dc                	jmp    0x40d716
40d73a:	48                   	dec    %eax
40d73b:	0f 85 70 6b 06 00    	jne    0x4742b1
40d741:	ff 75 10             	push   0x10(%ebp)
40d744:	ff 75 0c             	push   0xc(%ebp)
40d747:	ff 75 08             	push   0x8(%ebp)
40d74a:	eb e7                	jmp    0x40d733
40d74c:	a1 f4 20 4c 00       	mov    0x4c20f4,%eax
40d751:	8b 48 08             	mov    0x8(%eax),%ecx
40d754:	eb b7                	jmp    0x40d70d
40d756:	b9 f0 20 4c 00       	mov    $0x4c20f0,%ecx
40d75b:	e8 1f aa 03 00       	call   0x44817f
40d760:	8b c8                	mov    %eax,%ecx
40d762:	eb b2                	jmp    0x40d716
40d764:	55                   	push   %ebp
40d765:	8b ec                	mov    %esp,%ebp
40d767:	53                   	push   %ebx
40d768:	8b d9                	mov    %ecx,%ebx
40d76a:	53                   	push   %ebx
40d76b:	ff 75 08             	push   0x8(%ebp)
40d76e:	e8 2d 02 00 00       	call   0x40d9a0
40d773:	84 c0                	test   %al,%al
40d775:	75 74                	jne    0x40d7eb
40d777:	33 c9                	xor    %ecx,%ecx
40d779:	85 c9                	test   %ecx,%ecx
40d77b:	0f 85 0f 6d 06 00    	jne    0x474490
40d781:	56                   	push   %esi
40d782:	57                   	push   %edi
40d783:	8b 7d 10             	mov    0x10(%ebp),%edi
40d786:	6a 20                	push   $0x20
40d788:	81 e7 00 ff 00 00    	and    $0xff00,%edi
40d78e:	e8 57 1d 01 00       	call   0x41f4ea
40d793:	8b f0                	mov    %eax,%esi
40d795:	59                   	pop    %ecx
40d796:	85 f6                	test   %esi,%esi
40d798:	74 55                	je     0x40d7ef
40d79a:	8b ce                	mov    %esi,%ecx
40d79c:	e8 56 00 00 00       	call   0x40d7f7
40d7a1:	3b 75 08             	cmp    0x8(%ebp),%esi
40d7a4:	74 0a                	je     0x40d7b0
40d7a6:	ff 75 08             	push   0x8(%ebp)
40d7a9:	8b ce                	mov    %esi,%ecx
40d7ab:	e8 97 05 00 00       	call   0x40dd47
40d7b0:	6a 10                	push   $0x10
40d7b2:	89 7e 10             	mov    %edi,0x10(%esi)
40d7b5:	e8 30 1d 01 00       	call   0x41f4ea
40d7ba:	8b f8                	mov    %eax,%edi
40d7bc:	59                   	pop    %ecx
40d7bd:	85 ff                	test   %edi,%edi
40d7bf:	74 32                	je     0x40d7f3
40d7c1:	ff 75 0c             	push   0xc(%ebp)
40d7c4:	83 67 08 00          	andl   $0x0,0x8(%edi)
40d7c8:	8b cf                	mov    %edi,%ecx
40d7ca:	e8 51 3f 00 00       	call   0x411720
40d7cf:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
40d7d3:	83 66 18 00          	andl   $0x0,0x18(%esi)
40d7d7:	89 7e 14             	mov    %edi,0x14(%esi)
40d7da:	ff 33                	push   (%ebx)
40d7dc:	56                   	push   %esi
40d7dd:	e8 de 00 00 00       	call   0x40d8c0
40d7e2:	5f                   	pop    %edi
40d7e3:	89 03                	mov    %eax,(%ebx)
40d7e5:	5e                   	pop    %esi
40d7e6:	5b                   	pop    %ebx
40d7e7:	5d                   	pop    %ebp
40d7e8:	c2 0c 00             	ret    $0xc
40d7eb:	8b 0b                	mov    (%ebx),%ecx
40d7ed:	eb 8a                	jmp    0x40d779
40d7ef:	33 f6                	xor    %esi,%esi
40d7f1:	eb ae                	jmp    0x40d7a1
40d7f3:	33 ff                	xor    %edi,%edi
40d7f5:	eb d8                	jmp    0x40d7cf
40d7f7:	56                   	push   %esi
40d7f8:	6a 08                	push   $0x8
40d7fa:	8b f1                	mov    %ecx,%esi
40d7fc:	58                   	pop    %eax
40d7fd:	83 66 04 00          	andl   $0x0,0x4(%esi)
40d801:	33 c9                	xor    %ecx,%ecx
40d803:	6a 02                	push   $0x2
40d805:	5a                   	pop    %edx
40d806:	89 46 08             	mov    %eax,0x8(%esi)
40d809:	f7 e2                	mul    %edx
40d80b:	0f 90 c1             	seto   %cl
40d80e:	f7 d9                	neg    %ecx
40d810:	0b c8                	or     %eax,%ecx
40d812:	51                   	push   %ecx
40d813:	e8 d2 1c 01 00       	call   0x41f4ea
40d818:	33 c9                	xor    %ecx,%ecx
40d81a:	89 06                	mov    %eax,(%esi)
40d81c:	6a 04                	push   $0x4
40d81e:	66 89 08             	mov    %cx,(%eax)
40d821:	e8 c4 1c 01 00       	call   0x41f4ea
40d826:	59                   	pop    %ecx
40d827:	59                   	pop    %ecx
40d828:	85 c0                	test   %eax,%eax
40d82a:	74 0d                	je     0x40d839
40d82c:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40d832:	89 46 0c             	mov    %eax,0xc(%esi)
40d835:	8b c6                	mov    %esi,%eax
40d837:	5e                   	pop    %esi
40d838:	c3                   	ret
40d839:	33 c0                	xor    %eax,%eax
40d83b:	eb f5                	jmp    0x40d832
40d83d:	55                   	push   %ebp
40d83e:	8b ec                	mov    %esp,%ebp
40d840:	8b 45 10             	mov    0x10(%ebp),%eax
40d843:	53                   	push   %ebx
40d844:	33 db                	xor    %ebx,%ebx
40d846:	2b c3                	sub    %ebx,%eax
40d848:	0f 84 aa 6a 06 00    	je     0x4742f8
40d84e:	48                   	dec    %eax
40d84f:	0f 85 7e 6a 06 00    	jne    0x4742d3
40d855:	39 1d f0 20 4c 00    	cmp    %ebx,0x4c20f0
40d85b:	74 54                	je     0x40d8b1
40d85d:	56                   	push   %esi
40d85e:	38 1d f9 20 4c 00    	cmp    %bl,0x4c20f9
40d864:	75 39                	jne    0x40d89f
40d866:	8b 35 f4 20 4c 00    	mov    0x4c20f4,%esi
40d86c:	56                   	push   %esi
40d86d:	ff 75 08             	push   0x8(%ebp)
40d870:	e8 2b 01 00 00       	call   0x40d9a0
40d875:	84 c0                	test   %al,%al
40d877:	74 30                	je     0x40d8a9
40d879:	8b 16                	mov    (%esi),%edx
40d87b:	5e                   	pop    %esi
40d87c:	85 d2                	test   %edx,%edx
40d87e:	74 2d                	je     0x40d8ad
40d880:	8b 4a 10             	mov    0x10(%edx),%ecx
40d883:	8b 45 0c             	mov    0xc(%ebp),%eax
40d886:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
40d88c:	89 08                	mov    %ecx,(%eax)
40d88e:	8b 42 14             	mov    0x14(%edx),%eax