4067d7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4067db:	55                   	push   %ebp
4067dc:	52                   	push   %edx
4067dd:	50                   	push   %eax
4067de:	51                   	push   %ecx
4067df:	51                   	push   %ecx
4067e0:	68 5c 68 40 00       	push   $0x40685c
4067e5:	64 ff 35 00 00 00 00 	push   %fs:0x0
4067ec:	a1 04 b0 40 00       	mov    0x40b004,%eax
4067f1:	33 c4                	xor    %esp,%eax
4067f3:	89 44 24 08          	mov    %eax,0x8(%esp)
4067f7:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4067fe:	8b 44 24 30          	mov    0x30(%esp),%eax
406802:	8b 58 08             	mov    0x8(%eax),%ebx
406805:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
406809:	33 19                	xor    (%ecx),%ebx
40680b:	8b 70 0c             	mov    0xc(%eax),%esi
40680e:	83 fe fe             	cmp    $0xfffffffe,%esi
406811:	74 3b                	je     0x40684e
406813:	8b 54 24 34          	mov    0x34(%esp),%edx
406817:	83 fa fe             	cmp    $0xfffffffe,%edx
40681a:	74 04                	je     0x406820
40681c:	3b f2                	cmp    %edx,%esi
40681e:	76 2e                	jbe    0x40684e
406820:	8d 34 76             	lea    (%esi,%esi,2),%esi
406823:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
406827:	8b 0b                	mov    (%ebx),%ecx
406829:	89 48 0c             	mov    %ecx,0xc(%eax)
40682c:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
406830:	75 cc                	jne    0x4067fe
406832:	68 01 01 00 00       	push   $0x101
406837:	8b 43 08             	mov    0x8(%ebx),%eax
40683a:	e8 ee 17 00 00       	call   0x40802d
40683f:	b9 01 00 00 00       	mov    $0x1,%ecx
406844:	8b 43 08             	mov    0x8(%ebx),%eax
406847:	e8 00 18 00 00       	call   0x40804c
40684c:	eb b0                	jmp    0x4067fe
40684e:	64 8f 05 00 00 00 00 	pop    %fs:0x0
406855:	83 c4 18             	add    $0x18,%esp
406858:	5f                   	pop    %edi
406859:	5e                   	pop    %esi
40685a:	5b                   	pop    %ebx
40685b:	c3                   	ret
40685c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406860:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
406867:	b8 01 00 00 00       	mov    $0x1,%eax
40686c:	74 33                	je     0x4068a1
40686e:	8b 44 24 08          	mov    0x8(%esp),%eax
406872:	8b 48 08             	mov    0x8(%eax),%ecx
406875:	33 c8                	xor    %eax,%ecx
406877:	e8 74 bb ff ff       	call   0x4023f0
40687c:	55                   	push   %ebp
40687d:	8b 68 18             	mov    0x18(%eax),%ebp
406880:	ff 70 0c             	push   0xc(%eax)
406883:	ff 70 10             	push   0x10(%eax)
406886:	ff 70 14             	push   0x14(%eax)
406889:	e8 3e ff ff ff       	call   0x4067cc
40688e:	83 c4 0c             	add    $0xc,%esp
406891:	5d                   	pop    %ebp
406892:	8b 44 24 08          	mov    0x8(%esp),%eax
406896:	8b 54 24 10          	mov    0x10(%esp),%edx
40689a:	89 02                	mov    %eax,(%edx)
40689c:	b8 03 00 00 00       	mov    $0x3,%eax
4068a1:	c3                   	ret
4068a2:	55                   	push   %ebp
4068a3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4068a7:	8b 29                	mov    (%ecx),%ebp
4068a9:	ff 71 1c             	push   0x1c(%ecx)
4068ac:	ff 71 18             	push   0x18(%ecx)
4068af:	ff 71 28             	push   0x28(%ecx)
4068b2:	e8 15 ff ff ff       	call   0x4067cc
4068b7:	83 c4 0c             	add    $0xc,%esp
4068ba:	5d                   	pop    %ebp
4068bb:	c2 04 00             	ret    $0x4
4068be:	55                   	push   %ebp
4068bf:	56                   	push   %esi
4068c0:	57                   	push   %edi
4068c1:	53                   	push   %ebx
4068c2:	8b ea                	mov    %edx,%ebp
4068c4:	33 c0                	xor    %eax,%eax
4068c6:	33 db                	xor    %ebx,%ebx
4068c8:	33 d2                	xor    %edx,%edx
4068ca:	33 f6                	xor    %esi,%esi
4068cc:	33 ff                	xor    %edi,%edi
4068ce:	ff d1                	call   *%ecx
4068d0:	5b                   	pop    %ebx
4068d1:	5f                   	pop    %edi
4068d2:	5e                   	pop    %esi
4068d3:	5d                   	pop    %ebp
4068d4:	c3                   	ret
4068d5:	8b ea                	mov    %edx,%ebp
4068d7:	8b f1                	mov    %ecx,%esi
4068d9:	8b c1                	mov    %ecx,%eax
4068db:	6a 01                	push   $0x1
4068dd:	e8 4b 17 00 00       	call   0x40802d
4068e2:	33 c0                	xor    %eax,%eax
4068e4:	33 db                	xor    %ebx,%ebx
4068e6:	33 c9                	xor    %ecx,%ecx
4068e8:	33 d2                	xor    %edx,%edx
4068ea:	33 ff                	xor    %edi,%edi
4068ec:	ff e6                	jmp    *%esi
4068ee:	55                   	push   %ebp
4068ef:	8b ec                	mov    %esp,%ebp
4068f1:	53                   	push   %ebx
4068f2:	56                   	push   %esi
4068f3:	57                   	push   %edi
4068f4:	6a 00                	push   $0x0
4068f6:	6a 00                	push   $0x0
4068f8:	68 03 69 40 00       	push   $0x406903
4068fd:	51                   	push   %ecx
4068fe:	e8 db 1b 00 00       	call   0x4084de
406903:	5f                   	pop    %edi
406904:	5e                   	pop    %esi
406905:	5b                   	pop    %ebx
406906:	5d                   	pop    %ebp
406907:	c3                   	ret
406908:	55                   	push   %ebp
406909:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40690d:	52                   	push   %edx
40690e:	51                   	push   %ecx
40690f:	ff 74 24 14          	push   0x14(%esp)
406913:	e8 b4 fe ff ff       	call   0x4067cc
406918:	83 c4 0c             	add    $0xc,%esp
40691b:	5d                   	pop    %ebp
40691c:	c2 08 00             	ret    $0x8
40691f:	cc                   	int3
406920:	8b 54 24 0c          	mov    0xc(%esp),%edx
406924:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406928:	85 d2                	test   %edx,%edx
40692a:	74 69                	je     0x406995
40692c:	33 c0                	xor    %eax,%eax
40692e:	8a 44 24 08          	mov    0x8(%esp),%al
406932:	84 c0                	test   %al,%al
406934:	75 16                	jne    0x40694c
406936:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40693c:	72 0e                	jb     0x40694c
40693e:	83 3d c0 0a 89 00 00 	cmpl   $0x0,0x890ac0
406945:	74 05                	je     0x40694c
406947:	e9 5a 17 00 00       	jmp    0x4080a6
40694c:	57                   	push   %edi
40694d:	8b f9                	mov    %ecx,%edi
40694f:	83 fa 04             	cmp    $0x4,%edx
406952:	72 31                	jb     0x406985
406954:	f7 d9                	neg    %ecx
406956:	83 e1 03             	and    $0x3,%ecx
406959:	74 0c                	je     0x406967
40695b:	2b d1                	sub    %ecx,%edx
40695d:	88 07                	mov    %al,(%edi)
40695f:	83 c7 01             	add    $0x1,%edi
406962:	83 e9 01             	sub    $0x1,%ecx
406965:	75 f6                	jne    0x40695d
406967:	8b c8                	mov    %eax,%ecx
406969:	c1 e0 08             	shl    $0x8,%eax
40696c:	03 c1                	add    %ecx,%eax
40696e:	8b c8                	mov    %eax,%ecx
406970:	c1 e0 10             	shl    $0x10,%eax
406973:	03 c1                	add    %ecx,%eax
406975:	8b ca                	mov    %edx,%ecx
406977:	83 e2 03             	and    $0x3,%edx
40697a:	c1 e9 02             	shr    $0x2,%ecx
40697d:	74 06                	je     0x406985
40697f:	f3 ab                	rep stos %eax,%es:(%edi)
406981:	85 d2                	test   %edx,%edx
406983:	74 0a                	je     0x40698f
406985:	88 07                	mov    %al,(%edi)
406987:	83 c7 01             	add    $0x1,%edi
40698a:	83 ea 01             	sub    $0x1,%edx
40698d:	75 f6                	jne    0x406985
40698f:	8b 44 24 08          	mov    0x8(%esp),%eax
406993:	5f                   	pop    %edi
406994:	c3                   	ret
406995:	8b 44 24 04          	mov    0x4(%esp),%eax
406999:	c3                   	ret
40699a:	8b ff                	mov    %edi,%edi
40699c:	55                   	push   %ebp
40699d:	8b ec                	mov    %esp,%ebp
40699f:	8b 45 08             	mov    0x8(%ebp),%eax
4069a2:	85 c0                	test   %eax,%eax
4069a4:	74 12                	je     0x4069b8
4069a6:	83 e8 08             	sub    $0x8,%eax
4069a9:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
4069af:	75 07                	jne    0x4069b8
4069b1:	50                   	push   %eax
4069b2:	e8 e7 ed ff ff       	call   0x40579e
4069b7:	59                   	pop    %ecx
4069b8:	5d                   	pop    %ebp
4069b9:	c3                   	ret
4069ba:	8b ff                	mov    %edi,%edi
4069bc:	55                   	push   %ebp
4069bd:	8b ec                	mov    %esp,%ebp
4069bf:	83 ec 14             	sub    $0x14,%esp
4069c2:	a1 04 b0 40 00       	mov    0x40b004,%eax
4069c7:	33 c5                	xor    %ebp,%eax
4069c9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4069cc:	53                   	push   %ebx
4069cd:	56                   	push   %esi
4069ce:	33 db                	xor    %ebx,%ebx
4069d0:	57                   	push   %edi
4069d1:	8b f1                	mov    %ecx,%esi
4069d3:	39 1d c0 cf 45 00    	cmp    %ebx,0x45cfc0
4069d9:	75 38                	jne    0x406a13
4069db:	53                   	push   %ebx
4069dc:	53                   	push   %ebx
4069dd:	33 ff                	xor    %edi,%edi
4069df:	47                   	inc    %edi
4069e0:	57                   	push   %edi
4069e1:	68 58 19 40 00       	push   $0x401958
4069e6:	68 00 01 00 00       	push   $0x100
4069eb:	53                   	push   %ebx
4069ec:	ff 15 1c 11 40 00    	call   *0x40111c
4069f2:	85 c0                	test   %eax,%eax
4069f4:	74 08                	je     0x4069fe
4069f6:	89 3d c0 cf 45 00    	mov    %edi,0x45cfc0
4069fc:	eb 15                	jmp    0x406a13
4069fe:	ff 15 c8 10 40 00    	call   *0x4010c8
406a04:	83 f8 78             	cmp    $0x78,%eax
406a07:	75 0a                	jne    0x406a13
406a09:	c7 05 c0 cf 45 00 02 	movl   $0x2,0x45cfc0
406a10:	00 00 00
406a13:	39 5d 14             	cmp    %ebx,0x14(%ebp)
406a16:	7e 22                	jle    0x406a3a
406a18:	8b 4d 14             	mov    0x14(%ebp),%ecx
406a1b:	8b 45 10             	mov    0x10(%ebp),%eax
406a1e:	49                   	dec    %ecx
406a1f:	38 18                	cmp    %bl,(%eax)
406a21:	74 08                	je     0x406a2b
406a23:	40                   	inc    %eax
406a24:	3b cb                	cmp    %ebx,%ecx
406a26:	75 f6                	jne    0x406a1e
406a28:	83 c9 ff             	or     $0xffffffff,%ecx
406a2b:	8b 45 14             	mov    0x14(%ebp),%eax
406a2e:	2b c1                	sub    %ecx,%eax
406a30:	48                   	dec    %eax
406a31:	3b 45 14             	cmp    0x14(%ebp),%eax
406a34:	7d 01                	jge    0x406a37
406a36:	40                   	inc    %eax
406a37:	89 45 14             	mov    %eax,0x14(%ebp)
406a3a:	a1 c0 cf 45 00       	mov    0x45cfc0,%eax
406a3f:	83 f8 02             	cmp    $0x2,%eax
406a42:	0f 84 ac 01 00 00    	je     0x406bf4
406a48:	3b c3                	cmp    %ebx,%eax
406a4a:	0f 84 a4 01 00 00    	je     0x406bf4
406a50:	83 f8 01             	cmp    $0x1,%eax
406a53:	0f 85 cc 01 00 00    	jne    0x406c25
406a59:	89 5d f8             	mov    %ebx,-0x8(%ebp)
406a5c:	39 5d 20             	cmp    %ebx,0x20(%ebp)
406a5f:	75 08                	jne    0x406a69
406a61:	8b 06                	mov    (%esi),%eax
406a63:	8b 40 04             	mov    0x4(%eax),%eax
406a66:	89 45 20             	mov    %eax,0x20(%ebp)
406a69:	8b 35 18 11 40 00    	mov    0x401118,%esi
406a6f:	33 c0                	xor    %eax,%eax
406a71:	39 5d 24             	cmp    %ebx,0x24(%ebp)
406a74:	53                   	push   %ebx
406a75:	53                   	push   %ebx
406a76:	ff 75 14             	push   0x14(%ebp)
406a79:	0f 95 c0             	setne  %al
406a7c:	ff 75 10             	push   0x10(%ebp)
406a7f:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
406a86:	50                   	push   %eax
406a87:	ff 75 20             	push   0x20(%ebp)
406a8a:	ff d6                	call   *%esi
406a8c:	8b f8                	mov    %eax,%edi
406a8e:	3b fb                	cmp    %ebx,%edi
406a90:	0f 84 8f 01 00 00    	je     0x406c25
406a96:	7e 43                	jle    0x406adb
406a98:	6a e0                	push   $0xffffffe0
406a9a:	33 d2                	xor    %edx,%edx
406a9c:	58                   	pop    %eax
406a9d:	f7 f7                	div    %edi
406a9f:	83 f8 02             	cmp    $0x2,%eax
406aa2:	72 37                	jb     0x406adb
406aa4:	8d 44 3f 08          	lea    0x8(%edi,%edi,1),%eax
406aa8:	3d 00 04 00 00       	cmp    $0x400,%eax
406aad:	77 13                	ja     0x406ac2
406aaf:	e8 8c 18 00 00       	call   0x408340
406ab4:	8b c4                	mov    %esp,%eax
406ab6:	3b c3                	cmp    %ebx,%eax
406ab8:	74 1c                	je     0x406ad6
406aba:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
406ac0:	eb 11                	jmp    0x406ad3
406ac2:	50                   	push   %eax
406ac3:	e8 b2 0a 00 00       	call   0x40757a
406ac8:	59                   	pop    %ecx
406ac9:	3b c3                	cmp    %ebx,%eax
406acb:	74 09                	je     0x406ad6
406acd:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
406ad3:	83 c0 08             	add    $0x8,%eax
406ad6:	89 45 f4             	mov    %eax,-0xc(%ebp)
406ad9:	eb 03                	jmp    0x406ade
406adb:	89 5d f4             	mov    %ebx,-0xc(%ebp)
406ade:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
406ae1:	0f 84 3e 01 00 00    	je     0x406c25
406ae7:	57                   	push   %edi
406ae8:	ff 75 f4             	push   -0xc(%ebp)
406aeb:	ff 75 14             	push   0x14(%ebp)
406aee:	ff 75 10             	push   0x10(%ebp)
406af1:	6a 01                	push   $0x1
406af3:	ff 75 20             	push   0x20(%ebp)
406af6:	ff d6                	call   *%esi
406af8:	85 c0                	test   %eax,%eax
406afa:	0f 84 e3 00 00 00    	je     0x406be3
406b00:	8b 35 1c 11 40 00    	mov    0x40111c,%esi
406b06:	53                   	push   %ebx
406b07:	53                   	push   %ebx
406b08:	57                   	push   %edi
406b09:	ff 75 f4             	push   -0xc(%ebp)
406b0c:	ff 75 0c             	push   0xc(%ebp)
406b0f:	ff 75 08             	push   0x8(%ebp)
406b12:	ff d6                	call   *%esi
406b14:	8b c8                	mov    %eax,%ecx
406b16:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406b19:	3b cb                	cmp    %ebx,%ecx
406b1b:	0f 84 c2 00 00 00    	je     0x406be3
406b21:	f7 45 0c 00 04 00 00 	testl  $0x400,0xc(%ebp)
406b28:	74 29                	je     0x406b53
406b2a:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
406b2d:	0f 84 b0 00 00 00    	je     0x406be3
406b33:	3b 4d 1c             	cmp    0x1c(%ebp),%ecx
406b36:	0f 8f a7 00 00 00    	jg     0x406be3
406b3c:	ff 75 1c             	push   0x1c(%ebp)
406b3f:	ff 75 18             	push   0x18(%ebp)
406b42:	57                   	push   %edi
406b43:	ff 75 f4             	push   -0xc(%ebp)
406b46:	ff 75 0c             	push   0xc(%ebp)
406b49:	ff 75 08             	push   0x8(%ebp)
406b4c:	ff d6                	call   *%esi
406b4e:	e9 90 00 00 00       	jmp    0x406be3
406b53:	3b cb                	cmp    %ebx,%ecx
406b55:	7e 45                	jle    0x406b9c
406b57:	6a e0                	push   $0xffffffe0
406b59:	33 d2                	xor    %edx,%edx
406b5b:	58                   	pop    %eax
406b5c:	f7 f1                	div    %ecx
406b5e:	83 f8 02             	cmp    $0x2,%eax
406b61:	72 39                	jb     0x406b9c
406b63:	8d 44 09 08          	lea    0x8(%ecx,%ecx,1),%eax
406b67:	3d 00 04 00 00       	cmp    $0x400,%eax
406b6c:	77 16                	ja     0x406b84
406b6e:	e8 cd 17 00 00       	call   0x408340
406b73:	8b f4                	mov    %esp,%esi
406b75:	3b f3                	cmp    %ebx,%esi
406b77:	74 6a                	je     0x406be3
406b79:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
406b7f:	83 c6 08             	add    $0x8,%esi
406b82:	eb 1a                	jmp    0x406b9e
406b84:	50                   	push   %eax
406b85:	e8 f0 09 00 00       	call   0x40757a
406b8a:	59                   	pop    %ecx
406b8b:	3b c3                	cmp    %ebx,%eax