40d92a:	eb 0c                	jmp    0x40d938
40d92c:	33 c9                	xor    %ecx,%ecx
40d92e:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40d932:	8b b5 a0 fb ff ff    	mov    -0x460(%ebp),%esi
40d938:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
40d93e:	e8 60 1b 00 00       	call   0x40f4a3
40d943:	8b c6                	mov    %esi,%eax
40d945:	5f                   	pop    %edi
40d946:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d949:	5e                   	pop    %esi
40d94a:	33 cd                	xor    %ebp,%ecx
40d94c:	5b                   	pop    %ebx
40d94d:	e8 55 c3 ff ff       	call   0x409ca7
40d952:	c9                   	leave
40d953:	c3                   	ret
40d954:	8b ff                	mov    %edi,%edi
40d956:	55                   	push   %ebp
40d957:	8b ec                	mov    %esp,%ebp
40d959:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40d95d:	57                   	push   %edi
40d95e:	75 23                	jne    0x40d983
40d960:	8b 45 1c             	mov    0x1c(%ebp),%eax
40d963:	50                   	push   %eax
40d964:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40d968:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
40d96f:	33 c0                	xor    %eax,%eax
40d971:	50                   	push   %eax
40d972:	50                   	push   %eax
40d973:	50                   	push   %eax
40d974:	50                   	push   %eax
40d975:	50                   	push   %eax
40d976:	e8 f6 f9 ff ff       	call   0x40d371
40d97b:	83 c4 18             	add    $0x18,%esp
40d97e:	83 c8 ff             	or     $0xffffffff,%eax
40d981:	eb 68                	jmp    0x40d9eb
40d983:	56                   	push   %esi
40d984:	8b 75 10             	mov    0x10(%ebp),%esi
40d987:	85 f6                	test   %esi,%esi
40d989:	74 3e                	je     0x40d9c9
40d98b:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40d98f:	76 38                	jbe    0x40d9c9
40d991:	ff 75 20             	push   0x20(%ebp)
40d994:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40d997:	57                   	push   %edi
40d998:	ff 75 18             	push   0x18(%ebp)
40d99b:	ff 75 14             	push   0x14(%ebp)
40d99e:	56                   	push   %esi
40d99f:	ff 75 0c             	push   0xc(%ebp)
40d9a2:	ff 75 08             	push   0x8(%ebp)
40d9a5:	e8 30 fb ff ff       	call   0x40d4da
40d9aa:	83 c4 1c             	add    $0x1c,%esp
40d9ad:	85 c0                	test   %eax,%eax
40d9af:	79 05                	jns    0x40d9b6
40d9b1:	33 c9                	xor    %ecx,%ecx
40d9b3:	66 89 0e             	mov    %cx,(%esi)
40d9b6:	83 f8 fe             	cmp    $0xfffffffe,%eax
40d9b9:	75 2f                	jne    0x40d9ea
40d9bb:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
40d9bf:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
40d9c6:	57                   	push   %edi
40d9c7:	eb 0f                	jmp    0x40d9d8
40d9c9:	8b 45 1c             	mov    0x1c(%ebp),%eax
40d9cc:	50                   	push   %eax
40d9cd:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40d9d1:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
40d9d8:	33 c0                	xor    %eax,%eax
40d9da:	50                   	push   %eax
40d9db:	50                   	push   %eax
40d9dc:	50                   	push   %eax
40d9dd:	50                   	push   %eax
40d9de:	50                   	push   %eax
40d9df:	e8 8d f9 ff ff       	call   0x40d371
40d9e4:	83 c4 18             	add    $0x18,%esp
40d9e7:	83 c8 ff             	or     $0xffffffff,%eax
40d9ea:	5e                   	pop    %esi
40d9eb:	5f                   	pop    %edi
40d9ec:	5d                   	pop    %ebp
40d9ed:	c3                   	ret
40d9ee:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
40d9f5:	75 06                	jne    0x40d9fd
40d9f7:	b8 00 02 00 00       	mov    $0x200,%eax
40d9fc:	c3                   	ret
40d9fd:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
40da03:	d1 e8                	shr    $1,%eax
40da05:	c3                   	ret
40da06:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
40da0d:	75 06                	jne    0x40da15
40da0f:	b8 00 01 00 00       	mov    $0x100,%eax
40da14:	c3                   	ret
40da15:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
40da1b:	c1 e8 02             	shr    $0x2,%eax
40da1e:	c3                   	ret
40da1f:	8b ff                	mov    %edi,%edi
40da21:	55                   	push   %ebp
40da22:	8b ec                	mov    %esp,%ebp
40da24:	51                   	push   %ecx
40da25:	56                   	push   %esi
40da26:	8b 75 08             	mov    0x8(%ebp),%esi
40da29:	57                   	push   %edi
40da2a:	8b f9                	mov    %ecx,%edi
40da2c:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40da32:	76 12                	jbe    0x40da46
40da34:	8b 45 0c             	mov    0xc(%ebp),%eax
40da37:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40da3b:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
40da42:	32 c0                	xor    %al,%al
40da44:	eb 54                	jmp    0x40da9a
40da46:	53                   	push   %ebx
40da47:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
40da4d:	03 f6                	add    %esi,%esi
40da4f:	83 3b 00             	cmpl   $0x0,(%ebx)
40da52:	75 08                	jne    0x40da5c
40da54:	81 fe 00 04 00 00    	cmp    $0x400,%esi
40da5a:	76 3b                	jbe    0x40da97
40da5c:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
40da62:	76 33                	jbe    0x40da97
40da64:	56                   	push   %esi
40da65:	e8 c6 91 ff ff       	call   0x406c30
40da6a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40da6d:	59                   	pop    %ecx
40da6e:	85 c0                	test   %eax,%eax
40da70:	75 0b                	jne    0x40da7d
40da72:	50                   	push   %eax
40da73:	e8 98 91 ff ff       	call   0x406c10
40da78:	59                   	pop    %ecx
40da79:	32 c0                	xor    %al,%al
40da7b:	eb 1c                	jmp    0x40da99
40da7d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40da80:	8b cb                	mov    %ebx,%ecx
40da82:	50                   	push   %eax
40da83:	e8 35 1a 00 00       	call   0x40f4bd
40da88:	ff 75 fc             	push   -0x4(%ebp)
40da8b:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
40da91:	e8 7a 91 ff ff       	call   0x406c10
40da96:	59                   	pop    %ecx
40da97:	b0 01                	mov    $0x1,%al
40da99:	5b                   	pop    %ebx
40da9a:	5f                   	pop    %edi
40da9b:	5e                   	pop    %esi
40da9c:	c9                   	leave
40da9d:	c2 08 00             	ret    $0x8
40daa0:	8b ff                	mov    %edi,%edi
40daa2:	55                   	push   %ebp
40daa3:	8b ec                	mov    %esp,%ebp
40daa5:	51                   	push   %ecx
40daa6:	56                   	push   %esi
40daa7:	8b 75 08             	mov    0x8(%ebp),%esi
40daaa:	57                   	push   %edi
40daab:	8b f9                	mov    %ecx,%edi
40daad:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
40dab3:	76 12                	jbe    0x40dac7
40dab5:	8b 45 0c             	mov    0xc(%ebp),%eax
40dab8:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40dabc:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
40dac3:	32 c0                	xor    %al,%al
40dac5:	eb 55                	jmp    0x40db1c
40dac7:	53                   	push   %ebx
40dac8:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
40dace:	c1 e6 02             	shl    $0x2,%esi
40dad1:	83 3b 00             	cmpl   $0x0,(%ebx)
40dad4:	75 08                	jne    0x40dade
40dad6:	81 fe 00 04 00 00    	cmp    $0x400,%esi
40dadc:	76 3b                	jbe    0x40db19
40dade:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
40dae4:	76 33                	jbe    0x40db19
40dae6:	56                   	push   %esi
40dae7:	e8 44 91 ff ff       	call   0x406c30
40daec:	89 45 fc             	mov    %eax,-0x4(%ebp)
40daef:	59                   	pop    %ecx
40daf0:	85 c0                	test   %eax,%eax
40daf2:	75 0b                	jne    0x40daff
40daf4:	50                   	push   %eax
40daf5:	e8 16 91 ff ff       	call   0x406c10
40dafa:	59                   	pop    %ecx
40dafb:	32 c0                	xor    %al,%al
40dafd:	eb 1c                	jmp    0x40db1b
40daff:	8d 45 fc             	lea    -0x4(%ebp),%eax
40db02:	8b cb                	mov    %ebx,%ecx
40db04:	50                   	push   %eax
40db05:	e8 b3 19 00 00       	call   0x40f4bd
40db0a:	ff 75 fc             	push   -0x4(%ebp)
40db0d:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
40db13:	e8 f8 90 ff ff       	call   0x406c10
40db18:	59                   	pop    %ecx
40db19:	b0 01                	mov    $0x1,%al
40db1b:	5b                   	pop    %ebx
40db1c:	5f                   	pop    %edi
40db1d:	5e                   	pop    %esi
40db1e:	c9                   	leave
40db1f:	c2 08 00             	ret    $0x8
40db22:	8b ff                	mov    %edi,%edi
40db24:	55                   	push   %ebp
40db25:	8b ec                	mov    %esp,%ebp
40db27:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
40db2b:	75 25                	jne    0x40db52
40db2d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40db31:	74 0f                	je     0x40db42
40db33:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
40db37:	74 0d                	je     0x40db46
40db39:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
40db40:	77 10                	ja     0x40db52
40db42:	32 c0                	xor    %al,%al
40db44:	5d                   	pop    %ebp
40db45:	c3                   	ret
40db46:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
40db4d:	0f 97 c0             	seta   %al
40db50:	5d                   	pop    %ebp
40db51:	c3                   	ret
40db52:	b0 01                	mov    $0x1,%al
40db54:	5d                   	pop    %ebp
40db55:	c3                   	ret
40db56:	8b ff                	mov    %edi,%edi
40db58:	55                   	push   %ebp
40db59:	8b ec                	mov    %esp,%ebp
40db5b:	8b 45 14             	mov    0x14(%ebp),%eax
40db5e:	48                   	dec    %eax
40db5f:	83 e8 01             	sub    $0x1,%eax
40db62:	74 1f                	je     0x40db83
40db64:	83 e8 01             	sub    $0x1,%eax
40db67:	74 16                	je     0x40db7f
40db69:	83 e8 09             	sub    $0x9,%eax
40db6c:	74 11                	je     0x40db7f
40db6e:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
40db72:	74 0f                	je     0x40db83
40db74:	8a 45 10             	mov    0x10(%ebp),%al
40db77:	3c 63                	cmp    $0x63,%al
40db79:	74 08                	je     0x40db83
40db7b:	3c 73                	cmp    $0x73,%al
40db7d:	74 04                	je     0x40db83
40db7f:	b0 01                	mov    $0x1,%al
40db81:	5d                   	pop    %ebp
40db82:	c3                   	ret
40db83:	32 c0                	xor    %al,%al
40db85:	5d                   	pop    %ebp
40db86:	c3                   	ret
40db87:	8b ff                	mov    %edi,%edi
40db89:	55                   	push   %ebp
40db8a:	8b ec                	mov    %esp,%ebp
40db8c:	8b 45 14             	mov    0x14(%ebp),%eax
40db8f:	48                   	dec    %eax
40db90:	83 e8 01             	sub    $0x1,%eax
40db93:	74 3c                	je     0x40dbd1
40db95:	83 e8 01             	sub    $0x1,%eax
40db98:	74 33                	je     0x40dbcd
40db9a:	83 e8 09             	sub    $0x9,%eax
40db9d:	74 2e                	je     0x40dbcd
40db9f:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
40dba3:	74 28                	je     0x40dbcd
40dba5:	8b 45 08             	mov    0x8(%ebp),%eax
40dba8:	83 e0 04             	and    $0x4,%eax
40dbab:	83 c8 00             	or     $0x0,%eax
40dbae:	6a 01                	push   $0x1
40dbb0:	58                   	pop    %eax
40dbb1:	74 04                	je     0x40dbb7
40dbb3:	8a c8                	mov    %al,%cl
40dbb5:	eb 02                	jmp    0x40dbb9
40dbb7:	32 c9                	xor    %cl,%cl
40dbb9:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
40dbbe:	74 07                	je     0x40dbc7
40dbc0:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
40dbc5:	75 02                	jne    0x40dbc9
40dbc7:	32 c0                	xor    %al,%al
40dbc9:	32 c1                	xor    %cl,%al
40dbcb:	5d                   	pop    %ebp
40dbcc:	c3                   	ret
40dbcd:	b0 01                	mov    $0x1,%al
40dbcf:	5d                   	pop    %ebp
40dbd0:	c3                   	ret
40dbd1:	32 c0                	xor    %al,%al
40dbd3:	5d                   	pop    %ebp
40dbd4:	c3                   	ret
40dbd5:	8b ff                	mov    %edi,%edi
40dbd7:	55                   	push   %ebp
40dbd8:	8b ec                	mov    %esp,%ebp
40dbda:	8b 45 08             	mov    0x8(%ebp),%eax
40dbdd:	8b 4d 10             	mov    0x10(%ebp),%ecx
40dbe0:	8b 55 0c             	mov    0xc(%ebp),%edx
40dbe3:	89 10                	mov    %edx,(%eax)
40dbe5:	89 48 04             	mov    %ecx,0x4(%eax)
40dbe8:	85 c9                	test   %ecx,%ecx
40dbea:	74 02                	je     0x40dbee
40dbec:	89 11                	mov    %edx,(%ecx)
40dbee:	5d                   	pop    %ebp
40dbef:	c3                   	ret
40dbf0:	8b ff                	mov    %edi,%edi
40dbf2:	55                   	push   %ebp
40dbf3:	8b ec                	mov    %esp,%ebp
40dbf5:	83 ec 14             	sub    $0x14,%esp
40dbf8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40dbfb:	53                   	push   %ebx
40dbfc:	56                   	push   %esi
40dbfd:	e8 19 3d 00 00       	call   0x41191b
40dc02:	84 c0                	test   %al,%al
40dc04:	74 2f                	je     0x40dc35
40dc06:	8b 75 14             	mov    0x14(%ebp),%esi
40dc09:	85 f6                	test   %esi,%esi
40dc0b:	74 3d                	je     0x40dc4a
40dc0d:	83 fe 02             	cmp    $0x2,%esi
40dc10:	7c 05                	jl     0x40dc17
40dc12:	83 fe 24             	cmp    $0x24,%esi
40dc15:	7e 33                	jle    0x40dc4a
40dc17:	8b 45 08             	mov    0x8(%ebp),%eax
40dc1a:	50                   	push   %eax
40dc1b:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40dc1f:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
40dc26:	33 c0                	xor    %eax,%eax
40dc28:	50                   	push   %eax
40dc29:	50                   	push   %eax
40dc2a:	50                   	push   %eax
40dc2b:	50                   	push   %eax
40dc2c:	50                   	push   %eax
40dc2d:	e8 3f f7 ff ff       	call   0x40d371
40dc32:	83 c4 18             	add    $0x18,%esp
40dc35:	8b 4d 10             	mov    0x10(%ebp),%ecx
40dc38:	85 c9                	test   %ecx,%ecx
40dc3a:	0f 84 52 01 00 00    	je     0x40dd92
40dc40:	8b 45 0c             	mov    0xc(%ebp),%eax
40dc43:	89 01                	mov    %eax,(%ecx)
40dc45:	e9 48 01 00 00       	jmp    0x40dd92
40dc4a:	8b 45 0c             	mov    0xc(%ebp),%eax
40dc4d:	33 c9                	xor    %ecx,%ecx
40dc4f:	57                   	push   %edi
40dc50:	89 45 ec             	mov    %eax,-0x14(%ebp)
40dc53:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40dc56:	8a 18                	mov    (%eax),%bl
40dc58:	8d 78 01             	lea    0x1(%eax),%edi
40dc5b:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
40dc5f:	88 5d fc             	mov    %bl,-0x4(%ebp)
40dc62:	89 7d 0c             	mov    %edi,0xc(%ebp)
40dc65:	89 45 f8             	mov    %eax,-0x8(%ebp)
40dc68:	80 fb 2d             	cmp    $0x2d,%bl
40dc6b:	75 08                	jne    0x40dc75
40dc6d:	83 c8 02             	or     $0x2,%eax
40dc70:	89 45 f8             	mov    %eax,-0x8(%ebp)
40dc73:	eb 05                	jmp    0x40dc7a
40dc75:	80 fb 2b             	cmp    $0x2b,%bl
40dc78:	75 09                	jne    0x40dc83
40dc7a:	8a 1f                	mov    (%edi),%bl
40dc7c:	47                   	inc    %edi
40dc7d:	88 5d fc             	mov    %bl,-0x4(%ebp)
40dc80:	89 7d 0c             	mov    %edi,0xc(%ebp)
40dc83:	85 f6                	test   %esi,%esi
40dc85:	74 05                	je     0x40dc8c
40dc87:	83 fe 10             	cmp    $0x10,%esi
40dc8a:	75 75                	jne    0x40dd01
40dc8c:	8a c3                	mov    %bl,%al
40dc8e:	2c 30                	sub    $0x30,%al
40dc90:	3c 09                	cmp    $0x9,%al
40dc92:	77 08                	ja     0x40dc9c
40dc94:	0f be c3             	movsbl %bl,%eax