405d54:	41                   	inc    %ecx
405d55:	89 4d cc             	mov    %ecx,-0x34(%ebp)
405d58:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
405d5b:	0f b6 09             	movzbl (%ecx),%ecx
405d5e:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
405d61:	7e e2                	jle    0x405d45
405d63:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
405d66:	41                   	inc    %ecx
405d67:	41                   	inc    %ecx
405d68:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
405d6b:	38 59 ff             	cmp    %bl,-0x1(%ecx)
405d6e:	75 b8                	jne    0x405d28
405d70:	68 fe 00 00 00       	push   $0xfe
405d75:	8d 88 00 02 00 00    	lea    0x200(%eax),%ecx
405d7b:	51                   	push   %ecx
405d7c:	50                   	push   %eax
405d7d:	e8 7e 23 00 00       	call   0x408100
405d82:	6a 7f                	push   $0x7f
405d84:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
405d8a:	50                   	push   %eax
405d8b:	57                   	push   %edi
405d8c:	e8 6f 23 00 00       	call   0x408100
405d91:	8b 45 d8             	mov    -0x28(%ebp),%eax
405d94:	6a 7f                	push   $0x7f
405d96:	8d 88 00 01 00 00    	lea    0x100(%eax),%ecx
405d9c:	51                   	push   %ecx
405d9d:	50                   	push   %eax
405d9e:	e8 5d 23 00 00       	call   0x408100
405da3:	8b 86 c0 00 00 00    	mov    0xc0(%esi),%eax
405da9:	83 c4 24             	add    $0x24,%esp
405dac:	3b c3                	cmp    %ebx,%eax
405dae:	74 4b                	je     0x405dfb
405db0:	50                   	push   %eax
405db1:	ff 15 78 a0 41 00    	call   *0x41a078
405db7:	85 c0                	test   %eax,%eax
405db9:	75 40                	jne    0x405dfb
405dbb:	8b 86 c4 00 00 00    	mov    0xc4(%esi),%eax
405dc1:	2d fe 00 00 00       	sub    $0xfe,%eax
405dc6:	50                   	push   %eax
405dc7:	e8 54 f2 ff ff       	call   0x405020
405dcc:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
405dd2:	bf 80 00 00 00       	mov    $0x80,%edi
405dd7:	2b c7                	sub    %edi,%eax
405dd9:	50                   	push   %eax
405dda:	e8 41 f2 ff ff       	call   0x405020
405ddf:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
405de5:	2b c7                	sub    %edi,%eax
405de7:	50                   	push   %eax
405de8:	e8 33 f2 ff ff       	call   0x405020
405ded:	ff b6 c0 00 00 00    	push   0xc0(%esi)
405df3:	e8 28 f2 ff ff       	call   0x405020
405df8:	83 c4 10             	add    $0x10,%esp
405dfb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
405dfe:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
405e04:	89 86 c0 00 00 00    	mov    %eax,0xc0(%esi)
405e0a:	8b 45 c0             	mov    -0x40(%ebp),%eax
405e0d:	89 86 c8 00 00 00    	mov    %eax,0xc8(%esi)
405e13:	8b 45 c4             	mov    -0x3c(%ebp),%eax
405e16:	89 86 c4 00 00 00    	mov    %eax,0xc4(%esi)
405e1c:	8b 45 bc             	mov    -0x44(%ebp),%eax
405e1f:	89 86 cc 00 00 00    	mov    %eax,0xcc(%esi)
405e25:	8b 45 c8             	mov    -0x38(%ebp),%eax
405e28:	89 86 d0 00 00 00    	mov    %eax,0xd0(%esi)
405e2e:	8b 45 d0             	mov    -0x30(%ebp),%eax
405e31:	89 86 ac 00 00 00    	mov    %eax,0xac(%esi)
405e37:	ff 75 dc             	push   -0x24(%ebp)
405e3a:	e8 e1 f1 ff ff       	call   0x405020
405e3f:	59                   	pop    %ecx
405e40:	8b c3                	mov    %ebx,%eax
405e42:	eb 6d                	jmp    0x405eb1
405e44:	ff 75 d4             	push   -0x2c(%ebp)
405e47:	e8 d4 f1 ff ff       	call   0x405020
405e4c:	ff 75 e4             	push   -0x1c(%ebp)
405e4f:	e8 cc f1 ff ff       	call   0x405020
405e54:	ff 75 e0             	push   -0x20(%ebp)
405e57:	e8 c4 f1 ff ff       	call   0x405020
405e5c:	ff 75 d8             	push   -0x28(%ebp)
405e5f:	e8 bc f1 ff ff       	call   0x405020
405e64:	33 db                	xor    %ebx,%ebx
405e66:	83 c4 10             	add    $0x10,%esp
405e69:	43                   	inc    %ebx
405e6a:	eb cb                	jmp    0x405e37
405e6c:	8d be c0 00 00 00    	lea    0xc0(%esi),%edi
405e72:	8b 07                	mov    (%edi),%eax
405e74:	3b c3                	cmp    %ebx,%eax
405e76:	74 07                	je     0x405e7f
405e78:	50                   	push   %eax
405e79:	ff 15 78 a0 41 00    	call   *0x41a078
405e7f:	89 1f                	mov    %ebx,(%edi)
405e81:	89 9e c4 00 00 00    	mov    %ebx,0xc4(%esi)
405e87:	c7 86 c8 00 00 00 e8 	movl   $0x41a4e8,0xc8(%esi)
405e8e:	a4 41 00
405e91:	c7 86 cc 00 00 00 70 	movl   $0x41a970,0xcc(%esi)
405e98:	a9 41 00
405e9b:	c7 86 d0 00 00 00 f0 	movl   $0x41aaf0,0xd0(%esi)
405ea2:	aa 41 00
405ea5:	c7 86 ac 00 00 00 01 	movl   $0x1,0xac(%esi)
405eac:	00 00 00
405eaf:	33 c0                	xor    %eax,%eax
405eb1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405eb4:	5f                   	pop    %edi
405eb5:	5e                   	pop    %esi
405eb6:	33 cd                	xor    %ebp,%ecx
405eb8:	5b                   	pop    %ebx
405eb9:	e8 68 07 00 00       	call   0x406626
405ebe:	c9                   	leave
405ebf:	c3                   	ret
405ec0:	e8 7c 4b 00 00       	call   0x40aa41
405ec5:	8b c8                	mov    %eax,%ecx
405ec7:	8b 41 6c             	mov    0x6c(%ecx),%eax
405eca:	3b 05 88 b8 42 00    	cmp    0x42b888,%eax
405ed0:	74 10                	je     0x405ee2
405ed2:	8b 15 a0 b7 42 00    	mov    0x42b7a0,%edx
405ed8:	85 51 70             	test   %edx,0x70(%ecx)
405edb:	75 05                	jne    0x405ee2
405edd:	e8 f1 0a 00 00       	call   0x4069d3
405ee2:	8b 80 ac 00 00 00    	mov    0xac(%eax),%eax
405ee8:	c3                   	ret
405ee9:	8b ff                	mov    %edi,%edi
405eeb:	55                   	push   %ebp
405eec:	8b ec                	mov    %esp,%ebp
405eee:	8b 45 08             	mov    0x8(%ebp),%eax
405ef1:	85 c0                	test   %eax,%eax
405ef3:	75 06                	jne    0x405efb
405ef5:	5d                   	pop    %ebp
405ef6:	e9 c5 ff ff ff       	jmp    0x405ec0
405efb:	8b 00                	mov    (%eax),%eax
405efd:	8b 80 ac 00 00 00    	mov    0xac(%eax),%eax
405f03:	5d                   	pop    %ebp
405f04:	c3                   	ret
405f05:	e8 37 4b 00 00       	call   0x40aa41
405f0a:	8b c8                	mov    %eax,%ecx
405f0c:	8b 41 6c             	mov    0x6c(%ecx),%eax
405f0f:	3b 05 88 b8 42 00    	cmp    0x42b888,%eax
405f15:	74 10                	je     0x405f27
405f17:	8b 15 a0 b7 42 00    	mov    0x42b7a0,%edx
405f1d:	85 51 70             	test   %edx,0x70(%ecx)
405f20:	75 05                	jne    0x405f27
405f22:	e8 ac 0a 00 00       	call   0x4069d3
405f27:	8b 40 04             	mov    0x4(%eax),%eax
405f2a:	c3                   	ret
405f2b:	e8 11 4b 00 00       	call   0x40aa41
405f30:	8b c8                	mov    %eax,%ecx
405f32:	8b 41 6c             	mov    0x6c(%ecx),%eax
405f35:	3b 05 88 b8 42 00    	cmp    0x42b888,%eax
405f3b:	74 10                	je     0x405f4d
405f3d:	8b 15 a0 b7 42 00    	mov    0x42b7a0,%edx
405f43:	85 51 70             	test   %edx,0x70(%ecx)
405f46:	75 05                	jne    0x405f4d
405f48:	e8 86 0a 00 00       	call   0x4069d3
405f4d:	83 c0 0c             	add    $0xc,%eax
405f50:	c3                   	ret
405f51:	cc                   	int3
405f52:	cc                   	int3
405f53:	cc                   	int3
405f54:	cc                   	int3
405f55:	cc                   	int3
405f56:	cc                   	int3
405f57:	cc                   	int3
405f58:	cc                   	int3
405f59:	cc                   	int3
405f5a:	cc                   	int3
405f5b:	cc                   	int3
405f5c:	cc                   	int3
405f5d:	cc                   	int3
405f5e:	cc                   	int3
405f5f:	cc                   	int3
405f60:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405f64:	f7 c1 03 00 00 00    	test   $0x3,%ecx
405f6a:	74 24                	je     0x405f90
405f6c:	8a 01                	mov    (%ecx),%al
405f6e:	83 c1 01             	add    $0x1,%ecx
405f71:	84 c0                	test   %al,%al
405f73:	74 4e                	je     0x405fc3
405f75:	f7 c1 03 00 00 00    	test   $0x3,%ecx
405f7b:	75 ef                	jne    0x405f6c
405f7d:	05 00 00 00 00       	add    $0x0,%eax
405f82:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405f89:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405f90:	8b 01                	mov    (%ecx),%eax
405f92:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
405f97:	03 d0                	add    %eax,%edx
405f99:	83 f0 ff             	xor    $0xffffffff,%eax
405f9c:	33 c2                	xor    %edx,%eax
405f9e:	83 c1 04             	add    $0x4,%ecx
405fa1:	a9 00 01 01 81       	test   $0x81010100,%eax
405fa6:	74 e8                	je     0x405f90
405fa8:	8b 41 fc             	mov    -0x4(%ecx),%eax
405fab:	84 c0                	test   %al,%al
405fad:	74 32                	je     0x405fe1
405faf:	84 e4                	test   %ah,%ah
405fb1:	74 24                	je     0x405fd7
405fb3:	a9 00 00 ff 00       	test   $0xff0000,%eax
405fb8:	74 13                	je     0x405fcd
405fba:	a9 00 00 00 ff       	test   $0xff000000,%eax
405fbf:	74 02                	je     0x405fc3
405fc1:	eb cd                	jmp    0x405f90
405fc3:	8d 41 ff             	lea    -0x1(%ecx),%eax
405fc6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fca:	2b c1                	sub    %ecx,%eax
405fcc:	c3                   	ret
405fcd:	8d 41 fe             	lea    -0x2(%ecx),%eax
405fd0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fd4:	2b c1                	sub    %ecx,%eax
405fd6:	c3                   	ret
405fd7:	8d 41 fd             	lea    -0x3(%ecx),%eax
405fda:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fde:	2b c1                	sub    %ecx,%eax
405fe0:	c3                   	ret
405fe1:	8d 41 fc             	lea    -0x4(%ecx),%eax
405fe4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fe8:	2b c1                	sub    %ecx,%eax
405fea:	c3                   	ret
405feb:	8b ff                	mov    %edi,%edi
405fed:	55                   	push   %ebp
405fee:	8b ec                	mov    %esp,%ebp
405ff0:	81 ec 28 03 00 00    	sub    $0x328,%esp
405ff6:	a1 68 b2 42 00       	mov    0x42b268,%eax
405ffb:	33 c5                	xor    %ebp,%eax
405ffd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406000:	f6 05 60 b2 42 00 01 	testb  $0x1,0x42b260
406007:	56                   	push   %esi
406008:	74 08                	je     0x406012
40600a:	6a 0a                	push   $0xa
40600c:	e8 93 69 00 00       	call   0x40c9a4
406011:	59                   	pop    %ecx
406012:	e8 5b 76 00 00       	call   0x40d672
406017:	85 c0                	test   %eax,%eax
406019:	74 08                	je     0x406023
40601b:	6a 16                	push   $0x16
40601d:	e8 5d 76 00 00       	call   0x40d67f
406022:	59                   	pop    %ecx
406023:	f6 05 60 b2 42 00 02 	testb  $0x2,0x42b260
40602a:	0f 84 ca 00 00 00    	je     0x4060fa
406030:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
406036:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40603c:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
406042:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
406048:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40604e:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
406054:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
40605b:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
406062:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
406069:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
406070:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
406077:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
40607e:	9c                   	pushf
40607f:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
406085:	8b 75 04             	mov    0x4(%ebp),%esi
406088:	8d 45 04             	lea    0x4(%ebp),%eax
40608b:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
406091:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
406098:	00 01 00
40609b:	89 b5 e8 fd ff ff    	mov    %esi,-0x218(%ebp)
4060a1:	8b 40 fc             	mov    -0x4(%eax),%eax
4060a4:	6a 50                	push   $0x50
4060a6:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
4060ac:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
4060b2:	6a 00                	push   $0x0
4060b4:	50                   	push   %eax
4060b5:	e8 46 46 00 00       	call   0x40a700
4060ba:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
4060c0:	83 c4 0c             	add    $0xc,%esp
4060c3:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
4060c9:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
4060cf:	6a 00                	push   $0x0
4060d1:	c7 85 d8 fc ff ff 15 	movl   $0x40000015,-0x328(%ebp)
4060d8:	00 00 40
4060db:	89 b5 e4 fc ff ff    	mov    %esi,-0x31c(%ebp)
4060e1:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
4060e7:	ff 15 ac a0 41 00    	call   *0x41a0ac
4060ed:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
4060f3:	50                   	push   %eax
4060f4:	ff 15 a8 a0 41 00    	call   *0x41a0a8
4060fa:	6a 03                	push   $0x3
4060fc:	e8 21 68 00 00       	call   0x40c922
406101:	cc                   	int3
406102:	8b ff                	mov    %edi,%edi
406104:	55                   	push   %ebp
406105:	8b ec                	mov    %esp,%ebp
406107:	51                   	push   %ecx
406108:	53                   	push   %ebx
406109:	56                   	push   %esi
40610a:	57                   	push   %edi
40610b:	ff 35 38 12 c7 00    	push   0xc71238
406111:	e8 df 46 00 00       	call   0x40a7f5
406116:	ff 35 34 12 c7 00    	push   0xc71234
40611c:	8b f8                	mov    %eax,%edi
40611e:	89 7d fc             	mov    %edi,-0x4(%ebp)
406121:	e8 cf 46 00 00       	call   0x40a7f5
406126:	8b f0                	mov    %eax,%esi
406128:	59                   	pop    %ecx
406129:	59                   	pop    %ecx
40612a:	3b f7                	cmp    %edi,%esi
40612c:	0f 82 83 00 00 00    	jb     0x4061b5
406132:	8b de                	mov    %esi,%ebx
406134:	2b df                	sub    %edi,%ebx
406136:	8d 43 04             	lea    0x4(%ebx),%eax
406139:	83 f8 04             	cmp    $0x4,%eax
40613c:	72 77                	jb     0x4061b5
40613e:	57                   	push   %edi
40613f:	e8 eb 76 00 00       	call   0x40d82f
406144:	8b f8                	mov    %eax,%edi
406146:	8d 43 04             	lea    0x4(%ebx),%eax
406149:	59                   	pop    %ecx
40614a:	3b f8                	cmp    %eax,%edi
40614c:	73 48                	jae    0x406196
40614e:	b8 00 08 00 00       	mov    $0x800,%eax
406153:	3b f8                	cmp    %eax,%edi
406155:	73 02                	jae    0x406159
406157:	8b c7                	mov    %edi,%eax
406159:	03 c7                	add    %edi,%eax
40615b:	3b c7                	cmp    %edi,%eax
40615d:	72 0f                	jb     0x40616e
40615f:	50                   	push   %eax
406160:	ff 75 fc             	push   -0x4(%ebp)
406163:	e8 89 1a 00 00       	call   0x407bf1
406168:	59                   	pop    %ecx
406169:	59                   	pop    %ecx
40616a:	85 c0                	test   %eax,%eax
40616c:	75 16                	jne    0x406184
40616e:	8d 47 10             	lea    0x10(%edi),%eax
406171:	3b c7                	cmp    %edi,%eax
406173:	72 40                	jb     0x4061b5
406175:	50                   	push   %eax
406176:	ff 75 fc             	push   -0x4(%ebp)
406179:	e8 73 1a 00 00       	call   0x407bf1
40617e:	59                   	pop    %ecx
40617f:	59                   	pop    %ecx
406180:	85 c0                	test   %eax,%eax
406182:	74 31                	je     0x4061b5
406184:	c1 fb 02             	sar    $0x2,%ebx
406187:	50                   	push   %eax
406188:	8d 34 98             	lea    (%eax,%ebx,4),%esi
40618b:	e8 ea 45 00 00       	call   0x40a77a
406190:	59                   	pop    %ecx
406191:	a3 38 12 c7 00       	mov    %eax,0xc71238
406196:	ff 75 08             	push   0x8(%ebp)
406199:	e8 dc 45 00 00       	call   0x40a77a
40619e:	89 06                	mov    %eax,(%esi)
4061a0:	83 c6 04             	add    $0x4,%esi
4061a3:	56                   	push   %esi
4061a4:	e8 d1 45 00 00       	call   0x40a77a
4061a9:	59                   	pop    %ecx
4061aa:	a3 34 12 c7 00       	mov    %eax,0xc71234
4061af:	8b 45 08             	mov    0x8(%ebp),%eax
4061b2:	59                   	pop    %ecx
4061b3:	eb 02                	jmp    0x4061b7
4061b5:	33 c0                	xor    %eax,%eax
4061b7:	5f                   	pop    %edi