406757:	46                   	inc    %esi
406758:	89 45 0c             	mov    %eax,0xc(%ebp)
40675b:	39 55 14             	cmp    %edx,0x14(%ebp)
40675e:	75 04                	jne    0x406764
406760:	88 10                	mov    %dl,(%eax)
406762:	eb 0f                	jmp    0x406773
406764:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406767:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
40676d:	8b 09                	mov    (%ecx),%ecx
40676f:	8a 09                	mov    (%ecx),%cl
406771:	88 08                	mov    %cl,(%eax)
406773:	8b 4f 04             	mov    0x4(%edi),%ecx
406776:	8b 07                	mov    (%edi),%eax
406778:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
40677e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406781:	77 08                	ja     0x40678b
406783:	3b c2                	cmp    %edx,%eax
406785:	0f 86 b5 00 00 00    	jbe    0x406840
40678b:	89 55 f4             	mov    %edx,-0xc(%ebp)
40678e:	c7 45 f8 00 00 0f 00 	movl   $0xf0000,-0x8(%ebp)
406795:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
406799:	7e 4d                	jle    0x4067e8
40679b:	8b 57 04             	mov    0x4(%edi),%edx
40679e:	23 55 f8             	and    -0x8(%ebp),%edx
4067a1:	8b 07                	mov    (%edi),%eax
4067a3:	0f bf 4d fc          	movswl -0x4(%ebp),%ecx
4067a7:	23 45 f4             	and    -0xc(%ebp),%eax
4067aa:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
4067b0:	e8 cb 21 00 00       	call   0x408980
4067b5:	66 83 c0 30          	add    $0x30,%ax
4067b9:	0f b7 c0             	movzwl %ax,%eax
4067bc:	66 83 f8 39          	cmp    $0x39,%ax
4067c0:	76 02                	jbe    0x4067c4
4067c2:	03 c3                	add    %ebx,%eax
4067c4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4067c7:	83 6d fc 04          	subl   $0x4,-0x4(%ebp)
4067cb:	88 06                	mov    %al,(%esi)
4067cd:	8b 45 f4             	mov    -0xc(%ebp),%eax
4067d0:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
4067d4:	c1 e9 04             	shr    $0x4,%ecx
4067d7:	46                   	inc    %esi
4067d8:	ff 4d 14             	decl   0x14(%ebp)
4067db:	66 83 7d fc 00       	cmpw   $0x0,-0x4(%ebp)
4067e0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4067e3:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4067e6:	7d ad                	jge    0x406795
4067e8:	66 83 7d fc 00       	cmpw   $0x0,-0x4(%ebp)
4067ed:	7c 51                	jl     0x406840
4067ef:	8b 57 04             	mov    0x4(%edi),%edx
4067f2:	23 55 f8             	and    -0x8(%ebp),%edx
4067f5:	8b 07                	mov    (%edi),%eax
4067f7:	0f bf 4d fc          	movswl -0x4(%ebp),%ecx
4067fb:	23 45 f4             	and    -0xc(%ebp),%eax
4067fe:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
406804:	e8 77 21 00 00       	call   0x408980
406809:	66 83 f8 08          	cmp    $0x8,%ax
40680d:	76 31                	jbe    0x406840
40680f:	8d 46 ff             	lea    -0x1(%esi),%eax
406812:	8a 08                	mov    (%eax),%cl
406814:	80 f9 66             	cmp    $0x66,%cl
406817:	74 05                	je     0x40681e
406819:	80 f9 46             	cmp    $0x46,%cl
40681c:	75 06                	jne    0x406824
40681e:	c6 00 30             	movb   $0x30,(%eax)
406821:	48                   	dec    %eax
406822:	eb ee                	jmp    0x406812
406824:	3b 45 0c             	cmp    0xc(%ebp),%eax
406827:	74 14                	je     0x40683d
406829:	8a 08                	mov    (%eax),%cl
40682b:	80 f9 39             	cmp    $0x39,%cl
40682e:	75 07                	jne    0x406837
406830:	80 c3 3a             	add    $0x3a,%bl
406833:	88 18                	mov    %bl,(%eax)
406835:	eb 09                	jmp    0x406840
406837:	fe c1                	inc    %cl
406839:	88 08                	mov    %cl,(%eax)
40683b:	eb 03                	jmp    0x406840
40683d:	fe 40 ff             	incb   -0x1(%eax)
406840:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
406844:	7e 11                	jle    0x406857
406846:	ff 75 14             	push   0x14(%ebp)
406849:	6a 30                	push   $0x30
40684b:	56                   	push   %esi
40684c:	e8 ef 05 00 00       	call   0x406e40
406851:	83 c4 0c             	add    $0xc,%esp
406854:	03 75 14             	add    0x14(%ebp),%esi
406857:	8b 45 0c             	mov    0xc(%ebp),%eax
40685a:	80 38 00             	cmpb   $0x0,(%eax)
40685d:	75 02                	jne    0x406861
40685f:	8b f0                	mov    %eax,%esi
406861:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
406865:	b1 34                	mov    $0x34,%cl
406867:	0f 94 c0             	sete   %al
40686a:	fe c8                	dec    %al
40686c:	24 e0                	and    $0xe0,%al
40686e:	04 70                	add    $0x70,%al
406870:	88 06                	mov    %al,(%esi)
406872:	8b 07                	mov    (%edi),%eax
406874:	8b 57 04             	mov    0x4(%edi),%edx
406877:	46                   	inc    %esi
406878:	e8 03 21 00 00       	call   0x408980
40687d:	33 db                	xor    %ebx,%ebx
40687f:	25 ff 07 00 00       	and    $0x7ff,%eax
406884:	23 d3                	and    %ebx,%edx
406886:	2b 45 ec             	sub    -0x14(%ebp),%eax
406889:	53                   	push   %ebx
40688a:	59                   	pop    %ecx
40688b:	1b d1                	sbb    %ecx,%edx
40688d:	78 0c                	js     0x40689b
40688f:	7f 04                	jg     0x406895
406891:	3b c3                	cmp    %ebx,%eax
406893:	72 06                	jb     0x40689b
406895:	c6 06 2b             	movb   $0x2b,(%esi)
406898:	46                   	inc    %esi
406899:	eb 0a                	jmp    0x4068a5
40689b:	c6 06 2d             	movb   $0x2d,(%esi)
40689e:	46                   	inc    %esi
40689f:	f7 d8                	neg    %eax
4068a1:	13 d3                	adc    %ebx,%edx
4068a3:	f7 da                	neg    %edx
4068a5:	3b d3                	cmp    %ebx,%edx
4068a7:	8b fe                	mov    %esi,%edi
4068a9:	c6 06 30             	movb   $0x30,(%esi)
4068ac:	7c 24                	jl     0x4068d2
4068ae:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
4068b3:	7f 04                	jg     0x4068b9
4068b5:	3b c1                	cmp    %ecx,%eax
4068b7:	72 19                	jb     0x4068d2
4068b9:	53                   	push   %ebx
4068ba:	51                   	push   %ecx
4068bb:	52                   	push   %edx
4068bc:	50                   	push   %eax
4068bd:	e8 de 1f 00 00       	call   0x4088a0
4068c2:	04 30                	add    $0x30,%al
4068c4:	88 06                	mov    %al,(%esi)
4068c6:	46                   	inc    %esi
4068c7:	89 55 f0             	mov    %edx,-0x10(%ebp)
4068ca:	8b c1                	mov    %ecx,%eax
4068cc:	8b d3                	mov    %ebx,%edx
4068ce:	3b f7                	cmp    %edi,%esi
4068d0:	75 0b                	jne    0x4068dd
4068d2:	85 d2                	test   %edx,%edx
4068d4:	7c 1e                	jl     0x4068f4
4068d6:	7f 05                	jg     0x4068dd
4068d8:	83 f8 64             	cmp    $0x64,%eax
4068db:	72 17                	jb     0x4068f4
4068dd:	6a 00                	push   $0x0
4068df:	6a 64                	push   $0x64
4068e1:	52                   	push   %edx
4068e2:	50                   	push   %eax
4068e3:	e8 b8 1f 00 00       	call   0x4088a0
4068e8:	04 30                	add    $0x30,%al
4068ea:	88 06                	mov    %al,(%esi)
4068ec:	89 55 f0             	mov    %edx,-0x10(%ebp)
4068ef:	46                   	inc    %esi
4068f0:	8b c1                	mov    %ecx,%eax
4068f2:	8b d3                	mov    %ebx,%edx
4068f4:	3b f7                	cmp    %edi,%esi
4068f6:	75 0b                	jne    0x406903
4068f8:	85 d2                	test   %edx,%edx
4068fa:	7c 1f                	jl     0x40691b
4068fc:	7f 05                	jg     0x406903
4068fe:	83 f8 0a             	cmp    $0xa,%eax
406901:	72 18                	jb     0x40691b
406903:	6a 00                	push   $0x0
406905:	6a 0a                	push   $0xa
406907:	52                   	push   %edx
406908:	50                   	push   %eax
406909:	e8 92 1f 00 00       	call   0x4088a0
40690e:	04 30                	add    $0x30,%al
406910:	88 06                	mov    %al,(%esi)
406912:	89 55 f0             	mov    %edx,-0x10(%ebp)
406915:	46                   	inc    %esi
406916:	8b c1                	mov    %ecx,%eax
406918:	89 5d f0             	mov    %ebx,-0x10(%ebp)
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