40691b:	04 30                	add    $0x30,%al
40691d:	88 06                	mov    %al,(%esi)
40691f:	c6 46 01 00          	movb   $0x0,0x1(%esi)
406923:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
406927:	74 07                	je     0x406930
406929:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40692c:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
406930:	33 c0                	xor    %eax,%eax
406932:	5b                   	pop    %ebx
406933:	5f                   	pop    %edi
406934:	5e                   	pop    %esi
406935:	c9                   	leave
406936:	c3                   	ret
406937:	8b ff                	mov    %edi,%edi
406939:	55                   	push   %ebp
40693a:	8b ec                	mov    %esp,%ebp
40693c:	83 ec 10             	sub    $0x10,%esp
40693f:	53                   	push   %ebx
406940:	56                   	push   %esi
406941:	57                   	push   %edi
406942:	ff 75 14             	push   0x14(%ebp)
406945:	8b d8                	mov    %eax,%ebx
406947:	8b 73 04             	mov    0x4(%ebx),%esi
40694a:	8b f9                	mov    %ecx,%edi
40694c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40694f:	4e                   	dec    %esi
406950:	e8 79 dc ff ff       	call   0x4045ce
406955:	85 ff                	test   %edi,%edi
406957:	75 2d                	jne    0x406986
406959:	e8 ee c4 ff ff       	call   0x402e4c
40695e:	6a 16                	push   $0x16
406960:	5e                   	pop    %esi
406961:	89 30                	mov    %esi,(%eax)
406963:	33 c0                	xor    %eax,%eax
406965:	50                   	push   %eax
406966:	50                   	push   %eax
406967:	50                   	push   %eax
406968:	50                   	push   %eax
406969:	50                   	push   %eax
40696a:	e8 d2 d2 ff ff       	call   0x403c41
40696f:	83 c4 14             	add    $0x14,%esp
406972:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
406976:	74 07                	je     0x40697f
406978:	8b 45 f8             	mov    -0x8(%ebp),%eax
40697b:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40697f:	8b c6                	mov    %esi,%eax
406981:	e9 a3 00 00 00       	jmp    0x406a29
406986:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40698a:	76 cd                	jbe    0x406959
40698c:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
406990:	74 18                	je     0x4069aa
406992:	3b 75 0c             	cmp    0xc(%ebp),%esi
406995:	75 13                	jne    0x4069aa
406997:	33 c0                	xor    %eax,%eax
406999:	83 3b 2d             	cmpl   $0x2d,(%ebx)
40699c:	0f 94 c0             	sete   %al
40699f:	03 c6                	add    %esi,%eax
4069a1:	03 c7                	add    %edi,%eax
4069a3:	c6 00 30             	movb   $0x30,(%eax)
4069a6:	c6 40 01 00          	movb   $0x0,0x1(%eax)
4069aa:	83 3b 2d             	cmpl   $0x2d,(%ebx)
4069ad:	8b f7                	mov    %edi,%esi
4069af:	75 06                	jne    0x4069b7
4069b1:	c6 07 2d             	movb   $0x2d,(%edi)
4069b4:	8d 77 01             	lea    0x1(%edi),%esi
4069b7:	8b 43 04             	mov    0x4(%ebx),%eax
4069ba:	33 ff                	xor    %edi,%edi
4069bc:	47                   	inc    %edi
4069bd:	85 c0                	test   %eax,%eax
4069bf:	7f 0d                	jg     0x4069ce
4069c1:	8b c6                	mov    %esi,%eax
4069c3:	e8 58 f9 ff ff       	call   0x406320
4069c8:	c6 06 30             	movb   $0x30,(%esi)
4069cb:	46                   	inc    %esi
4069cc:	eb 02                	jmp    0x4069d0
4069ce:	03 f0                	add    %eax,%esi
4069d0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4069d4:	7e 44                	jle    0x406a1a
4069d6:	8b c6                	mov    %esi,%eax
4069d8:	e8 43 f9 ff ff       	call   0x406320
4069dd:	8b 45 f0             	mov    -0x10(%ebp),%eax
4069e0:	8b 80 bc 00 00 00    	mov    0xbc(%eax),%eax
4069e6:	8b 00                	mov    (%eax),%eax
4069e8:	8a 00                	mov    (%eax),%al
4069ea:	88 06                	mov    %al,(%esi)
4069ec:	8b 5b 04             	mov    0x4(%ebx),%ebx
4069ef:	46                   	inc    %esi
4069f0:	85 db                	test   %ebx,%ebx
4069f2:	7d 26                	jge    0x406a1a
4069f4:	f7 db                	neg    %ebx
4069f6:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4069fa:	75 05                	jne    0x406a01
4069fc:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4069ff:	7c 03                	jl     0x406a04
406a01:	89 5d 0c             	mov    %ebx,0xc(%ebp)
406a04:	8b 7d 0c             	mov    0xc(%ebp),%edi
406a07:	8b c6                	mov    %esi,%eax
406a09:	e8 12 f9 ff ff       	call   0x406320
406a0e:	57                   	push   %edi
406a0f:	6a 30                	push   $0x30
406a11:	56                   	push   %esi
406a12:	e8 29 04 00 00       	call   0x406e40
406a17:	83 c4 0c             	add    $0xc,%esp
406a1a:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
406a1e:	74 07                	je     0x406a27
406a20:	8b 45 f8             	mov    -0x8(%ebp),%eax
406a23:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
406a27:	33 c0                	xor    %eax,%eax
406a29:	5f                   	pop    %edi
406a2a:	5e                   	pop    %esi
406a2b:	5b                   	pop    %ebx
406a2c:	c9                   	leave
406a2d:	c3                   	ret
406a2e:	8b ff                	mov    %edi,%edi
406a30:	55                   	push   %ebp
406a31:	8b ec                	mov    %esp,%ebp
406a33:	83 ec 2c             	sub    $0x2c,%esp
406a36:	a1 04 f0 41 00       	mov    0x41f004,%eax
406a3b:	33 c5                	xor    %ebp,%eax
406a3d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406a40:	8b 45 08             	mov    0x8(%ebp),%eax
406a43:	53                   	push   %ebx
406a44:	56                   	push   %esi
406a45:	57                   	push   %edi
406a46:	8b 7d 0c             	mov    0xc(%ebp),%edi
406a49:	6a 16                	push   $0x16
406a4b:	5e                   	pop    %esi
406a4c:	56                   	push   %esi
406a4d:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406a50:	51                   	push   %ecx
406a51:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
406a54:	51                   	push   %ecx
406a55:	ff 70 04             	push   0x4(%eax)
406a58:	ff 30                	push   (%eax)
406a5a:	e8 ab 1d 00 00       	call   0x40880a
406a5f:	33 db                	xor    %ebx,%ebx
406a61:	83 c4 14             	add    $0x14,%esp
406a64:	3b fb                	cmp    %ebx,%edi
406a66:	75 18                	jne    0x406a80
406a68:	e8 df c3 ff ff       	call   0x402e4c
406a6d:	53                   	push   %ebx
406a6e:	53                   	push   %ebx
406a6f:	53                   	push   %ebx
406a70:	53                   	push   %ebx
406a71:	53                   	push   %ebx
406a72:	89 30                	mov    %esi,(%eax)
406a74:	e8 c8 d1 ff ff       	call   0x403c41
406a79:	83 c4 14             	add    $0x14,%esp
406a7c:	8b c6                	mov    %esi,%eax
406a7e:	eb 5a                	jmp    0x406ada
406a80:	8b 45 10             	mov    0x10(%ebp),%eax
406a83:	3b c3                	cmp    %ebx,%eax
406a85:	76 e1                	jbe    0x406a68
406a87:	83 f8 ff             	cmp    $0xffffffff,%eax
406a8a:	75 04                	jne    0x406a90
406a8c:	0b c0                	or     %eax,%eax
406a8e:	eb 0b                	jmp    0x406a9b
406a90:	33 c9                	xor    %ecx,%ecx
406a92:	83 7d d4 2d          	cmpl   $0x2d,-0x2c(%ebp)
406a96:	0f 94 c1             	sete   %cl
406a99:	2b c1                	sub    %ecx,%eax
406a9b:	8b 75 14             	mov    0x14(%ebp),%esi
406a9e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
406aa1:	51                   	push   %ecx
406aa2:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406aa5:	03 ce                	add    %esi,%ecx
406aa7:	51                   	push   %ecx
406aa8:	50                   	push   %eax
406aa9:	33 c0                	xor    %eax,%eax
406aab:	83 7d d4 2d          	cmpl   $0x2d,-0x2c(%ebp)
406aaf:	0f 94 c0             	sete   %al
406ab2:	03 c7                	add    %edi,%eax
406ab4:	50                   	push   %eax
406ab5:	e8 d4 1b 00 00       	call   0x40868e
406aba:	83 c4 10             	add    $0x10,%esp
406abd:	3b c3                	cmp    %ebx,%eax
406abf:	74 04                	je     0x406ac5
406ac1:	88 1f                	mov    %bl,(%edi)
406ac3:	eb 15                	jmp    0x406ada
406ac5:	ff 75 18             	push   0x18(%ebp)
406ac8:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406acb:	53                   	push   %ebx
406acc:	56                   	push   %esi
406acd:	ff 75 10             	push   0x10(%ebp)
406ad0:	8b cf                	mov    %edi,%ecx
406ad2:	e8 60 fe ff ff       	call   0x406937
406ad7:	83 c4 10             	add    $0x10,%esp
406ada:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406add:	5f                   	pop    %edi
406ade:	5e                   	pop    %esi
406adf:	33 cd                	xor    %ebp,%ecx
406ae1:	5b                   	pop    %ebx
406ae2:	e8 19 a5 ff ff       	call   0x401000
406ae7:	c9                   	leave
406ae8:	c3                   	ret
406ae9:	8b ff                	mov    %edi,%edi
406aeb:	55                   	push   %ebp
406aec:	8b ec                	mov    %esp,%ebp
406aee:	83 ec 30             	sub    $0x30,%esp
406af1:	a1 04 f0 41 00       	mov    0x41f004,%eax
406af6:	33 c5                	xor    %ebp,%eax
406af8:	89 45 fc             	mov    %eax,-0x4(%ebp)
406afb:	8b 45 08             	mov    0x8(%ebp),%eax
406afe:	53                   	push   %ebx
406aff:	56                   	push   %esi
406b00:	8b 75 0c             	mov    0xc(%ebp),%esi
406b03:	57                   	push   %edi
406b04:	6a 16                	push   $0x16
406b06:	5f                   	pop    %edi
406b07:	57                   	push   %edi
406b08:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406b0b:	51                   	push   %ecx
406b0c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
406b0f:	51                   	push   %ecx
406b10:	ff 70 04             	push   0x4(%eax)
406b13:	ff 30                	push   (%eax)
406b15:	e8 f0 1c 00 00       	call   0x40880a
406b1a:	33 db                	xor    %ebx,%ebx
406b1c:	83 c4 14             	add    $0x14,%esp
406b1f:	3b f3                	cmp    %ebx,%esi
406b21:	75 1b                	jne    0x406b3e
406b23:	e8 24 c3 ff ff       	call   0x402e4c
406b28:	53                   	push   %ebx
406b29:	53                   	push   %ebx
406b2a:	53                   	push   %ebx
406b2b:	53                   	push   %ebx
406b2c:	53                   	push   %ebx
406b2d:	89 38                	mov    %edi,(%eax)
406b2f:	e8 0d d1 ff ff       	call   0x403c41
406b34:	83 c4 14             	add    $0x14,%esp
406b37:	8b c7                	mov    %edi,%eax
406b39:	e9 96 00 00 00       	jmp    0x406bd4
406b3e:	8b 4d 10             	mov    0x10(%ebp),%ecx
406b41:	3b cb                	cmp    %ebx,%ecx
406b43:	76 de                	jbe    0x406b23
406b45:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406b48:	48                   	dec    %eax
406b49:	89 45 e0             	mov    %eax,-0x20(%ebp)
406b4c:	33 c0                	xor    %eax,%eax
406b4e:	83 7d d0 2d          	cmpl   $0x2d,-0x30(%ebp)
406b52:	0f 94 c0             	sete   %al
406b55:	8d 3c 30             	lea    (%eax,%esi,1),%edi
406b58:	83 f9 ff             	cmp    $0xffffffff,%ecx
406b5b:	75 04                	jne    0x406b61
406b5d:	0b c9                	or     %ecx,%ecx
406b5f:	eb 02                	jmp    0x406b63
406b61:	2b c8                	sub    %eax,%ecx
406b63:	8d 45 d0             	lea    -0x30(%ebp),%eax
406b66:	50                   	push   %eax
406b67:	ff 75 14             	push   0x14(%ebp)
406b6a:	51                   	push   %ecx
406b6b:	57                   	push   %edi
406b6c:	e8 1d 1b 00 00       	call   0x40868e
406b71:	83 c4 10             	add    $0x10,%esp
406b74:	3b c3                	cmp    %ebx,%eax
406b76:	74 04                	je     0x406b7c
406b78:	88 1e                	mov    %bl,(%esi)
406b7a:	eb 58                	jmp    0x406bd4
406b7c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406b7f:	48                   	dec    %eax
406b80:	39 45 e0             	cmp    %eax,-0x20(%ebp)
406b83:	0f 9c c1             	setl   %cl
406b86:	83 f8 fc             	cmp    $0xfffffffc,%eax
406b89:	7c 2d                	jl     0x406bb8
406b8b:	3b 45 14             	cmp    0x14(%ebp),%eax
406b8e:	7d 28                	jge    0x406bb8
406b90:	3a cb                	cmp    %bl,%cl
406b92:	74 0a                	je     0x406b9e
406b94:	8a 07                	mov    (%edi),%al
406b96:	47                   	inc    %edi
406b97:	84 c0                	test   %al,%al
406b99:	75 f9                	jne    0x406b94
406b9b:	88 5f fe             	mov    %bl,-0x2(%edi)
406b9e:	ff 75 1c             	push   0x1c(%ebp)
406ba1:	8d 45 d0             	lea    -0x30(%ebp),%eax
406ba4:	6a 01                	push   $0x1
406ba6:	ff 75 14             	push   0x14(%ebp)
406ba9:	8b ce                	mov    %esi,%ecx
406bab:	ff 75 10             	push   0x10(%ebp)
406bae:	e8 84 fd ff ff       	call   0x406937
406bb3:	83 c4 10             	add    $0x10,%esp
406bb6:	eb 1c                	jmp    0x406bd4
406bb8:	ff 75 1c             	push   0x1c(%ebp)
406bbb:	8d 45 d0             	lea    -0x30(%ebp),%eax
406bbe:	6a 01                	push   $0x1
406bc0:	50                   	push   %eax
406bc1:	ff 75 18             	push   0x18(%ebp)
406bc4:	8b c6                	mov    %esi,%eax
406bc6:	ff 75 14             	push   0x14(%ebp)
406bc9:	ff 75 10             	push   0x10(%ebp)
406bcc:	e8 94 f7 ff ff       	call   0x406365
406bd1:	83 c4 18             	add    $0x18,%esp
406bd4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bd7:	5f                   	pop    %edi
406bd8:	5e                   	pop    %esi
406bd9:	33 cd                	xor    %ebp,%ecx
406bdb:	5b                   	pop    %ebx
406bdc:	e8 1f a4 ff ff       	call   0x401000
406be1:	c9                   	leave
406be2:	c3                   	ret
406be3:	8b ff                	mov    %edi,%edi
406be5:	55                   	push   %ebp
406be6:	8b ec                	mov    %esp,%ebp
406be8:	8b 45 14             	mov    0x14(%ebp),%eax
406beb:	83 f8 65             	cmp    $0x65,%eax
406bee:	74 5f                	je     0x406c4f
406bf0:	83 f8 45             	cmp    $0x45,%eax
406bf3:	74 5a                	je     0x406c4f
406bf5:	83 f8 66             	cmp    $0x66,%eax
406bf8:	75 19                	jne    0x406c13
406bfa:	ff 75 20             	push   0x20(%ebp)
406bfd:	ff 75 18             	push   0x18(%ebp)
406c00:	ff 75 10             	push   0x10(%ebp)
406c03:	ff 75 0c             	push   0xc(%ebp)
406c06:	ff 75 08             	push   0x8(%ebp)
406c09:	e8 20 fe ff ff       	call   0x406a2e
406c0e:	83 c4 14             	add    $0x14,%esp
406c11:	5d                   	pop    %ebp
406c12:	c3                   	ret
406c13:	83 f8 61             	cmp    $0x61,%eax
406c16:	74 1e                	je     0x406c36
406c18:	83 f8 41             	cmp    $0x41,%eax
406c1b:	74 19                	je     0x406c36
406c1d:	ff 75 20             	push   0x20(%ebp)
406c20:	ff 75 1c             	push   0x1c(%ebp)
406c23:	ff 75 18             	push   0x18(%ebp)
406c26:	ff 75 10             	push   0x10(%ebp)
406c29:	ff 75 0c             	push   0xc(%ebp)
406c2c:	ff 75 08             	push   0x8(%ebp)
406c2f:	e8 b5 fe ff ff       	call   0x406ae9
406c34:	eb 30                	jmp    0x406c66
406c36:	ff 75 20             	push   0x20(%ebp)
406c39:	ff 75 1c             	push   0x1c(%ebp)
406c3c:	ff 75 18             	push   0x18(%ebp)
406c3f:	ff 75 10             	push   0x10(%ebp)
406c42:	ff 75 0c             	push   0xc(%ebp)
406c45:	ff 75 08             	push   0x8(%ebp)
406c48:	e8 77 f9 ff ff       	call   0x4065c4
406c4d:	eb 17                	jmp    0x406c66
406c4f:	ff 75 20             	push   0x20(%ebp)
406c52:	ff 75 1c             	push   0x1c(%ebp)
406c55:	ff 75 18             	push   0x18(%ebp)
406c58:	ff 75 10             	push   0x10(%ebp)
406c5b:	ff 75 0c             	push   0xc(%ebp)
406c5e:	ff 75 08             	push   0x8(%ebp)
406c61:	e8 6e f8 ff ff       	call   0x4064d4
406c66:	83 c4 18             	add    $0x18,%esp
406c69:	5d                   	pop    %ebp
406c6a:	c3                   	ret
406c6b:	8b ff                	mov    %edi,%edi