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
40d891:	85 c0                	test   %eax,%eax
40d893:	74 03                	je     0x40d898
40d895:	33 db                	xor    %ebx,%ebx
40d897:	43                   	inc    %ebx
40d898:	8a c3                	mov    %bl,%al
40d89a:	5b                   	pop    %ebx
40d89b:	5d                   	pop    %ebp
40d89c:	c2 0c 00             	ret    $0xc
40d89f:	a1 f4 20 4c 00       	mov    0x4c20f4,%eax
40d8a4:	8b 70 08             	mov    0x8(%eax),%esi
40d8a7:	eb c3                	jmp    0x40d86c
40d8a9:	8b d3                	mov    %ebx,%edx
40d8ab:	eb ce                	jmp    0x40d87b
40d8ad:	8b c3                	mov    %ebx,%eax
40d8af:	eb e0                	jmp    0x40d891
40d8b1:	b9 e0 20 4c 00       	mov    $0x4c20e0,%ecx
40d8b6:	e9 2d 6a 06 00       	jmp    0x4742e8
40d8bb:	cc                   	int3
40d8bc:	cc                   	int3
40d8bd:	cc                   	int3
40d8be:	cc                   	int3
40d8bf:	cc                   	int3
40d8c0:	55                   	push   %ebp
40d8c1:	8b ec                	mov    %esp,%ebp
40d8c3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40d8c7:	74 77                	je     0x40d940
40d8c9:	53                   	push   %ebx
40d8ca:	56                   	push   %esi
40d8cb:	57                   	push   %edi
40d8cc:	8b 7d 08             	mov    0x8(%ebp),%edi
40d8cf:	8d 45 0c             	lea    0xc(%ebp),%eax
40d8d2:	50                   	push   %eax
40d8d3:	57                   	push   %edi
40d8d4:	e8 c7 00 00 00       	call   0x40d9a0
40d8d9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d8dc:	8b 77 04             	mov    0x4(%edi),%esi
40d8df:	8b 43 04             	mov    0x4(%ebx),%eax
40d8e2:	85 f6                	test   %esi,%esi
40d8e4:	0f 84 91 00 00 00    	je     0x40d97b
40d8ea:	85 c0                	test   %eax,%eax
40d8ec:	0f 84 8d 00 00 00    	je     0x40d97f
40d8f2:	8b 13                	mov    (%ebx),%edx
40d8f4:	3b f0                	cmp    %eax,%esi
40d8f6:	72 76                	jb     0x40d96e
40d8f8:	8b 07                	mov    (%edi),%eax
40d8fa:	85 f6                	test   %esi,%esi
40d8fc:	74 13                	je     0x40d911
40d8fe:	8b ff                	mov    %edi,%edi
40d900:	66 8b 08             	mov    (%eax),%cx
40d903:	66 3b 0a             	cmp    (%edx),%cx
40d906:	75 0d                	jne    0x40d915
40d908:	83 c0 02             	add    $0x2,%eax
40d90b:	83 c2 02             	add    $0x2,%edx
40d90e:	4e                   	dec    %esi
40d90f:	75 ef                	jne    0x40d900
40d911:	33 c0                	xor    %eax,%eax
40d913:	eb 0c                	jmp    0x40d921
40d915:	0f b7 00             	movzwl (%eax),%eax
40d918:	66 3b 02             	cmp    (%edx),%ax
40d91b:	1b c0                	sbb    %eax,%eax
40d91d:	83 e0 fe             	and    $0xfffffffe,%eax
40d920:	40                   	inc    %eax
40d921:	85 c0                	test   %eax,%eax
40d923:	78 30                	js     0x40d955
40d925:	7e 61                	jle    0x40d988
40d927:	8b 43 1c             	mov    0x1c(%ebx),%eax
40d92a:	89 47 1c             	mov    %eax,0x1c(%edi)
40d92d:	89 5f 18             	mov    %ebx,0x18(%edi)
40d930:	8b c7                	mov    %edi,%eax
40d932:	5f                   	pop    %edi
40d933:	5e                   	pop    %esi
40d934:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
40d93b:	5b                   	pop    %ebx
40d93c:	5d                   	pop    %ebp
40d93d:	c2 08 00             	ret    $0x8
40d940:	8b 45 08             	mov    0x8(%ebp),%eax
40d943:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
40d94a:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)
40d951:	5d                   	pop    %ebp
40d952:	c2 08 00             	ret    $0x8
40d955:	8b 4b 18             	mov    0x18(%ebx),%ecx
40d958:	89 5f 1c             	mov    %ebx,0x1c(%edi)
40d95b:	89 4f 18             	mov    %ecx,0x18(%edi)
40d95e:	8b c7                	mov    %edi,%eax
40d960:	5f                   	pop    %edi
40d961:	5e                   	pop    %esi
40d962:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
40d969:	5b                   	pop    %ebx
40d96a:	5d                   	pop    %ebp
40d96b:	c2 08 00             	ret    $0x8
40d96e:	8b 0f                	mov    (%edi),%ecx
40d970:	50                   	push   %eax
40d971:	e8 27 e5 ff ff       	call   0x40be9d
40d976:	83 c4 04             	add    $0x4,%esp
40d979:	eb a6                	jmp    0x40d921
40d97b:	85 c0                	test   %eax,%eax
40d97d:	75 d6                	jne    0x40d955
40d97f:	85 f6                	test   %esi,%esi
40d981:	75 a4                	jne    0x40d927
40d983:	e9 6a ff ff ff       	jmp    0x40d8f2
40d988:	5f                   	pop    %edi
40d989:	5e                   	pop    %esi
40d98a:	8b c3                	mov    %ebx,%eax
40d98c:	5b                   	pop    %ebx
40d98d:	5d                   	pop    %ebp
40d98e:	c2 08 00             	ret    $0x8
40d991:	cc                   	int3
40d992:	cc                   	int3
40d993:	cc                   	int3
40d994:	cc                   	int3
40d995:	cc                   	int3
40d996:	cc                   	int3
40d997:	cc                   	int3
40d998:	cc                   	int3
40d999:	cc                   	int3
40d99a:	cc                   	int3
40d99b:	cc                   	int3
40d99c:	cc                   	int3
40d99d:	cc                   	int3
40d99e:	cc                   	int3
40d99f:	cc                   	int3
40d9a0:	55                   	push   %ebp
40d9a1:	8b ec                	mov    %esp,%ebp
40d9a3:	83 ec 10             	sub    $0x10,%esp
40d9a6:	56                   	push   %esi
40d9a7:	8b 75 0c             	mov    0xc(%ebp),%esi
40d9aa:	83 3e 00             	cmpl   $0x0,(%esi)
40d9ad:	0f 84 cc 01 00 00    	je     0x40db7f
40d9b3:	a1 f0 21 4c 00       	mov    0x4c21f0,%eax
40d9b8:	c6 45 0f 00          	movb   $0x0,0xf(%ebp)
40d9bc:	a8 01                	test   $0x1,%al
40d9be:	0f 84 0b 02 00 00    	je     0x40dbcf
40d9c4:	53                   	push   %ebx
40d9c5:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
40d9cc:	00 00 00
40d9cf:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
40d9d6:	00 00 00
40d9d9:	c7 45 f4 f4 21 4c 00 	movl   $0x4c21f4,-0xc(%ebp)
40d9e0:	c7 45 f8 f4 21 4c 00 	movl   $0x4c21f4,-0x8(%ebp)
40d9e7:	57                   	push   %edi
40d9e8:	8b 45 08             	mov    0x8(%ebp),%eax
40d9eb:	8b 16                	mov    (%esi),%edx
40d9ed:	8b 58 04             	mov    0x4(%eax),%ebx
40d9f0:	8b 4a 04             	mov    0x4(%edx),%ecx
40d9f3:	85 db                	test   %ebx,%ebx
40d9f5:	0f 84 80 6a 06 00    	je     0x47447b
40d9fb:	85 c9                	test   %ecx,%ecx
40d9fd:	0f 84 80 6a 06 00    	je     0x474483
40da03:	3b d9                	cmp    %ecx,%ebx
40da05:	0f 82 30 01 00 00    	jb     0x40db3b
40da0b:	8b 0a                	mov    (%edx),%ecx
40da0d:	8b 10                	mov    (%eax),%edx
40da0f:	8b fb                	mov    %ebx,%edi
40da11:	85 ff                	test   %edi,%edi
40da13:	74 11                	je     0x40da26
40da15:	66 8b 02             	mov    (%edx),%ax
40da18:	66 3b 01             	cmp    (%ecx),%ax
40da1b:	75 0d                	jne    0x40da2a
40da1d:	83 c2 02             	add    $0x2,%edx
40da20:	83 c1 02             	add    $0x2,%ecx
40da23:	4f                   	dec    %edi
40da24:	75 ef                	jne    0x40da15
40da26:	33 c0                	xor    %eax,%eax
40da28:	eb 0c                	jmp    0x40da36
40da2a:	0f b7 02             	movzwl (%edx),%eax
40da2d:	66 3b 01             	cmp    (%ecx),%ax
40da30:	1b c0                	sbb    %eax,%eax
40da32:	83 e0 fe             	and    $0xfffffffe,%eax
40da35:	40                   	inc    %eax
40da36:	8b 16                	mov    (%esi),%edx
40da38:	85 c0                	test   %eax,%eax
40da3a:	78 4e                	js     0x40da8a
40da3c:	7e 13                	jle    0x40da51
40da3e:	8b 45 08             	mov    0x8(%ebp),%eax
40da41:	8b 52 1c             	mov    0x1c(%edx),%edx