406733:	e8 cc 01 00 00       	call   0x406904
406738:	59                   	pop    %ecx
406739:	59                   	pop    %ecx
40673a:	85 c0                	test   %eax,%eax
40673c:	74 51                	je     0x40678f
40673e:	83 05 00 46 41 00 20 	addl   $0x20,0x414600
406745:	8d 88 00 08 00 00    	lea    0x800(%eax),%ecx
40674b:	89 07                	mov    %eax,(%edi)
40674d:	3b c1                	cmp    %ecx,%eax
40674f:	73 31                	jae    0x406782
406751:	83 c0 05             	add    $0x5,%eax
406754:	83 48 fb ff          	orl    $0xffffffff,-0x5(%eax)
406758:	83 60 03 00          	andl   $0x0,0x3(%eax)
40675c:	80 60 1f 80          	andb   $0x80,0x1f(%eax)
406760:	83 60 33 00          	andl   $0x0,0x33(%eax)
406764:	66 c7 40 ff 00 0a    	movw   $0xa00,-0x1(%eax)
40676a:	66 c7 40 20 0a 0a    	movw   $0xa0a,0x20(%eax)
406770:	c6 40 2f 00          	movb   $0x0,0x2f(%eax)
406774:	8b 0f                	mov    (%edi),%ecx
406776:	83 c0 40             	add    $0x40,%eax
406779:	03 ce                	add    %esi,%ecx
40677b:	8d 50 fb             	lea    -0x5(%eax),%edx
40677e:	3b d1                	cmp    %ecx,%edx
406780:	72 d2                	jb     0x406754
406782:	83 c7 04             	add    $0x4,%edi
406785:	39 1d 00 46 41 00    	cmp    %ebx,0x414600
40678b:	7c a2                	jl     0x40672f
40678d:	eb 06                	jmp    0x406795
40678f:	8b 1d 00 46 41 00    	mov    0x414600,%ebx
406795:	33 ff                	xor    %edi,%edi
406797:	85 db                	test   %ebx,%ebx
406799:	7e 72                	jle    0x40680d
40679b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40679e:	8b 00                	mov    (%eax),%eax
4067a0:	83 f8 ff             	cmp    $0xffffffff,%eax
4067a3:	74 5c                	je     0x406801
4067a5:	83 f8 fe             	cmp    $0xfffffffe,%eax
4067a8:	74 57                	je     0x406801
4067aa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4067ad:	8a 09                	mov    (%ecx),%cl
4067af:	f6 c1 01             	test   $0x1,%cl
4067b2:	74 4d                	je     0x406801
4067b4:	f6 c1 08             	test   $0x8,%cl
4067b7:	75 0b                	jne    0x4067c4
4067b9:	50                   	push   %eax
4067ba:	ff 15 4c f0 40 00    	call   *0x40f04c
4067c0:	85 c0                	test   %eax,%eax
4067c2:	74 3d                	je     0x406801
4067c4:	8b f7                	mov    %edi,%esi
4067c6:	83 e6 1f             	and    $0x1f,%esi
4067c9:	8b c7                	mov    %edi,%eax
4067cb:	c1 f8 05             	sar    $0x5,%eax
4067ce:	c1 e6 06             	shl    $0x6,%esi
4067d1:	03 34 85 20 46 41 00 	add    0x414620(,%eax,4),%esi
4067d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4067db:	8b 00                	mov    (%eax),%eax
4067dd:	89 06                	mov    %eax,(%esi)
4067df:	8b 45 fc             	mov    -0x4(%ebp),%eax
4067e2:	8a 00                	mov    (%eax),%al
4067e4:	88 46 04             	mov    %al,0x4(%esi)
4067e7:	68 a0 0f 00 00       	push   $0xfa0
4067ec:	8d 46 0c             	lea    0xc(%esi),%eax
4067ef:	50                   	push   %eax
4067f0:	ff 15 9c f0 40 00    	call   *0x40f09c
4067f6:	85 c0                	test   %eax,%eax
4067f8:	0f 84 bc 00 00 00    	je     0x4068ba
4067fe:	ff 46 08             	incl   0x8(%esi)
406801:	83 45 f8 04          	addl   $0x4,-0x8(%ebp)
406805:	47                   	inc    %edi
406806:	ff 45 fc             	incl   -0x4(%ebp)
406809:	3b fb                	cmp    %ebx,%edi
40680b:	7c 8e                	jl     0x40679b
40680d:	33 db                	xor    %ebx,%ebx
40680f:	8b f3                	mov    %ebx,%esi
406811:	c1 e6 06             	shl    $0x6,%esi
406814:	03 35 20 46 41 00    	add    0x414620,%esi
40681a:	8b 06                	mov    (%esi),%eax
40681c:	83 f8 ff             	cmp    $0xffffffff,%eax
40681f:	74 0b                	je     0x40682c
406821:	83 f8 fe             	cmp    $0xfffffffe,%eax
406824:	74 06                	je     0x40682c
406826:	80 4e 04 80          	orb    $0x80,0x4(%esi)
40682a:	eb 71                	jmp    0x40689d
40682c:	c6 46 04 81          	movb   $0x81,0x4(%esi)
406830:	85 db                	test   %ebx,%ebx
406832:	75 05                	jne    0x406839
406834:	6a f6                	push   $0xfffffff6
406836:	58                   	pop    %eax
406837:	eb 0a                	jmp    0x406843
406839:	8d 43 ff             	lea    -0x1(%ebx),%eax
40683c:	f7 d8                	neg    %eax
40683e:	1b c0                	sbb    %eax,%eax
406840:	83 c0 f5             	add    $0xfffffff5,%eax
406843:	50                   	push   %eax
406844:	ff 15 40 f0 40 00    	call   *0x40f040
40684a:	8b f8                	mov    %eax,%edi
40684c:	83 ff ff             	cmp    $0xffffffff,%edi
40684f:	74 42                	je     0x406893
406851:	85 ff                	test   %edi,%edi
406853:	74 3e                	je     0x406893
406855:	57                   	push   %edi
406856:	ff 15 4c f0 40 00    	call   *0x40f04c
40685c:	85 c0                	test   %eax,%eax
40685e:	74 33                	je     0x406893
406860:	25 ff 00 00 00       	and    $0xff,%eax
406865:	89 3e                	mov    %edi,(%esi)
406867:	83 f8 02             	cmp    $0x2,%eax
40686a:	75 06                	jne    0x406872
40686c:	80 4e 04 40          	orb    $0x40,0x4(%esi)
406870:	eb 09                	jmp    0x40687b
406872:	83 f8 03             	cmp    $0x3,%eax
406875:	75 04                	jne    0x40687b
406877:	80 4e 04 08          	orb    $0x8,0x4(%esi)
40687b:	68 a0 0f 00 00       	push   $0xfa0
406880:	8d 46 0c             	lea    0xc(%esi),%eax
406883:	50                   	push   %eax
406884:	ff 15 9c f0 40 00    	call   *0x40f09c
40688a:	85 c0                	test   %eax,%eax
40688c:	74 2c                	je     0x4068ba
40688e:	ff 46 08             	incl   0x8(%esi)
406891:	eb 0a                	jmp    0x40689d
406893:	80 4e 04 40          	orb    $0x40,0x4(%esi)
406897:	c7 06 fe ff ff ff    	movl   $0xfffffffe,(%esi)
40689d:	43                   	inc    %ebx
40689e:	83 fb 03             	cmp    $0x3,%ebx
4068a1:	0f 8c 68 ff ff ff    	jl     0x40680f
4068a7:	ff 35 00 46 41 00    	push   0x414600
4068ad:	ff 15 ec f0 40 00    	call   *0x40f0ec
4068b3:	33 c0                	xor    %eax,%eax
4068b5:	5f                   	pop    %edi
4068b6:	5b                   	pop    %ebx
4068b7:	5e                   	pop    %esi
4068b8:	c9                   	leave
4068b9:	c3                   	ret
4068ba:	83 c8 ff             	or     $0xffffffff,%eax
4068bd:	eb f6                	jmp    0x4068b5
4068bf:	8b ff                	mov    %edi,%edi
4068c1:	55                   	push   %ebp
4068c2:	8b ec                	mov    %esp,%ebp
4068c4:	56                   	push   %esi
4068c5:	57                   	push   %edi
4068c6:	33 f6                	xor    %esi,%esi
4068c8:	ff 75 08             	push   0x8(%ebp)
4068cb:	e8 1f b9 ff ff       	call   0x4021ef
4068d0:	8b f8                	mov    %eax,%edi
4068d2:	59                   	pop    %ecx
4068d3:	85 ff                	test   %edi,%edi
4068d5:	75 27                	jne    0x4068fe
4068d7:	39 05 c0 38 41 00    	cmp    %eax,0x4138c0
4068dd:	76 1f                	jbe    0x4068fe
4068df:	56                   	push   %esi
4068e0:	ff 15 f4 f0 40 00    	call   *0x40f0f4
4068e6:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
4068ec:	3b 05 c0 38 41 00    	cmp    0x4138c0,%eax
4068f2:	76 03                	jbe    0x4068f7
4068f4:	83 c8 ff             	or     $0xffffffff,%eax
4068f7:	8b f0                	mov    %eax,%esi
4068f9:	83 f8 ff             	cmp    $0xffffffff,%eax
4068fc:	75 ca                	jne    0x4068c8
4068fe:	8b c7                	mov    %edi,%eax
406900:	5f                   	pop    %edi
406901:	5e                   	pop    %esi
406902:	5d                   	pop    %ebp
406903:	c3                   	ret
406904:	8b ff                	mov    %edi,%edi
406906:	55                   	push   %ebp
406907:	8b ec                	mov    %esp,%ebp
406909:	56                   	push   %esi
40690a:	57                   	push   %edi
40690b:	33 f6                	xor    %esi,%esi
40690d:	6a 00                	push   $0x0
40690f:	ff 75 0c             	push   0xc(%ebp)
406912:	ff 75 08             	push   0x8(%ebp)
406915:	e8 7d e8 ff ff       	call   0x405197
40691a:	8b f8                	mov    %eax,%edi
40691c:	83 c4 0c             	add    $0xc,%esp
40691f:	85 ff                	test   %edi,%edi
406921:	75 27                	jne    0x40694a
406923:	39 05 c0 38 41 00    	cmp    %eax,0x4138c0
406929:	76 1f                	jbe    0x40694a
40692b:	56                   	push   %esi
40692c:	ff 15 f4 f0 40 00    	call   *0x40f0f4
406932:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
406938:	3b 05 c0 38 41 00    	cmp    0x4138c0,%eax
40693e:	76 03                	jbe    0x406943
406940:	83 c8 ff             	or     $0xffffffff,%eax
406943:	8b f0                	mov    %eax,%esi
406945:	83 f8 ff             	cmp    $0xffffffff,%eax
406948:	75 c3                	jne    0x40690d
40694a:	8b c7                	mov    %edi,%eax
40694c:	5f                   	pop    %edi
40694d:	5e                   	pop    %esi
40694e:	5d                   	pop    %ebp
40694f:	c3                   	ret
406950:	8b ff                	mov    %edi,%edi
406952:	55                   	push   %ebp
406953:	8b ec                	mov    %esp,%ebp
406955:	56                   	push   %esi
406956:	57                   	push   %edi
406957:	33 f6                	xor    %esi,%esi
406959:	ff 75 0c             	push   0xc(%ebp)
40695c:	ff 75 08             	push   0x8(%ebp)
40695f:	e8 62 58 00 00       	call   0x40c1c6
406964:	8b f8                	mov    %eax,%edi
406966:	59                   	pop    %ecx
406967:	59                   	pop    %ecx
406968:	85 ff                	test   %edi,%edi
40696a:	75 2c                	jne    0x406998
40696c:	39 45 0c             	cmp    %eax,0xc(%ebp)
40696f:	74 27                	je     0x406998
406971:	39 05 c0 38 41 00    	cmp    %eax,0x4138c0
406977:	76 1f                	jbe    0x406998
406979:	56                   	push   %esi
40697a:	ff 15 f4 f0 40 00    	call   *0x40f0f4
406980:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
406986:	3b 05 c0 38 41 00    	cmp    0x4138c0,%eax
40698c:	76 03                	jbe    0x406991
40698e:	83 c8 ff             	or     $0xffffffff,%eax
406991:	8b f0                	mov    %eax,%esi
406993:	83 f8 ff             	cmp    $0xffffffff,%eax
406996:	75 c1                	jne    0x406959
406998:	8b c7                	mov    %edi,%eax
40699a:	5f                   	pop    %edi
40699b:	5e                   	pop    %esi
40699c:	5d                   	pop    %ebp
40699d:	c3                   	ret
40699e:	8b ff                	mov    %edi,%edi
4069a0:	55                   	push   %ebp
4069a1:	8b ec                	mov    %esp,%ebp
4069a3:	56                   	push   %esi
4069a4:	57                   	push   %edi
4069a5:	33 f6                	xor    %esi,%esi
4069a7:	ff 75 10             	push   0x10(%ebp)
4069aa:	ff 75 0c             	push   0xc(%ebp)
4069ad:	ff 75 08             	push   0x8(%ebp)
4069b0:	e8 be 58 00 00       	call   0x40c273
4069b5:	8b f8                	mov    %eax,%edi
4069b7:	83 c4 0c             	add    $0xc,%esp
4069ba:	85 ff                	test   %edi,%edi
4069bc:	75 2c                	jne    0x4069ea
4069be:	39 45 10             	cmp    %eax,0x10(%ebp)
4069c1:	74 27                	je     0x4069ea
4069c3:	39 05 c0 38 41 00    	cmp    %eax,0x4138c0
4069c9:	76 1f                	jbe    0x4069ea
4069cb:	56                   	push   %esi
4069cc:	ff 15 f4 f0 40 00    	call   *0x40f0f4
4069d2:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
4069d8:	3b 05 c0 38 41 00    	cmp    0x4138c0,%eax
4069de:	76 03                	jbe    0x4069e3
4069e0:	83 c8 ff             	or     $0xffffffff,%eax
4069e3:	8b f0                	mov    %eax,%esi
4069e5:	83 f8 ff             	cmp    $0xffffffff,%eax
4069e8:	75 bd                	jne    0x4069a7
4069ea:	8b c7                	mov    %edi,%eax
4069ec:	5f                   	pop    %edi
4069ed:	5e                   	pop    %esi
4069ee:	5d                   	pop    %ebp
4069ef:	c3                   	ret
4069f0:	6a 10                	push   $0x10
4069f2:	68 c8 12 41 00       	push   $0x4112c8
4069f7:	e8 74 d7 ff ff       	call   0x404170
4069fc:	33 db                	xor    %ebx,%ebx
4069fe:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
406a01:	6a 01                	push   $0x1
406a03:	e8 91 03 00 00       	call   0x406d99
406a08:	59                   	pop    %ecx
406a09:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406a0c:	6a 03                	push   $0x3
406a0e:	5f                   	pop    %edi
406a0f:	89 7d e0             	mov    %edi,-0x20(%ebp)
406a12:	3b 3d 60 57 41 00    	cmp    0x415760,%edi
406a18:	7d 54                	jge    0x406a6e
406a1a:	8b f7                	mov    %edi,%esi
406a1c:	a1 44 47 41 00       	mov    0x414744,%eax
406a21:	39 1c b0             	cmp    %ebx,(%eax,%esi,4)
406a24:	74 45                	je     0x406a6b
406a26:	8b 04 b0             	mov    (%eax,%esi,4),%eax
406a29:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
406a2d:	74 0f                	je     0x406a3e
406a2f:	50                   	push   %eax
406a30:	e8 56 ce ff ff       	call   0x40388b
406a35:	59                   	pop    %ecx
406a36:	83 f8 ff             	cmp    $0xffffffff,%eax
406a39:	74 03                	je     0x406a3e
406a3b:	ff 45 e4             	incl   -0x1c(%ebp)
406a3e:	83 ff 14             	cmp    $0x14,%edi
406a41:	7c 28                	jl     0x406a6b
406a43:	a1 44 47 41 00       	mov    0x414744,%eax
406a48:	8b 04 b0             	mov    (%eax,%esi,4),%eax
406a4b:	83 c0 20             	add    $0x20,%eax
406a4e:	50                   	push   %eax
406a4f:	ff 15 f0 f0 40 00    	call   *0x40f0f0
406a55:	a1 44 47 41 00       	mov    0x414744,%eax
406a5a:	ff 34 b0             	push   (%eax,%esi,4)
406a5d:	e8 09 b5 ff ff       	call   0x401f6b
406a62:	59                   	pop    %ecx
406a63:	a1 44 47 41 00       	mov    0x414744,%eax
406a68:	89 1c b0             	mov    %ebx,(%eax,%esi,4)
406a6b:	47                   	inc    %edi
406a6c:	eb a1                	jmp    0x406a0f
406a6e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406a75:	e8 09 00 00 00       	call   0x406a83
406a7a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406a7d:	e8 33 d7 ff ff       	call   0x4041b5
406a82:	c3                   	ret
406a83:	6a 01                	push   $0x1
406a85:	e8 36 02 00 00       	call   0x406cc0
406a8a:	59                   	pop    %ecx
406a8b:	c3                   	ret
406a8c:	8b ff                	mov    %edi,%edi
406a8e:	55                   	push   %ebp
406a8f:	8b ec                	mov    %esp,%ebp
406a91:	53                   	push   %ebx
406a92:	56                   	push   %esi
406a93:	8b 75 08             	mov    0x8(%ebp),%esi
406a96:	8b 46 0c             	mov    0xc(%esi),%eax
406a99:	8b c8                	mov    %eax,%ecx
406a9b:	80 e1 03             	and    $0x3,%cl
406a9e:	33 db                	xor    %ebx,%ebx
406aa0:	80 f9 02             	cmp    $0x2,%cl
406aa3:	75 40                	jne    0x406ae5
406aa5:	a9 08 01 00 00       	test   $0x108,%eax
406aaa:	74 39                	je     0x406ae5
406aac:	8b 46 08             	mov    0x8(%esi),%eax
406aaf:	57                   	push   %edi
406ab0:	8b 3e                	mov    (%esi),%edi
406ab2:	2b f8                	sub    %eax,%edi
406ab4:	85 ff                	test   %edi,%edi
406ab6:	7e 2c                	jle    0x406ae4
406ab8:	57                   	push   %edi
406ab9:	50                   	push   %eax
406aba:	56                   	push   %esi
406abb:	e8 f0 bf ff ff       	call   0x402ab0
406ac0:	59                   	pop    %ecx
406ac1:	50                   	push   %eax
406ac2:	e8 17 5f 00 00       	call   0x40c9de
406ac7:	83 c4 0c             	add    $0xc,%esp
406aca:	3b c7                	cmp    %edi,%eax
406acc:	75 0f                	jne    0x406add
406ace:	8b 46 0c             	mov    0xc(%esi),%eax
406ad1:	84 c0                	test   %al,%al
406ad3:	79 0f                	jns    0x406ae4
406ad5:	83 e0 fd             	and    $0xfffffffd,%eax
406ad8:	89 46 0c             	mov    %eax,0xc(%esi)
406adb:	eb 07                	jmp    0x406ae4
406add:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
406ae1:	83 cb ff             	or     $0xffffffff,%ebx
406ae4:	5f                   	pop    %edi
406ae5:	8b 46 08             	mov    0x8(%esi),%eax
406ae8:	83 66 04 00          	andl   $0x0,0x4(%esi)