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
406a25:	46                   	inc    %esi
406a26:	3b 4d 08             	cmp    0x8(%ebp),%ecx
406a29:	72 e3                	jb     0x406a0e
406a2b:	8d 56 01             	lea    0x1(%esi),%edx
406a2e:	8b c2                	mov    %edx,%eax
406a30:	5e                   	pop    %esi
406a31:	5b                   	pop    %ebx
406a32:	59                   	pop    %ecx
406a33:	59                   	pop    %ecx
406a34:	5d                   	pop    %ebp
406a35:	c2 04 00             	ret    $0x4
406a38:	55                   	push   %ebp
406a39:	8b ec                	mov    %esp,%ebp
406a3b:	83 c4 f0             	add    $0xfffffff0,%esp
406a3e:	53                   	push   %ebx
406a3f:	56                   	push   %esi
406a40:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406a43:	89 55 f8             	mov    %edx,-0x8(%ebp)
406a46:	89 45 fc             	mov    %eax,-0x4(%ebp)
406a49:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
406a4d:	75 0a                	jne    0x406a59
406a4f:	33 c0                	xor    %eax,%eax
406a51:	89 45 f0             	mov    %eax,-0x10(%ebp)
406a54:	e9 15 01 00 00       	jmp    0x406b6e
406a59:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
406a60:	33 c0                	xor    %eax,%eax
406a62:	33 f6                	xor    %esi,%esi
406a64:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406a68:	0f 84 a9 00 00 00    	je     0x406b17
406a6e:	e9 82 00 00 00       	jmp    0x406af5
406a73:	8b 55 f4             	mov    -0xc(%ebp),%edx
406a76:	33 c9                	xor    %ecx,%ecx
406a78:	8a 0c 32             	mov    (%edx,%esi,1),%cl
406a7b:	46                   	inc    %esi
406a7c:	f6 c1 80             	test   $0x80,%cl
406a7f:	74 6c                	je     0x406aed
406a81:	83 e1 3f             	and    $0x3f,%ecx
406a84:	3b 75 08             	cmp    0x8(%ebp),%esi
406a87:	0f 87 e1 00 00 00    	ja     0x406b6e
406a8d:	f6 c1 20             	test   $0x20,%cl
406a90:	74 2e                	je     0x406ac0
406a92:	8b 55 f4             	mov    -0xc(%ebp),%edx
406a95:	8a 14 32             	mov    (%edx,%esi,1),%dl
406a98:	46                   	inc    %esi
406a99:	8b da                	mov    %edx,%ebx
406a9b:	80 e3 c0             	and    $0xc0,%bl
406a9e:	80 fb 80             	cmp    $0x80,%bl
406aa1:	0f 85 c7 00 00 00    	jne    0x406b6e
406aa7:	3b 75 08             	cmp    0x8(%ebp),%esi
406aaa:	0f 87 be 00 00 00    	ja     0x406b6e
406ab0:	80 e2 3f             	and    $0x3f,%dl
406ab3:	81 e2 ff 00 00 00    	and    $0xff,%edx
406ab9:	c1 e1 06             	shl    $0x6,%ecx
406abc:	0b d1                	or     %ecx,%edx
406abe:	8b ca                	mov    %edx,%ecx
406ac0:	8b 55 f4             	mov    -0xc(%ebp),%edx
406ac3:	8a 14 32             	mov    (%edx,%esi,1),%dl
406ac6:	46                   	inc    %esi
406ac7:	8b da                	mov    %edx,%ebx
406ac9:	80 e3 c0             	and    $0xc0,%bl
406acc:	80 fb 80             	cmp    $0x80,%bl
406acf:	0f 85 99 00 00 00    	jne    0x406b6e
406ad5:	80 e2 3f             	and    $0x3f,%dl
406ad8:	81 e2 ff 00 00 00    	and    $0xff,%edx
406ade:	c1 e1 06             	shl    $0x6,%ecx
406ae1:	66 0b d1             	or     %cx,%dx
406ae4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406ae7:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
406aeb:	eb 07                	jmp    0x406af4
406aed:	8b 55 fc             	mov    -0x4(%ebp),%edx
406af0:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
406af4:	40                   	inc    %eax
406af5:	3b 75 08             	cmp    0x8(%ebp),%esi
406af8:	73 09                	jae    0x406b03
406afa:	3b 45 f8             	cmp    -0x8(%ebp),%eax
406afd:	0f 82 70 ff ff ff    	jb     0x406a73
406b03:	3b 45 f8             	cmp    -0x8(%ebp),%eax
406b06:	72 04                	jb     0x406b0c
406b08:	8b 45 f8             	mov    -0x8(%ebp),%eax
406b0b:	48                   	dec    %eax
406b0c:	8b 55 fc             	mov    -0x4(%ebp),%edx
406b0f:	66 c7 04 42 00 00    	movw   $0x0,(%edx,%eax,2)
406b15:	eb 53                	jmp    0x406b6a
406b17:	3b 75 08             	cmp    0x8(%ebp),%esi
406b1a:	77 4e                	ja     0x406b6a
406b1c:	8b 55 f4             	mov    -0xc(%ebp),%edx
406b1f:	8a 14 32             	mov    (%edx,%esi,1),%dl
406b22:	46                   	inc    %esi
406b23:	f6 c2 80             	test   $0x80,%dl
406b26:	74 3c                	je     0x406b64
406b28:	8b ca                	mov    %edx,%ecx
406b2a:	80 e1 f0             	and    $0xf0,%cl
406b2d:	80 f9 f0             	cmp    $0xf0,%cl
406b30:	74 3c                	je     0x406b6e
406b32:	f6 c2 40             	test   $0x40,%dl
406b35:	74 37                	je     0x406b6e
406b37:	3b 75 08             	cmp    0x8(%ebp),%esi
406b3a:	77 32                	ja     0x406b6e
406b3c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406b3f:	8a 0c 31             	mov    (%ecx,%esi,1),%cl
406b42:	80 e1 c0             	and    $0xc0,%cl
406b45:	80 f9 80             	cmp    $0x80,%cl
406b48:	75 24                	jne    0x406b6e
406b4a:	46                   	inc    %esi
406b4b:	3b 75 08             	cmp    0x8(%ebp),%esi
406b4e:	77 1e                	ja     0x406b6e
406b50:	f6 c2 20             	test   $0x20,%dl
406b53:	74 0e                	je     0x406b63
406b55:	8b 55 f4             	mov    -0xc(%ebp),%edx
406b58:	8a 14 32             	mov    (%edx,%esi,1),%dl
406b5b:	80 e2 c0             	and    $0xc0,%dl
406b5e:	80 fa 80             	cmp    $0x80,%dl
406b61:	75 0b                	jne    0x406b6e
406b63:	46                   	inc    %esi
406b64:	40                   	inc    %eax
406b65:	3b 75 08             	cmp    0x8(%ebp),%esi
406b68:	76 b2                	jbe    0x406b1c
406b6a:	40                   	inc    %eax
406b6b:	89 45 f0             	mov    %eax,-0x10(%ebp)
406b6e:	8b 45 f0             	mov    -0x10(%ebp),%eax
406b71:	5e                   	pop    %esi
406b72:	5b                   	pop    %ebx
406b73:	8b e5                	mov    %ebp,%esp
406b75:	5d                   	pop    %ebp
406b76:	c2 04 00             	ret    $0x4
406b79:	8d 40 00             	lea    0x0(%eax),%eax
406b7c:	55                   	push   %ebp
406b7d:	8b ec                	mov    %esp,%ebp
406b7f:	6a 00                	push   $0x0
406b81:	53                   	push   %ebx
406b82:	56                   	push   %esi
406b83:	8b f2                	mov    %edx,%esi
406b85:	8b d8                	mov    %eax,%ebx
406b87:	33 c0                	xor    %eax,%eax
406b89:	55                   	push   %ebp
406b8a:	68 1b 6c 40 00       	push   $0x406c1b
406b8f:	64 ff 30             	push   %fs:(%eax)
406b92:	64 89 20             	mov    %esp,%fs:(%eax)
406b95:	8b c6                	mov    %esi,%eax
406b97:	e8 cc dc ff ff       	call   0x404868
406b9c:	8b c3                	mov    %ebx,%eax
406b9e:	33 d2                	xor    %edx,%edx
406ba0:	e8 83 e6 ff ff       	call   0x405228
406ba5:	74 5e                	je     0x406c05
406ba7:	8b c3                	mov    %ebx,%eax
406ba9:	e8 62 e5 ff ff       	call   0x405110
406bae:	8d 14 40             	lea    (%eax,%eax,2),%edx
406bb1:	8d 45 fc             	lea    -0x4(%ebp),%eax
406bb4:	e8 eb e2 ff ff       	call   0x404ea4
406bb9:	8b c3                	mov    %ebx,%eax
406bbb:	e8 50 e5 ff ff       	call   0x405110
406bc0:	50                   	push   %eax
406bc1:	8b 45 fc             	mov    -0x4(%ebp),%eax
406bc4:	e8 57 df ff ff       	call   0x404b20
406bc9:	40                   	inc    %eax
406bca:	50                   	push   %eax
406bcb:	8b c3                	mov    %ebx,%eax
406bcd:	e8 2e e5 ff ff       	call   0x405100
406bd2:	50                   	push   %eax
406bd3:	8b 45 fc             	mov    -0x4(%ebp),%eax
406bd6:	e8 3d e1 ff ff       	call   0x404d18
406bdb:	59                   	pop    %ecx
406bdc:	5a                   	pop    %edx
406bdd:	e8 7a fd ff ff       	call   0x40695c
406be2:	85 c0                	test   %eax,%eax
406be4:	7e 0d                	jle    0x406bf3
406be6:	8b d0                	mov    %eax,%edx
406be8:	4a                   	dec    %edx
406be9:	8d 45 fc             	lea    -0x4(%ebp),%eax
406bec:	e8 b3 e2 ff ff       	call   0x404ea4
406bf1:	eb 08                	jmp    0x406bfb
406bf3:	8d 45 fc             	lea    -0x4(%ebp),%eax
406bf6:	e8 6d dc ff ff       	call   0x404868
406bfb:	8b c6                	mov    %esi,%eax
406bfd:	8b 55 fc             	mov    -0x4(%ebp),%edx