420e58:	33 cd                	xor    %ebp,%ecx
420e5a:	5b                   	pop    %ebx
420e5b:	e8 70 aa ff ff       	call   0x41b8d0
420e60:	c9                   	leave
420e61:	c3                   	ret
420e62:	8b ff                	mov    %edi,%edi
420e64:	55                   	push   %ebp
420e65:	8b ec                	mov    %esp,%ebp
420e67:	81 ec 74 04 00 00    	sub    $0x474,%esp
420e6d:	a1 14 40 45 00       	mov    0x454014,%eax
420e72:	33 c5                	xor    %ebp,%eax
420e74:	89 45 fc             	mov    %eax,-0x4(%ebp)
420e77:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
420e7b:	8b 45 10             	mov    0x10(%ebp),%eax
420e7e:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
420e81:	53                   	push   %ebx
420e82:	56                   	push   %esi
420e83:	8b 75 14             	mov    0x14(%ebp),%esi
420e86:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
420e8c:	75 23                	jne    0x420eb1
420e8e:	51                   	push   %ecx
420e8f:	33 db                	xor    %ebx,%ebx
420e91:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
420e95:	53                   	push   %ebx
420e96:	53                   	push   %ebx
420e97:	53                   	push   %ebx
420e98:	53                   	push   %ebx
420e99:	53                   	push   %ebx
420e9a:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
420ea1:	e8 4c fb ff ff       	call   0x4209f2
420ea6:	83 c4 18             	add    $0x18,%esp
420ea9:	83 c8 ff             	or     $0xffffffff,%eax
420eac:	e9 26 01 00 00       	jmp    0x420fd7
420eb1:	85 f6                	test   %esi,%esi
420eb3:	74 04                	je     0x420eb9
420eb5:	85 c0                	test   %eax,%eax
420eb7:	74 d5                	je     0x420e8e
420eb9:	8b 55 08             	mov    0x8(%ebp),%edx
420ebc:	33 c0                	xor    %eax,%eax
420ebe:	57                   	push   %edi
420ebf:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
420ec5:	33 db                	xor    %ebx,%ebx
420ec7:	ab                   	stos   %eax,%es:(%edi)
420ec8:	ab                   	stos   %eax,%es:(%edi)
420ec9:	ab                   	stos   %eax,%es:(%edi)
420eca:	ab                   	stos   %eax,%es:(%edi)
420ecb:	8b c2                	mov    %edx,%eax
420ecd:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
420ed3:	83 e0 02             	and    $0x2,%eax
420ed6:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
420edc:	0b c3                	or     %ebx,%eax
420ede:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
420ee4:	89 b5 94 fb ff ff    	mov    %esi,-0x46c(%ebp)
420eea:	89 9d 98 fb ff ff    	mov    %ebx,-0x468(%ebp)
420ef0:	75 0a                	jne    0x420efc
420ef2:	88 9d 9c fb ff ff    	mov    %bl,-0x464(%ebp)
420ef8:	85 ff                	test   %edi,%edi
420efa:	75 07                	jne    0x420f03
420efc:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
420f03:	ff 75 20             	push   0x20(%ebp)
420f06:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
420f0c:	51                   	push   %ecx
420f0d:	ff 75 18             	push   0x18(%ebp)
420f10:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
420f16:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
420f1c:	ff 75 0c             	push   0xc(%ebp)
420f1f:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
420f25:	52                   	push   %edx
420f26:	50                   	push   %eax
420f27:	e8 3b 1c 00 00       	call   0x422b67
420f2c:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
420f32:	89 5d f4             	mov    %ebx,-0xc(%ebp)
420f35:	e8 e2 21 00 00       	call   0x42311c
420f3a:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
420f40:	85 ff                	test   %edi,%edi
420f42:	74 7f                	je     0x420fc3
420f44:	8b 4d 08             	mov    0x8(%ebp),%ecx
420f47:	83 e1 01             	and    $0x1,%ecx
420f4a:	0b cb                	or     %ebx,%ecx
420f4c:	74 24                	je     0x420f72
420f4e:	85 f6                	test   %esi,%esi
420f50:	75 04                	jne    0x420f56
420f52:	85 c0                	test   %eax,%eax
420f54:	75 4c                	jne    0x420fa2
420f56:	8b 8d 98 fb ff ff    	mov    -0x468(%ebp),%ecx
420f5c:	3b ce                	cmp    %esi,%ecx
420f5e:	74 08                	je     0x420f68
420f60:	33 c0                	xor    %eax,%eax
420f62:	66 89 04 4f          	mov    %ax,(%edi,%ecx,2)
420f66:	eb 5b                	jmp    0x420fc3
420f68:	85 c0                	test   %eax,%eax
420f6a:	78 57                	js     0x420fc3
420f6c:	3b c6                	cmp    %esi,%eax
420f6e:	77 32                	ja     0x420fa2
420f70:	eb 51                	jmp    0x420fc3
420f72:	8b 8d 8c fb ff ff    	mov    -0x474(%ebp),%ecx
420f78:	0b cb                	or     %ebx,%ecx
420f7a:	74 22                	je     0x420f9e
420f7c:	85 f6                	test   %esi,%esi
420f7e:	74 43                	je     0x420fc3
420f80:	85 c0                	test   %eax,%eax
420f82:	79 07                	jns    0x420f8b
420f84:	33 c0                	xor    %eax,%eax
420f86:	66 89 07             	mov    %ax,(%edi)
420f89:	eb 38                	jmp    0x420fc3
420f8b:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
420f91:	3b c6                	cmp    %esi,%eax
420f93:	75 28                	jne    0x420fbd
420f95:	33 c0                	xor    %eax,%eax
420f97:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
420f9c:	eb 25                	jmp    0x420fc3
420f9e:	85 f6                	test   %esi,%esi
420fa0:	75 05                	jne    0x420fa7
420fa2:	83 ce ff             	or     $0xffffffff,%esi
420fa5:	eb 22                	jmp    0x420fc9
420fa7:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
420fad:	3b c6                	cmp    %esi,%eax
420faf:	75 0c                	jne    0x420fbd
420fb1:	33 c0                	xor    %eax,%eax
420fb3:	6a fe                	push   $0xfffffffe
420fb5:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
420fba:	5e                   	pop    %esi
420fbb:	eb 0c                	jmp    0x420fc9
420fbd:	33 c9                	xor    %ecx,%ecx
420fbf:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
420fc3:	8b b5 a0 fb ff ff    	mov    -0x460(%ebp),%esi
420fc9:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
420fcf:	e8 ff 1b 00 00       	call   0x422bd3
420fd4:	8b c6                	mov    %esi,%eax
420fd6:	5f                   	pop    %edi
420fd7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
420fda:	5e                   	pop    %esi
420fdb:	33 cd                	xor    %ebp,%ecx
420fdd:	5b                   	pop    %ebx
420fde:	e8 ed a8 ff ff       	call   0x41b8d0
420fe3:	c9                   	leave
420fe4:	c3                   	ret
420fe5:	8b ff                	mov    %edi,%edi
420fe7:	55                   	push   %ebp
420fe8:	8b ec                	mov    %esp,%ebp
420fea:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
420fee:	57                   	push   %edi
420fef:	75 23                	jne    0x421014
420ff1:	8b 45 1c             	mov    0x1c(%ebp),%eax
420ff4:	50                   	push   %eax
420ff5:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420ff9:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
421000:	33 c0                	xor    %eax,%eax
421002:	50                   	push   %eax
421003:	50                   	push   %eax
421004:	50                   	push   %eax
421005:	50                   	push   %eax
421006:	50                   	push   %eax
421007:	e8 e6 f9 ff ff       	call   0x4209f2
42100c:	83 c4 18             	add    $0x18,%esp
42100f:	83 c8 ff             	or     $0xffffffff,%eax
421012:	eb 6d                	jmp    0x421081
421014:	56                   	push   %esi
421015:	8b 75 10             	mov    0x10(%ebp),%esi
421018:	85 f6                	test   %esi,%esi
42101a:	74 43                	je     0x42105f
42101c:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
421020:	76 3d                	jbe    0x42105f
421022:	ff 75 20             	push   0x20(%ebp)
421025:	8b 7d 1c             	mov    0x1c(%ebp),%edi
421028:	57                   	push   %edi
421029:	ff 75 18             	push   0x18(%ebp)
42102c:	ff 75 14             	push   0x14(%ebp)
42102f:	56                   	push   %esi
421030:	ff 75 0c             	push   0xc(%ebp)
421033:	ff 75 08             	push   0x8(%ebp)
421036:	e8 b3 fc ff ff       	call   0x420cee
42103b:	8b c8                	mov    %eax,%ecx
42103d:	83 c4 1c             	add    $0x1c,%esp
421040:	33 c0                	xor    %eax,%eax
421042:	85 c9                	test   %ecx,%ecx
421044:	79 02                	jns    0x421048
421046:	88 06                	mov    %al,(%esi)
421048:	83 f9 fe             	cmp    $0xfffffffe,%ecx
42104b:	75 0e                	jne    0x42105b
42104d:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
421051:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
421058:	57                   	push   %edi
421059:	eb 15                	jmp    0x421070
42105b:	8b c1                	mov    %ecx,%eax
42105d:	eb 21                	jmp    0x421080
42105f:	8b 45 1c             	mov    0x1c(%ebp),%eax
421062:	50                   	push   %eax
421063:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421067:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
42106e:	33 c0                	xor    %eax,%eax
421070:	50                   	push   %eax
421071:	50                   	push   %eax
421072:	50                   	push   %eax
421073:	50                   	push   %eax
421074:	50                   	push   %eax
421075:	e8 78 f9 ff ff       	call   0x4209f2
42107a:	83 c4 18             	add    $0x18,%esp
42107d:	83 c8 ff             	or     $0xffffffff,%eax
421080:	5e                   	pop    %esi
421081:	5f                   	pop    %edi
421082:	5d                   	pop    %ebp
421083:	c3                   	ret
421084:	8b ff                	mov    %edi,%edi
421086:	55                   	push   %ebp
421087:	8b ec                	mov    %esp,%ebp
421089:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
42108d:	57                   	push   %edi
42108e:	75 23                	jne    0x4210b3
421090:	8b 45 1c             	mov    0x1c(%ebp),%eax
421093:	50                   	push   %eax
421094:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421098:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
42109f:	33 c0                	xor    %eax,%eax
4210a1:	50                   	push   %eax
4210a2:	50                   	push   %eax
4210a3:	50                   	push   %eax
4210a4:	50                   	push   %eax
4210a5:	50                   	push   %eax
4210a6:	e8 47 f9 ff ff       	call   0x4209f2
4210ab:	83 c4 18             	add    $0x18,%esp
4210ae:	83 c8 ff             	or     $0xffffffff,%eax
4210b1:	eb 68                	jmp    0x42111b
4210b3:	56                   	push   %esi
4210b4:	8b 75 10             	mov    0x10(%ebp),%esi
4210b7:	85 f6                	test   %esi,%esi
4210b9:	74 3e                	je     0x4210f9
4210bb:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4210bf:	76 38                	jbe    0x4210f9
4210c1:	ff 75 20             	push   0x20(%ebp)
4210c4:	8b 7d 1c             	mov    0x1c(%ebp),%edi
4210c7:	57                   	push   %edi
4210c8:	ff 75 18             	push   0x18(%ebp)
4210cb:	ff 75 14             	push   0x14(%ebp)
4210ce:	56                   	push   %esi
4210cf:	ff 75 0c             	push   0xc(%ebp)
4210d2:	ff 75 08             	push   0x8(%ebp)
4210d5:	e8 88 fd ff ff       	call   0x420e62
4210da:	83 c4 1c             	add    $0x1c,%esp
4210dd:	85 c0                	test   %eax,%eax
4210df:	79 05                	jns    0x4210e6
4210e1:	33 c9                	xor    %ecx,%ecx
4210e3:	66 89 0e             	mov    %cx,(%esi)
4210e6:	83 f8 fe             	cmp    $0xfffffffe,%eax
4210e9:	75 2f                	jne    0x42111a
4210eb:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
4210ef:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
4210f6:	57                   	push   %edi
4210f7:	eb 0f                	jmp    0x421108
4210f9:	8b 45 1c             	mov    0x1c(%ebp),%eax
4210fc:	50                   	push   %eax
4210fd:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421101:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
421108:	33 c0                	xor    %eax,%eax
42110a:	50                   	push   %eax
42110b:	50                   	push   %eax
42110c:	50                   	push   %eax
42110d:	50                   	push   %eax
42110e:	50                   	push   %eax
42110f:	e8 de f8 ff ff       	call   0x4209f2
421114:	83 c4 18             	add    $0x18,%esp
421117:	83 c8 ff             	or     $0xffffffff,%eax
42111a:	5e                   	pop    %esi
42111b:	5f                   	pop    %edi
42111c:	5d                   	pop    %ebp
42111d:	c3                   	ret
42111e:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
421125:	75 06                	jne    0x42112d
421127:	b8 00 02 00 00       	mov    $0x200,%eax
42112c:	c3                   	ret
42112d:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
421133:	d1 e8                	shr    $1,%eax
421135:	c3                   	ret
421136:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
42113d:	75 06                	jne    0x421145
42113f:	b8 00 01 00 00       	mov    $0x100,%eax
421144:	c3                   	ret
421145:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
42114b:	c1 e8 02             	shr    $0x2,%eax
42114e:	c3                   	ret
42114f:	8b ff                	mov    %edi,%edi
421151:	55                   	push   %ebp
421152:	8b ec                	mov    %esp,%ebp
421154:	51                   	push   %ecx
421155:	56                   	push   %esi
421156:	8b 75 08             	mov    0x8(%ebp),%esi
421159:	57                   	push   %edi
42115a:	8b f9                	mov    %ecx,%edi
42115c:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
421162:	76 12                	jbe    0x421176
421164:	8b 45 0c             	mov    0xc(%ebp),%eax
421167:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42116b:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
421172:	32 c0                	xor    %al,%al
421174:	eb 54                	jmp    0x4211ca
421176:	53                   	push   %ebx
421177:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
42117d:	03 f6                	add    %esi,%esi
42117f:	83 3b 00             	cmpl   $0x0,(%ebx)
421182:	75 08                	jne    0x42118c
421184:	81 fe 00 04 00 00    	cmp    $0x400,%esi
42118a:	76 3b                	jbe    0x4211c7
42118c:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
421192:	76 33                	jbe    0x4211c7
421194:	56                   	push   %esi
421195:	e8 17 b3 00 00       	call   0x42c4b1
42119a:	89 45 fc             	mov    %eax,-0x4(%ebp)
42119d:	59                   	pop    %ecx
42119e:	85 c0                	test   %eax,%eax
4211a0:	75 0b                	jne    0x4211ad
4211a2:	50                   	push   %eax
4211a3:	e8 cf b2 00 00       	call   0x42c477
4211a8:	59                   	pop    %ecx
4211a9:	32 c0                	xor    %al,%al
4211ab:	eb 1c                	jmp    0x4211c9
4211ad:	8d 45 fc             	lea    -0x4(%ebp),%eax
4211b0:	8b cb                	mov    %ebx,%ecx
4211b2:	50                   	push   %eax
4211b3:	e8 35 1a 00 00       	call   0x422bed
4211b8:	ff 75 fc             	push   -0x4(%ebp)
4211bb:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
4211c1:	e8 b1 b2 00 00       	call   0x42c477
4211c6:	59                   	pop    %ecx
4211c7:	b0 01                	mov    $0x1,%al
4211c9:	5b                   	pop    %ebx
4211ca:	5f                   	pop    %edi
4211cb:	5e                   	pop    %esi
4211cc:	c9                   	leave
4211cd:	c2 08 00             	ret    $0x8
4211d0:	8b ff                	mov    %edi,%edi
4211d2:	55                   	push   %ebp
4211d3:	8b ec                	mov    %esp,%ebp
4211d5:	51                   	push   %ecx
4211d6:	56                   	push   %esi
4211d7:	8b 75 08             	mov    0x8(%ebp),%esi
4211da:	57                   	push   %edi
4211db:	8b f9                	mov    %ecx,%edi
4211dd:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4211e3:	76 12                	jbe    0x4211f7
4211e5:	8b 45 0c             	mov    0xc(%ebp),%eax
4211e8:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4211ec:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4211f3:	32 c0                	xor    %al,%al
4211f5:	eb 55                	jmp    0x42124c
4211f7:	53                   	push   %ebx
4211f8:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
4211fe:	c1 e6 02             	shl    $0x2,%esi
421201:	83 3b 00             	cmpl   $0x0,(%ebx)
421204:	75 08                	jne    0x42120e
421206:	81 fe 00 04 00 00    	cmp    $0x400,%esi