406816:	8d 51 02             	lea    0x2(%ecx),%edx
406819:	8b fa                	mov    %edx,%edi
40681b:	0f b7 07             	movzwl (%edi),%eax
40681e:	66 3b c6             	cmp    %si,%ax
406821:	74 15                	je     0x406838
406823:	8b f0                	mov    %eax,%esi
406825:	66 85 f6             	test   %si,%si
406828:	74 0e                	je     0x406838
40682a:	83 c7 02             	add    $0x2,%edi
40682d:	0f b7 07             	movzwl (%edi),%eax
406830:	8b f0                	mov    %eax,%esi
406832:	66 3b 45 80          	cmp    -0x80(%ebp),%ax
406836:	75 ed                	jne    0x406825
406838:	3b fa                	cmp    %edx,%edi
40683a:	0f 84 f0 00 00 00    	je     0x406930
406840:	8b c7                	mov    %edi,%eax
406842:	2b c1                	sub    %ecx,%eax
406844:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406847:	83 e8 02             	sub    $0x2,%eax
40684a:	d1 f8                	sar    $1,%eax
40684c:	50                   	push   %eax
40684d:	52                   	push   %edx
40684e:	e8 cd fb ff ff       	call   0x406420
406853:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
406857:	8b 73 08             	mov    0x8(%ebx),%esi
40685a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40685d:	73 03                	jae    0x406862
40685f:	8d 45 d8             	lea    -0x28(%ebp),%eax
406862:	6a 00                	push   $0x0
406864:	50                   	push   %eax
406865:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40686b:	8b cb                	mov    %ebx,%ecx
40686d:	50                   	push   %eax
40686e:	e8 14 eb ff ff       	call   0x405387
406873:	39 30                	cmp    %esi,(%eax)
406875:	0f 85 ba 00 00 00    	jne    0x406935
40687b:	6a 3a                	push   $0x3a
40687d:	5e                   	pop    %esi
40687e:	66 39 37             	cmp    %si,(%edi)
406881:	75 10                	jne    0x406893
406883:	8d 47 02             	lea    0x2(%edi),%eax
406886:	b3 01                	mov    $0x1,%bl
406888:	50                   	push   %eax
406889:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
40688c:	e8 10 fc ff ff       	call   0x4064a1
406891:	eb 02                	jmp    0x406895
406893:	32 db                	xor    %bl,%bl
406895:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
406899:	33 c0                	xor    %eax,%eax
40689b:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
4068a2:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
4068a6:	6a ff                	push   $0xffffffff
4068a8:	50                   	push   %eax
4068a9:	8d 45 8c             	lea    -0x74(%ebp),%eax
4068ac:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4068b0:	50                   	push   %eax
4068b1:	8d 4d a8             	lea    -0x58(%ebp),%ecx
4068b4:	88 5d a4             	mov    %bl,-0x5c(%ebp)
4068b7:	e8 5a f9 ff ff       	call   0x406216
4068bc:	8b 5d 88             	mov    -0x78(%ebp),%ebx
4068bf:	8d 45 d8             	lea    -0x28(%ebp),%eax
4068c2:	50                   	push   %eax
4068c3:	8d 4b 08             	lea    0x8(%ebx),%ecx
4068c6:	e8 25 03 00 00       	call   0x406bf0
4068cb:	8a 4d a4             	mov    -0x5c(%ebp),%cl
4068ce:	88 08                	mov    %cl,(%eax)
4068d0:	8d 48 04             	lea    0x4(%eax),%ecx
4068d3:	8d 45 a8             	lea    -0x58(%ebp),%eax
4068d6:	3b c8                	cmp    %eax,%ecx
4068d8:	74 0a                	je     0x4068e4
4068da:	6a ff                	push   $0xffffffff
4068dc:	6a 00                	push   $0x0
4068de:	50                   	push   %eax
4068df:	e8 32 f9 ff ff       	call   0x406216
4068e4:	6a 00                	push   $0x0
4068e6:	6a 01                	push   $0x1
4068e8:	8d 4d a8             	lea    -0x58(%ebp),%ecx
4068eb:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4068ef:	e8 fc fb ff ff       	call   0x4064f0
4068f4:	8b 45 84             	mov    -0x7c(%ebp),%eax
4068f7:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
4068fd:	40                   	inc    %eax
4068fe:	6a 18                	push   $0x18
406900:	5f                   	pop    %edi
406901:	6a 07                	push   $0x7
406903:	89 45 84             	mov    %eax,-0x7c(%ebp)
406906:	5a                   	pop    %edx
406907:	3b 45 08             	cmp    0x8(%ebp),%eax
40690a:	0f 8c 4e fe ff ff    	jl     0x40675e
406910:	6a 00                	push   $0x0
406912:	6a 01                	push   $0x1
406914:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
406917:	e8 d4 fb ff ff       	call   0x4064f0
40691c:	6a 00                	push   $0x0
40691e:	6a 01                	push   $0x1
406920:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406923:	e8 c8 fb ff ff       	call   0x4064f0
406928:	e8 03 7d 00 00       	call   0x40e630
40692d:	c2 08 00             	ret    $0x8
406930:	51                   	push   %ecx
406931:	6a 17                	push   $0x17
406933:	eb 0d                	jmp    0x406942
406935:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406938:	e8 9e fb ff ff       	call   0x4064db
40693d:	50                   	push   %eax
40693e:	6a 18                	push   $0x18
406940:	58                   	pop    %eax
406941:	50                   	push   %eax
406942:	6a 57                	push   $0x57
406944:	e8 cc 0c 00 00       	call   0x407615
406949:	cc                   	int3
40694a:	8b ff                	mov    %edi,%edi
40694c:	55                   	push   %ebp
40694d:	8b ec                	mov    %esp,%ebp
40694f:	51                   	push   %ecx
406950:	56                   	push   %esi
406951:	ff 75 0c             	push   0xc(%ebp)
406954:	8d 45 fc             	lea    -0x4(%ebp),%eax
406957:	8b f1                	mov    %ecx,%esi
406959:	ff 75 08             	push   0x8(%ebp)
40695c:	50                   	push   %eax
40695d:	e8 25 ea ff ff       	call   0x405387
406962:	8b 45 fc             	mov    -0x4(%ebp),%eax
406965:	3b 46 08             	cmp    0x8(%esi),%eax
406968:	5e                   	pop    %esi
406969:	75 0b                	jne    0x406976
40696b:	8b 45 14             	mov    0x14(%ebp),%eax
40696e:	c6 00 00             	movb   $0x0,(%eax)
406971:	8b 45 10             	mov    0x10(%ebp),%eax
406974:	eb 17                	jmp    0x40698d
406976:	80 78 28 00          	cmpb   $0x0,0x28(%eax)
40697a:	74 15                	je     0x406991
40697c:	8b 4d 14             	mov    0x14(%ebp),%ecx
40697f:	83 c0 2c             	add    $0x2c,%eax
406982:	c6 01 01             	movb   $0x1,(%ecx)
406985:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
406989:	72 02                	jb     0x40698d
40698b:	8b 00                	mov    (%eax),%eax
40698d:	c9                   	leave
40698e:	c2 10 00             	ret    $0x10
406991:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406994:	e8 4c f5 ff ff       	call   0x405ee5
406999:	8b c8                	mov    %eax,%ecx
40699b:	e8 3b fb ff ff       	call   0x4064db
4069a0:	50                   	push   %eax
4069a1:	6a 1a                	push   $0x1a
4069a3:	6a 57                	push   $0x57
4069a5:	e8 6b 0c 00 00       	call   0x407615
4069aa:	cc                   	int3
4069ab:	8b ff                	mov    %edi,%edi
4069ad:	55                   	push   %ebp
4069ae:	8b ec                	mov    %esp,%ebp
4069b0:	51                   	push   %ecx
4069b1:	56                   	push   %esi
4069b2:	ff 75 0c             	push   0xc(%ebp)
4069b5:	8d 45 fc             	lea    -0x4(%ebp),%eax
4069b8:	8b f1                	mov    %ecx,%esi
4069ba:	ff 75 08             	push   0x8(%ebp)
4069bd:	50                   	push   %eax
4069be:	e8 c4 e9 ff ff       	call   0x405387
4069c3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4069c6:	3b 46 08             	cmp    0x8(%esi),%eax
4069c9:	75 0b                	jne    0x4069d6
4069cb:	8b 45 14             	mov    0x14(%ebp),%eax
4069ce:	c6 00 00             	movb   $0x0,(%eax)
4069d1:	8a 45 10             	mov    0x10(%ebp),%al
4069d4:	eb 5b                	jmp    0x406a31
4069d6:	80 78 28 00          	cmpb   $0x0,0x28(%eax)
4069da:	74 4d                	je     0x406a29
4069dc:	8d 70 2c             	lea    0x2c(%eax),%esi
4069df:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4069e3:	72 04                	jb     0x4069e9
4069e5:	8b 06                	mov    (%esi),%eax
4069e7:	eb 02                	jmp    0x4069eb
4069e9:	8b c6                	mov    %esi,%eax
4069eb:	6a ff                	push   $0xffffffff
4069ed:	68 80 24 40 00       	push   $0x402480
4069f2:	6a ff                	push   $0xffffffff
4069f4:	50                   	push   %eax
4069f5:	6a 01                	push   $0x1
4069f7:	6a 7f                	push   $0x7f
4069f9:	ff 15 f4 20 41 00    	call   *0x4120f4
4069ff:	83 f8 02             	cmp    $0x2,%eax
406a02:	74 25                	je     0x406a29
406a04:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
406a08:	72 02                	jb     0x406a0c
406a0a:	8b 36                	mov    (%esi),%esi
406a0c:	6a ff                	push   $0xffffffff
406a0e:	68 8c 24 40 00       	push   $0x40248c
406a13:	6a ff                	push   $0xffffffff
406a15:	56                   	push   %esi
406a16:	6a 01                	push   $0x1
406a18:	6a 7f                	push   $0x7f
406a1a:	ff 15 f4 20 41 00    	call   *0x4120f4
406a20:	83 f8 02             	cmp    $0x2,%eax
406a23:	75 11                	jne    0x406a36
406a25:	32 c0                	xor    %al,%al
406a27:	eb 02                	jmp    0x406a2b
406a29:	b0 01                	mov    $0x1,%al
406a2b:	8b 4d 14             	mov    0x14(%ebp),%ecx
406a2e:	c6 01 01             	movb   $0x1,(%ecx)
406a31:	5e                   	pop    %esi
406a32:	c9                   	leave
406a33:	c2 10 00             	ret    $0x10
406a36:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406a39:	e8 a7 f4 ff ff       	call   0x405ee5
406a3e:	8b c8                	mov    %eax,%ecx
406a40:	e8 96 fa ff ff       	call   0x4064db
406a45:	50                   	push   %eax
406a46:	6a 1b                	push   $0x1b
406a48:	6a 57                	push   $0x57
406a4a:	e8 c6 0b 00 00       	call   0x407615
406a4f:	cc                   	int3
406a50:	8b ff                	mov    %edi,%edi
406a52:	55                   	push   %ebp
406a53:	8b ec                	mov    %esp,%ebp
406a55:	51                   	push   %ecx
406a56:	56                   	push   %esi
406a57:	8b 75 08             	mov    0x8(%ebp),%esi
406a5a:	57                   	push   %edi
406a5b:	85 f6                	test   %esi,%esi
406a5d:	78 25                	js     0x406a84
406a5f:	8b 41 14             	mov    0x14(%ecx),%eax
406a62:	2b 41 10             	sub    0x10(%ecx),%eax
406a65:	6a 18                	push   $0x18
406a67:	99                   	cltd
406a68:	5f                   	pop    %edi
406a69:	f7 ff                	idiv   %edi
406a6b:	3b f0                	cmp    %eax,%esi
406a6d:	7d 15                	jge    0x406a84
406a6f:	6b c6 18             	imul   $0x18,%esi,%eax
406a72:	03 41 10             	add    0x10(%ecx),%eax
406a75:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
406a79:	72 02                	jb     0x406a7d
406a7b:	8b 00                	mov    (%eax),%eax
406a7d:	5f                   	pop    %edi
406a7e:	5e                   	pop    %esi
406a7f:	59                   	pop    %ecx
406a80:	5d                   	pop    %ebp
406a81:	c2 04 00             	ret    $0x4
406a84:	6a 1f                	push   $0x1f
406a86:	5a                   	pop    %edx
406a87:	6a 57                	push   $0x57
406a89:	59                   	pop    %ecx
406a8a:	e8 54 0b 00 00       	call   0x4075e3
406a8f:	cc                   	int3
406a90:	8b ff                	mov    %edi,%edi
406a92:	55                   	push   %ebp
406a93:	8b ec                	mov    %esp,%ebp
406a95:	51                   	push   %ecx
406a96:	51                   	push   %ecx
406a97:	57                   	push   %edi
406a98:	8b f9                	mov    %ecx,%edi
406a9a:	8b 4d 08             	mov    0x8(%ebp),%ecx
406a9d:	85 c9                	test   %ecx,%ecx
406a9f:	75 0e                	jne    0x406aaf
406aa1:	39 4f 0c             	cmp    %ecx,0xc(%edi)
406aa4:	0f 87 f2 00 00 00    	ja     0x406b9c
406aaa:	e9 e8 00 00 00       	jmp    0x406b97
406aaf:	8b 47 08             	mov    0x8(%edi),%eax
406ab2:	56                   	push   %esi
406ab3:	8b 30                	mov    (%eax),%esi
406ab5:	89 75 fc             	mov    %esi,-0x4(%ebp)
406ab8:	3b f0                	cmp    %eax,%esi
406aba:	0f 84 d6 00 00 00    	je     0x406b96
406ac0:	53                   	push   %ebx
406ac1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
406ac5:	32 db                	xor    %bl,%bl
406ac7:	83 39 00             	cmpl   $0x0,(%ecx)
406aca:	74 3a                	je     0x406b06
406acc:	8d 46 10             	lea    0x10(%esi),%eax
406acf:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
406ad3:	72 02                	jb     0x406ad7
406ad5:	8b 00                	mov    (%eax),%eax
406ad7:	6a ff                	push   $0xffffffff
406ad9:	50                   	push   %eax
406ada:	6a ff                	push   $0xffffffff
406adc:	ff 31                	push   (%ecx)
406ade:	6a 01                	push   $0x1
406ae0:	6a 7f                	push   $0x7f
406ae2:	ff 15 f4 20 41 00    	call   *0x4120f4
406ae8:	83 f8 02             	cmp    $0x2,%eax
406aeb:	74 17                	je     0x406b04
406aed:	8b 55 f8             	mov    -0x8(%ebp),%edx
406af0:	8b 45 08             	mov    0x8(%ebp),%eax
406af3:	42                   	inc    %edx
406af4:	89 55 f8             	mov    %edx,-0x8(%ebp)
406af7:	8d 0c 90             	lea    (%eax,%edx,4),%ecx
406afa:	83 39 00             	cmpl   $0x0,(%ecx)
406afd:	8d 46 10             	lea    0x10(%esi),%eax
406b00:	75 cd                	jne    0x406acf
406b02:	eb 02                	jmp    0x406b06
406b04:	b3 01                	mov    $0x1,%bl
406b06:	83 c6 10             	add    $0x10,%esi
406b09:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
406b0d:	72 04                	jb     0x406b13
406b0f:	8b 06                	mov    (%esi),%eax
406b11:	eb 02                	jmp    0x406b15
406b13:	8b c6                	mov    %esi,%eax
406b15:	6a ff                	push   $0xffffffff
406b17:	50                   	push   %eax
406b18:	6a ff                	push   $0xffffffff
406b1a:	68 74 24 40 00       	push   $0x402474
406b1f:	6a 01                	push   $0x1
406b21:	6a 7f                	push   $0x7f
406b23:	ff 15 f4 20 41 00    	call   *0x4120f4
406b29:	83 f8 02             	cmp    $0x2,%eax
406b2c:	75 02                	jne    0x406b30
406b2e:	b3 01                	mov    $0x1,%bl
406b30:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
406b34:	72 04                	jb     0x406b3a
406b36:	8b 06                	mov    (%esi),%eax
406b38:	eb 02                	jmp    0x406b3c
406b3a:	8b c6                	mov    %esi,%eax
406b3c:	6a ff                	push   $0xffffffff
406b3e:	50                   	push   %eax
406b3f:	6a ff                	push   $0xffffffff
406b41:	68 60 24 40 00       	push   $0x402460
406b46:	6a 01                	push   $0x1
406b48:	6a 7f                	push   $0x7f
406b4a:	ff 15 f4 20 41 00    	call   *0x4120f4
406b50:	83 f8 02             	cmp    $0x2,%eax
406b53:	75 02                	jne    0x406b57
406b55:	b3 01                	mov    $0x1,%bl
406b57:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
406b5b:	72 02                	jb     0x406b5f
406b5d:	8b 36                	mov    (%esi),%esi
406b5f:	6a ff                	push   $0xffffffff
406b61:	56                   	push   %esi
406b62:	6a ff                	push   $0xffffffff
406b64:	68 64 24 40 00       	push   $0x402464
406b69:	6a 01                	push   $0x1
406b6b:	6a 7f                	push   $0x7f
406b6d:	ff 15 f4 20 41 00    	call   *0x4120f4
406b73:	83 f8 02             	cmp    $0x2,%eax
406b76:	75 02                	jne    0x406b7a
406b78:	b3 01                	mov    $0x1,%bl
406b7a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406b7d:	84 db                	test   %bl,%bl
406b7f:	74 29                	je     0x406baa
406b81:	e8 0d f4 ff ff       	call   0x405f93
406b86:	8b 75 fc             	mov    -0x4(%ebp),%esi
406b89:	8b 4d 08             	mov    0x8(%ebp),%ecx
406b8c:	3b 77 08             	cmp    0x8(%edi),%esi
406b8f:	0f 85 2c ff ff ff    	jne    0x406ac1
406b95:	5b                   	pop    %ebx
406b96:	5e                   	pop    %esi
406b97:	5f                   	pop    %edi
406b98:	c9                   	leave
406b99:	c2 04 00             	ret    $0x4