4066d8:	53                   	push   %ebx
4066d9:	8b d8                	mov    %eax,%ebx
4066db:	b8 08 00 00 00       	mov    $0x8,%eax
4066e0:	e8 c7 c0 ff ff       	call   0x4027ac
4066e5:	8b 15 2c a0 68 00    	mov    0x68a02c,%edx
4066eb:	89 10                	mov    %edx,(%eax)
4066ed:	89 58 04             	mov    %ebx,0x4(%eax)
4066f0:	a3 2c a0 68 00       	mov    %eax,0x68a02c
4066f5:	5b                   	pop    %ebx
4066f6:	c3                   	ret
4066f7:	90                   	nop
4066f8:	53                   	push   %ebx
4066f9:	56                   	push   %esi
4066fa:	8b 35 2c a0 68 00    	mov    0x68a02c,%esi
406700:	85 f6                	test   %esi,%esi
406702:	74 22                	je     0x406726
406704:	8b 56 04             	mov    0x4(%esi),%edx
406707:	3b d0                	cmp    %eax,%edx
406709:	75 1b                	jne    0x406726
40670b:	a1 2c a0 68 00       	mov    0x68a02c,%eax
406710:	8b 00                	mov    (%eax),%eax
406712:	a3 2c a0 68 00       	mov    %eax,0x68a02c
406717:	ba 08 00 00 00       	mov    $0x8,%edx
40671c:	8b c6                	mov    %esi,%eax
40671e:	e8 a9 c0 ff ff       	call   0x4027cc
406723:	5e                   	pop    %esi
406724:	5b                   	pop    %ebx
406725:	c3                   	ret
406726:	8b d6                	mov    %esi,%edx
406728:	85 d2                	test   %edx,%edx
40672a:	74 27                	je     0x406753
40672c:	8b 0a                	mov    (%edx),%ecx
40672e:	85 c9                	test   %ecx,%ecx
406730:	74 1b                	je     0x40674d
406732:	8b 59 04             	mov    0x4(%ecx),%ebx
406735:	3b d8                	cmp    %eax,%ebx
406737:	75 14                	jne    0x40674d
406739:	8b f1                	mov    %ecx,%esi
40673b:	8b 01                	mov    (%ecx),%eax
40673d:	89 02                	mov    %eax,(%edx)
40673f:	ba 08 00 00 00       	mov    $0x8,%edx
406744:	8b c6                	mov    %esi,%eax
406746:	e8 81 c0 ff ff       	call   0x4027cc
40674b:	eb 06                	jmp    0x406753
40674d:	8b 12                	mov    (%edx),%edx
40674f:	85 d2                	test   %edx,%edx
406751:	75 d9                	jne    0x40672c
406753:	5e                   	pop    %esi
406754:	5b                   	pop    %ebx
406755:	c3                   	ret
406756:	8b c0                	mov    %eax,%eax
406758:	55                   	push   %ebp
406759:	8b ec                	mov    %esp,%ebp
40675b:	83 c4 f8             	add    $0xfffffff8,%esp
40675e:	53                   	push   %ebx
40675f:	56                   	push   %esi
406760:	57                   	push   %edi
406761:	89 45 fc             	mov    %eax,-0x4(%ebp)
406764:	a1 2c a0 68 00       	mov    0x68a02c,%eax
406769:	89 45 f8             	mov    %eax,-0x8(%ebp)
40676c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
406770:	74 39                	je     0x4067ab
406772:	33 c0                	xor    %eax,%eax
406774:	55                   	push   %ebp
406775:	68 93 67 40 00       	push   $0x406793
40677a:	64 ff 30             	push   %fs:(%eax)
40677d:	64 89 20             	mov    %esp,%fs:(%eax)
406780:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406783:	8b 45 fc             	mov    -0x4(%ebp),%eax
406786:	ff 53 04             	call   *0x4(%ebx)
406789:	33 c0                	xor    %eax,%eax
40678b:	5a                   	pop    %edx
40678c:	59                   	pop    %ecx
40678d:	59                   	pop    %ecx
40678e:	64 89 10             	mov    %edx,%fs:(%eax)
406791:	eb 0a                	jmp    0x40679d
406793:	e9 c0 d7 ff ff       	jmp    0x403f58
406798:	e8 23 db ff ff       	call   0x4042c0
40679d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4067a0:	8b 00                	mov    (%eax),%eax
4067a2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4067a5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4067a9:	75 c7                	jne    0x406772
4067ab:	5f                   	pop    %edi
4067ac:	5e                   	pop    %esi
4067ad:	5b                   	pop    %ebx
4067ae:	59                   	pop    %ecx
4067af:	59                   	pop    %ecx
4067b0:	5d                   	pop    %ebp
4067b1:	c3                   	ret
4067b2:	8b c0                	mov    %eax,%eax
4067b4:	8b 15 28 a0 68 00    	mov    0x68a028,%edx
4067ba:	89 10                	mov    %edx,(%eax)
4067bc:	a3 28 a0 68 00       	mov    %eax,0x68a028
4067c1:	c3                   	ret
4067c2:	8b c0                	mov    %eax,%eax
4067c4:	55                   	push   %ebp
4067c5:	8b ec                	mov    %esp,%ebp
4067c7:	51                   	push   %ecx
4067c8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4067cb:	33 d2                	xor    %edx,%edx
4067cd:	55                   	push   %ebp
4067ce:	68 28 68 40 00       	push   $0x406828
4067d3:	64 ff 32             	push   %fs:(%edx)
4067d6:	64 89 22             	mov    %esp,%fs:(%edx)
4067d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4067dc:	8b 40 04             	mov    0x4(%eax),%eax
4067df:	e8 74 ff ff ff       	call   0x406758
4067e4:	33 c0                	xor    %eax,%eax
4067e6:	5a                   	pop    %edx
4067e7:	59                   	pop    %ecx
4067e8:	59                   	pop    %ecx
4067e9:	64 89 10             	mov    %edx,%fs:(%eax)
4067ec:	68 2f 68 40 00       	push   $0x40682f
4067f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4067f4:	3b 05 28 a0 68 00    	cmp    0x68a028,%eax
4067fa:	75 0c                	jne    0x406808
4067fc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4067ff:	8b 00                	mov    (%eax),%eax
406801:	a3 28 a0 68 00       	mov    %eax,0x68a028
406806:	eb 1f                	jmp    0x406827
406808:	a1 28 a0 68 00       	mov    0x68a028,%eax
40680d:	85 c0                	test   %eax,%eax
40680f:	74 16                	je     0x406827
406811:	8b 10                	mov    (%eax),%edx
406813:	3b 55 fc             	cmp    -0x4(%ebp),%edx
406816:	75 09                	jne    0x406821
406818:	8b 55 fc             	mov    -0x4(%ebp),%edx
40681b:	8b 12                	mov    (%edx),%edx
40681d:	89 10                	mov    %edx,(%eax)
40681f:	eb 06                	jmp    0x406827
406821:	8b 00                	mov    (%eax),%eax
406823:	85 c0                	test   %eax,%eax
406825:	75 ea                	jne    0x406811
406827:	c3                   	ret
406828:	e9 df d9 ff ff       	jmp    0x40420c
40682d:	eb c2                	jmp    0x4067f1
40682f:	59                   	pop    %ecx
406830:	5d                   	pop    %ebp
406831:	c3                   	ret
406832:	8b c0                	mov    %eax,%eax
406834:	8b 10                	mov    (%eax),%edx
406836:	85 d2                	test   %edx,%edx
406838:	74 0e                	je     0x406848
40683a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
406840:	50                   	push   %eax
406841:	52                   	push   %edx
406842:	8b 02                	mov    (%edx),%eax
406844:	ff 50 08             	call   *0x8(%eax)
406847:	58                   	pop    %eax
406848:	c3                   	ret
406849:	8d 40 00             	lea    0x0(%eax),%eax
40684c:	85 d2                	test   %edx,%edx
40684e:	74 19                	je     0x406869
406850:	52                   	push   %edx
406851:	50                   	push   %eax
406852:	8b 02                	mov    (%edx),%eax
406854:	52                   	push   %edx
406855:	ff 50 04             	call   *0x4(%eax)
406858:	58                   	pop    %eax
406859:	8b 08                	mov    (%eax),%ecx
40685b:	8f 00                	pop    (%eax)
40685d:	85 c9                	test   %ecx,%ecx
40685f:	75 01                	jne    0x406862
406861:	c3                   	ret
406862:	8b 01                	mov    (%ecx),%eax
406864:	51                   	push   %ecx
406865:	ff 50 08             	call   *0x8(%eax)
406868:	c3                   	ret
406869:	8b 08                	mov    (%eax),%ecx
40686b:	85 c9                	test   %ecx,%ecx
40686d:	89 10                	mov    %edx,(%eax)
40686f:	74 06                	je     0x406877
406871:	8b 01                	mov    (%ecx),%eax
406873:	51                   	push   %ecx
406874:	ff 50 08             	call   *0x8(%eax)
406877:	c3                   	ret
406878:	85 d2                	test   %edx,%edx
40687a:	0f 84 b4 ff ff ff    	je     0x406834
406880:	50                   	push   %eax
406881:	51                   	push   %ecx
406882:	52                   	push   %edx
406883:	8b 08                	mov    (%eax),%ecx
406885:	85 c9                	test   %ecx,%ecx
406887:	74 09                	je     0x406892
406889:	51                   	push   %ecx
40688a:	8b 01                	mov    (%ecx),%eax
40688c:	ff 50 08             	call   *0x8(%eax)
40688f:	8b 14 24             	mov    (%esp),%edx
406892:	8b 02                	mov    (%edx),%eax
406894:	ff 10                	call   *(%eax)
406896:	85 c0                	test   %eax,%eax
406898:	74 07                	je     0x4068a1
40689a:	b0 17                	mov    $0x17,%al
40689c:	e9 67 c0 ff ff       	jmp    0x402908
4068a1:	c3                   	ret
4068a2:	8b c0                	mov    %eax,%eax
4068a4:	85 c0                	test   %eax,%eax
4068a6:	74 06                	je     0x4068ae
4068a8:	50                   	push   %eax
4068a9:	8b 00                	mov    (%eax),%eax
4068ab:	ff 50 04             	call   *0x4(%eax)
4068ae:	c3                   	ret
4068af:	90                   	nop
4068b0:	83 c0 04             	add    $0x4,%eax
4068b3:	50                   	push   %eax
4068b4:	e8 3f ab ff ff       	call   0x4013f8
4068b9:	c3                   	ret
4068ba:	8b c0                	mov    %eax,%eax
4068bc:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4068c0:	74 07                	je     0x4068c9
4068c2:	b0 02                	mov    $0x2,%al
4068c4:	e8 3f c0 ff ff       	call   0x402908
4068c9:	c3                   	ret
4068ca:	8b c0                	mov    %eax,%eax
4068cc:	e8 3f d1 ff ff       	call   0x403a10
4068d1:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
4068d8:	c3                   	ret
4068d9:	8d 40 00             	lea    0x0(%eax),%eax
4068dc:	55                   	push   %ebp
4068dd:	8b ec                	mov    %esp,%ebp
4068df:	53                   	push   %ebx
4068e0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4068e3:	8b 4d 10             	mov    0x10(%ebp),%ecx
4068e6:	8b 55 0c             	mov    0xc(%ebp),%edx
4068e9:	8b c3                	mov    %ebx,%eax
4068eb:	e8 3c d2 ff ff       	call   0x403b2c
4068f0:	84 c0                	test   %al,%al
4068f2:	74 04                	je     0x4068f8
4068f4:	33 c0                	xor    %eax,%eax
4068f6:	eb 05                	jmp    0x4068fd
4068f8:	b8 02 40 00 80       	mov    $0x80004002,%eax
4068fd:	5b                   	pop    %ebx
4068fe:	5d                   	pop    %ebp
4068ff:	c2 0c 00             	ret    $0xc
406902:	8b c0                	mov    %eax,%eax
406904:	55                   	push   %ebp
406905:	8b ec                	mov    %esp,%ebp
406907:	8b 45 08             	mov    0x8(%ebp),%eax
40690a:	83 c0 04             	add    $0x4,%eax
40690d:	50                   	push   %eax
40690e:	e8 dd aa ff ff       	call   0x4013f0
406913:	5d                   	pop    %ebp
406914:	c2 04 00             	ret    $0x4
406917:	90                   	nop
406918:	55                   	push   %ebp
406919:	8b ec                	mov    %esp,%ebp
40691b:	53                   	push   %ebx
40691c:	56                   	push   %esi
40691d:	8b 5d 08             	mov    0x8(%ebp),%ebx
406920:	8d 43 04             	lea    0x4(%ebx),%eax
406923:	50                   	push   %eax
406924:	e8 cf aa ff ff       	call   0x4013f8
406929:	8b f0                	mov    %eax,%esi
40692b:	85 f6                	test   %esi,%esi
40692d:	75 09                	jne    0x406938
40692f:	b2 01                	mov    $0x1,%dl
406931:	8b c3                	mov    %ebx,%eax
406933:	8b 08                	mov    (%eax),%ecx
406935:	ff 51 fc             	call   *-0x4(%ecx)
406938:	8b c6                	mov    %esi,%eax
40693a:	5e                   	pop    %esi
40693b:	5b                   	pop    %ebx
40693c:	5d                   	pop    %ebp
40693d:	c2 04 00             	ret    $0x4
406940:	85 c0                	test   %eax,%eax
406942:	79 16                	jns    0x40695a
406944:	8b 0d 20 80 6a 00    	mov    0x6a8020,%ecx
40694a:	85 c9                	test   %ecx,%ecx
40694c:	74 05                	je     0x406953
40694e:	8b 14 24             	mov    (%esp),%edx
406951:	ff d1                	call   *%ecx
406953:	b0 18                	mov    $0x18,%al
406955:	e9 ae bf ff ff       	jmp    0x402908
40695a:	c3                   	ret
40695b:	90                   	nop
40695c:	55                   	push   %ebp
40695d:	8b ec                	mov    %esp,%ebp
40695f:	83 c4 f8             	add    $0xfffffff8,%esp
406962:	53                   	push   %ebx
406963:	56                   	push   %esi
406964:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406967:	89 55 fc             	mov    %edx,-0x4(%ebp)
40696a:	33 d2                	xor    %edx,%edx
40696c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
406970:	0f 84 b8 00 00 00    	je     0x406a2e
406976:	33 f6                	xor    %esi,%esi
406978:	33 c9                	xor    %ecx,%ecx
40697a:	85 c0                	test   %eax,%eax
40697c:	0f 84 87 00 00 00    	je     0x406a09
406982:	eb 6c                	jmp    0x4069f0
406984:	8b 55 f8             	mov    -0x8(%ebp),%edx
406987:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
40698b:	41                   	inc    %ecx
40698c:	83 fa 7f             	cmp    $0x7f,%edx
40698f:	77 06                	ja     0x406997
406991:	88 14 30             	mov    %dl,(%eax,%esi,1)
406994:	46                   	inc    %esi
406995:	eb 59                	jmp    0x4069f0
406997:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
40699d:	76 31                	jbe    0x4069d0
40699f:	8d 5e 03             	lea    0x3(%esi),%ebx
4069a2:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4069a5:	77 53                	ja     0x4069fa
4069a7:	8b da                	mov    %edx,%ebx
4069a9:	c1 eb 0c             	shr    $0xc,%ebx
4069ac:	80 cb e0             	or     $0xe0,%bl
4069af:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4069b2:	8b da                	mov    %edx,%ebx
4069b4:	c1 eb 06             	shr    $0x6,%ebx
4069b7:	80 e3 3f             	and    $0x3f,%bl
4069ba:	80 cb 80             	or     $0x80,%bl
4069bd:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
4069c1:	80 e2 3f             	and    $0x3f,%dl
4069c4:	80 ca 80             	or     $0x80,%dl
4069c7:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
4069cb:	83 c6 03             	add    $0x3,%esi
4069ce:	eb 20                	jmp    0x4069f0
4069d0:	8d 5e 02             	lea    0x2(%esi),%ebx
4069d3:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4069d6:	77 22                	ja     0x4069fa
4069d8:	8b da                	mov    %edx,%ebx
4069da:	c1 eb 06             	shr    $0x6,%ebx
4069dd:	80 cb c0             	or     $0xc0,%bl
4069e0:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4069e3:	80 e2 3f             	and    $0x3f,%dl
4069e6:	80 ca 80             	or     $0x80,%dl
4069e9:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
4069ed:	83 c6 02             	add    $0x2,%esi
4069f0:	3b 4d 08             	cmp    0x8(%ebp),%ecx
4069f3:	73 05                	jae    0x4069fa
4069f5:	3b 75 fc             	cmp    -0x4(%ebp),%esi
4069f8:	72 8a                	jb     0x406984
4069fa:	3b 75 fc             	cmp    -0x4(%ebp),%esi
4069fd:	72 04                	jb     0x406a03
4069ff:	8b 75 fc             	mov    -0x4(%ebp),%esi
406a02:	4e                   	dec    %esi
406a03:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
406a07:	eb 22                	jmp    0x406a2b
406a09:	3b 4d 08             	cmp    0x8(%ebp),%ecx
406a0c:	73 1d                	jae    0x406a2b
406a0e:	8b 45 f8             	mov    -0x8(%ebp),%eax
406a11:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
406a15:	41                   	inc    %ecx
406a16:	83 fa 7f             	cmp    $0x7f,%edx
406a19:	76 0a                	jbe    0x406a25
406a1b:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
406a21:	76 01                	jbe    0x406a24
406a23:	46                   	inc    %esi
406a24:	46                   	inc    %esi