406e93:	75 09                	jne    0x406e9e
406e95:	ff 76 54             	push   0x54(%esi)
406e98:	e8 83 e1 ff ff       	call   0x405020
406e9d:	59                   	pop    %ecx
406e9e:	8b 46 68             	mov    0x68(%esi),%eax
406ea1:	89 5e 54             	mov    %ebx,0x54(%esi)
406ea4:	89 5e 4c             	mov    %ebx,0x4c(%esi)
406ea7:	89 5e 50             	mov    %ebx,0x50(%esi)
406eaa:	89 5e 48             	mov    %ebx,0x48(%esi)
406ead:	5f                   	pop    %edi
406eae:	5b                   	pop    %ebx
406eaf:	c9                   	leave
406eb0:	c3                   	ret
406eb1:	8b ff                	mov    %edi,%edi
406eb3:	55                   	push   %ebp
406eb4:	8b ec                	mov    %esp,%ebp
406eb6:	81 ec b4 00 00 00    	sub    $0xb4,%esp
406ebc:	a1 68 b2 42 00       	mov    0x42b268,%eax
406ec1:	33 c5                	xor    %ebp,%eax
406ec3:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ec6:	8b 45 0c             	mov    0xc(%ebp),%eax
406ec9:	53                   	push   %ebx
406eca:	56                   	push   %esi
406ecb:	8b 75 08             	mov    0x8(%ebp),%esi
406ece:	57                   	push   %edi
406ecf:	8b 7d 14             	mov    0x14(%ebp),%edi
406ed2:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
406ed8:	8b 45 18             	mov    0x18(%ebp),%eax
406edb:	89 bd 5c ff ff ff    	mov    %edi,-0xa4(%ebp)
406ee1:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
406ee7:	e8 55 3b 00 00       	call   0x40aa41
406eec:	05 9c 00 00 00       	add    $0x9c,%eax
406ef1:	8d 48 28             	lea    0x28(%eax),%ecx
406ef4:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
406efa:	8d 48 2c             	lea    0x2c(%eax),%ecx
406efd:	8d 58 20             	lea    0x20(%eax),%ebx
406f00:	05 af 00 00 00       	add    $0xaf,%eax
406f05:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
406f0b:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
406f11:	85 f6                	test   %esi,%esi
406f13:	0f 84 b8 01 00 00    	je     0x4070d1
406f19:	83 bd 64 ff ff ff 00 	cmpl   $0x0,-0x9c(%ebp)
406f20:	0f 84 ab 01 00 00    	je     0x4070d1
406f26:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
406f2a:	0f 84 a1 01 00 00    	je     0x4070d1
406f30:	80 3e 43             	cmpb   $0x43,(%esi)
406f33:	75 57                	jne    0x406f8c
406f35:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
406f39:	75 51                	jne    0x406f8c
406f3b:	68 24 a2 41 00       	push   $0x41a224
406f40:	ff 75 10             	push   0x10(%ebp)
406f43:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
406f49:	e8 69 26 00 00       	call   0x4095b7
406f4e:	83 c4 0c             	add    $0xc,%esp
406f51:	33 f6                	xor    %esi,%esi
406f53:	85 c0                	test   %eax,%eax
406f55:	74 0d                	je     0x406f64
406f57:	56                   	push   %esi
406f58:	56                   	push   %esi
406f59:	56                   	push   %esi
406f5a:	56                   	push   %esi
406f5b:	56                   	push   %esi
406f5c:	e8 9c e1 ff ff       	call   0x4050fd
406f61:	83 c4 14             	add    $0x14,%esp
406f64:	3b fe                	cmp    %esi,%edi
406f66:	74 0d                	je     0x406f75
406f68:	33 c0                	xor    %eax,%eax
406f6a:	66 89 07             	mov    %ax,(%edi)
406f6d:	66 89 47 02          	mov    %ax,0x2(%edi)
406f71:	66 89 47 04          	mov    %ax,0x4(%edi)
406f75:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
406f7b:	3b c6                	cmp    %esi,%eax
406f7d:	74 02                	je     0x406f81
406f7f:	89 30                	mov    %esi,(%eax)
406f81:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
406f87:	e9 47 01 00 00       	jmp    0x4070d3
406f8c:	56                   	push   %esi
406f8d:	e8 ce ef ff ff       	call   0x405f60
406f92:	bf 83 00 00 00       	mov    $0x83,%edi
406f97:	59                   	pop    %ecx
406f98:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
406f9e:	3b c7                	cmp    %edi,%eax
406fa0:	73 2c                	jae    0x406fce
406fa2:	56                   	push   %esi
406fa3:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
406fa9:	e8 82 52 00 00       	call   0x40c230
406fae:	59                   	pop    %ecx
406faf:	59                   	pop    %ecx
406fb0:	85 c0                	test   %eax,%eax
406fb2:	0f 84 b0 00 00 00    	je     0x407068
406fb8:	56                   	push   %esi
406fb9:	ff b5 58 ff ff ff    	push   -0xa8(%ebp)
406fbf:	e8 6c 52 00 00       	call   0x40c230
406fc4:	59                   	pop    %ecx
406fc5:	59                   	pop    %ecx
406fc6:	85 c0                	test   %eax,%eax
406fc8:	0f 84 9a 00 00 00    	je     0x407068
406fce:	83 a5 4c ff ff ff 00 	andl   $0x0,-0xb4(%ebp)
406fd5:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
406fdb:	56                   	push   %esi
406fdc:	50                   	push   %eax
406fdd:	e8 bc fb ff ff       	call   0x406b9e
406fe2:	59                   	pop    %ecx
406fe3:	59                   	pop    %ecx
406fe4:	85 c0                	test   %eax,%eax
406fe6:	0f 85 e5 00 00 00    	jne    0x4070d1
406fec:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
406ff2:	50                   	push   %eax
406ff3:	53                   	push   %ebx
406ff4:	50                   	push   %eax
406ff5:	e8 1c 91 00 00       	call   0x410116
406ffa:	83 c4 0c             	add    $0xc,%esp
406ffd:	85 c0                	test   %eax,%eax
406fff:	0f 84 cc 00 00 00    	je     0x4070d1
407005:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
407009:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
40700f:	89 01                	mov    %eax,(%ecx)
407011:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
407017:	50                   	push   %eax
407018:	57                   	push   %edi
407019:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
40701f:	e8 a3 fc ff ff       	call   0x406cc7
407024:	83 c4 0c             	add    $0xc,%esp
407027:	80 3e 00             	cmpb   $0x0,(%esi)
40702a:	74 0a                	je     0x407036
40702c:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
407032:	3b c7                	cmp    %edi,%eax
407034:	72 0b                	jb     0x407041
407036:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
40703c:	be 26 a2 41 00       	mov    $0x41a226,%esi
407041:	40                   	inc    %eax
407042:	50                   	push   %eax
407043:	56                   	push   %esi
407044:	57                   	push   %edi
407045:	ff b5 58 ff ff ff    	push   -0xa8(%ebp)
40704b:	e8 56 8a 00 00       	call   0x40faa6
407050:	83 c4 10             	add    $0x10,%esp
407053:	85 c0                	test   %eax,%eax
407055:	74 11                	je     0x407068
407057:	33 f6                	xor    %esi,%esi
407059:	56                   	push   %esi
40705a:	56                   	push   %esi
40705b:	56                   	push   %esi
40705c:	56                   	push   %esi
40705d:	56                   	push   %esi
40705e:	e8 9a e0 ff ff       	call   0x4050fd
407063:	83 c4 14             	add    $0x14,%esp
407066:	eb 02                	jmp    0x40706a
407068:	33 f6                	xor    %esi,%esi
40706a:	39 b5 5c ff ff ff    	cmp    %esi,-0xa4(%ebp)
407070:	74 11                	je     0x407083
407072:	6a 06                	push   $0x6
407074:	53                   	push   %ebx
407075:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
40707b:	e8 80 10 00 00       	call   0x408100
407080:	83 c4 0c             	add    $0xc,%esp
407083:	39 b5 60 ff ff ff    	cmp    %esi,-0xa0(%ebp)
407089:	74 16                	je     0x4070a1
40708b:	6a 04                	push   $0x4
40708d:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
407093:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
407099:	e8 62 10 00 00       	call   0x408100
40709e:	83 c4 0c             	add    $0xc,%esp
4070a1:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
4070a7:	ff 75 10             	push   0x10(%ebp)
4070aa:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
4070b0:	e8 02 25 00 00       	call   0x4095b7
4070b5:	83 c4 0c             	add    $0xc,%esp
4070b8:	85 c0                	test   %eax,%eax
4070ba:	74 0d                	je     0x4070c9
4070bc:	56                   	push   %esi
4070bd:	56                   	push   %esi
4070be:	56                   	push   %esi
4070bf:	56                   	push   %esi
4070c0:	56                   	push   %esi
4070c1:	e8 37 e0 ff ff       	call   0x4050fd
4070c6:	83 c4 14             	add    $0x14,%esp
4070c9:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
4070cf:	eb 02                	jmp    0x4070d3
4070d1:	33 c0                	xor    %eax,%eax
4070d3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4070d6:	5f                   	pop    %edi
4070d7:	5e                   	pop    %esi
4070d8:	33 cd                	xor    %ebp,%ecx
4070da:	5b                   	pop    %ebx
4070db:	e8 46 f5 ff ff       	call   0x406626
4070e0:	c9                   	leave
4070e1:	c3                   	ret
4070e2:	8b ff                	mov    %edi,%edi
4070e4:	55                   	push   %ebp
4070e5:	8b ec                	mov    %esp,%ebp
4070e7:	81 ec c4 01 00 00    	sub    $0x1c4,%esp
4070ed:	a1 68 b2 42 00       	mov    0x42b268,%eax
4070f2:	33 c5                	xor    %ebp,%eax
4070f4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4070f7:	53                   	push   %ebx
4070f8:	57                   	push   %edi
4070f9:	8b d9                	mov    %ecx,%ebx
4070fb:	e8 41 39 00 00       	call   0x40aa41
407100:	ff 75 08             	push   0x8(%ebp)
407103:	8b f8                	mov    %eax,%edi
407105:	8d 85 68 fe ff ff    	lea    -0x198(%ebp),%eax
40710b:	50                   	push   %eax
40710c:	8d 85 50 fe ff ff    	lea    -0x1b0(%ebp),%eax
407112:	50                   	push   %eax
407113:	68 83 00 00 00       	push   $0x83
407118:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40711e:	50                   	push   %eax
40711f:	53                   	push   %ebx
407120:	81 c7 d0 01 00 00    	add    $0x1d0,%edi
407126:	e8 86 fd ff ff       	call   0x406eb1
40712b:	83 c4 18             	add    $0x18,%esp
40712e:	85 c0                	test   %eax,%eax
407130:	75 07                	jne    0x407139
407132:	33 c0                	xor    %eax,%eax
407134:	e9 9d 02 00 00       	jmp    0x4073d6
407139:	8b 45 08             	mov    0x8(%ebp),%eax
40713c:	c1 e0 04             	shl    $0x4,%eax
40713f:	8d 1c 30             	lea    (%eax,%esi,1),%ebx
407142:	ff 73 48             	push   0x48(%ebx)
407145:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40714b:	50                   	push   %eax
40714c:	e8 df 50 00 00       	call   0x40c230
407151:	59                   	pop    %ecx
407152:	59                   	pop    %ecx
407153:	85 c0                	test   %eax,%eax
407155:	0f 84 78 02 00 00    	je     0x4073d3
40715b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
407161:	50                   	push   %eax
407162:	e8 f9 ed ff ff       	call   0x405f60
407167:	83 c0 05             	add    $0x5,%eax
40716a:	50                   	push   %eax
40716b:	89 85 74 fe ff ff    	mov    %eax,-0x18c(%ebp)
407171:	e8 ea 09 00 00       	call   0x407b60
407176:	59                   	pop    %ecx
407177:	59                   	pop    %ecx
407178:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
40717e:	85 c0                	test   %eax,%eax
407180:	74 b0                	je     0x407132
407182:	8b 43 48             	mov    0x48(%ebx),%eax
407185:	8b 4d 08             	mov    0x8(%ebp),%ecx
407188:	89 85 5c fe ff ff    	mov    %eax,-0x1a4(%ebp)
40718e:	8d 44 8e 0c          	lea    0xc(%esi,%ecx,4),%eax
407192:	83 c1 06             	add    $0x6,%ecx
407195:	6b c9 06             	imul   $0x6,%ecx,%ecx
407198:	89 85 6c fe ff ff    	mov    %eax,-0x194(%ebp)
40719e:	8b 00                	mov    (%eax),%eax
4071a0:	89 85 58 fe ff ff    	mov    %eax,-0x1a8(%ebp)
4071a6:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4071a9:	6a 06                	push   $0x6
4071ab:	50                   	push   %eax
4071ac:	89 85 64 fe ff ff    	mov    %eax,-0x19c(%ebp)
4071b2:	8d 85 3c fe ff ff    	lea    -0x1c4(%ebp),%eax
4071b8:	50                   	push   %eax
4071b9:	e8 42 0f 00 00       	call   0x408100
4071be:	8b 46 04             	mov    0x4(%esi),%eax
4071c1:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
4071c7:	51                   	push   %ecx
4071c8:	8b 8d 74 fe ff ff    	mov    -0x18c(%ebp),%ecx
4071ce:	89 85 4c fe ff ff    	mov    %eax,-0x1b4(%ebp)
4071d4:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
4071da:	83 c1 fc             	add    $0xfffffffc,%ecx
4071dd:	83 c0 04             	add    $0x4,%eax
4071e0:	51                   	push   %ecx
4071e1:	50                   	push   %eax
4071e2:	e8 d0 23 00 00       	call   0x4095b7
4071e7:	83 c4 18             	add    $0x18,%esp
4071ea:	85 c0                	test   %eax,%eax
4071ec:	74 0f                	je     0x4071fd
4071ee:	33 c0                	xor    %eax,%eax
4071f0:	50                   	push   %eax
4071f1:	50                   	push   %eax
4071f2:	50                   	push   %eax
4071f3:	50                   	push   %eax
4071f4:	50                   	push   %eax
4071f5:	e8 03 df ff ff       	call   0x4050fd
4071fa:	83 c4 14             	add    $0x14,%esp
4071fd:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
407203:	8b 8d 6c fe ff ff    	mov    -0x194(%ebp),%ecx
407209:	83 c0 04             	add    $0x4,%eax
40720c:	89 43 48             	mov    %eax,0x48(%ebx)
40720f:	0f b7 85 50 fe ff ff 	movzwl -0x1b0(%ebp),%eax
407216:	89 01                	mov    %eax,(%ecx)
407218:	6a 06                	push   $0x6
40721a:	8d 85 50 fe ff ff    	lea    -0x1b0(%ebp),%eax
407220:	50                   	push   %eax
407221:	ff b5 64 fe ff ff    	push   -0x19c(%ebp)
407227:	e8 d4 0e 00 00       	call   0x408100
40722c:	83 c4 0c             	add    $0xc,%esp
40722f:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
407233:	0f 85 f7 00 00 00    	jne    0x407330
407239:	8b 85 68 fe ff ff    	mov    -0x198(%ebp),%eax
40723f:	83 a5 74 fe ff ff 00 	andl   $0x0,-0x18c(%ebp)
407246:	89 46 04             	mov    %eax,0x4(%esi)
407249:	8b 47 24             	mov    0x24(%edi),%eax
40724c:	8b 4f 20             	mov    0x20(%edi),%ecx
40724f:	89 85 64 fe ff ff    	mov    %eax,-0x19c(%ebp)
407255:	8b c7                	mov    %edi,%eax
407257:	8b 56 04             	mov    0x4(%esi),%edx
40725a:	3b 10                	cmp    (%eax),%edx
40725c:	74 36                	je     0x407294
40725e:	8b 10                	mov    (%eax),%edx
407260:	ff 85 74 fe ff ff    	incl   -0x18c(%ebp)
407266:	89 08                	mov    %ecx,(%eax)
407268:	8b 8d 64 fe ff ff    	mov    -0x19c(%ebp),%ecx
40726e:	89 95 44 fe ff ff    	mov    %edx,-0x1bc(%ebp)
407274:	8b 50 04             	mov    0x4(%eax),%edx
407277:	89 48 04             	mov    %ecx,0x4(%eax)
40727a:	8b 8d 44 fe ff ff    	mov    -0x1bc(%ebp),%ecx
407280:	83 c0 08             	add    $0x8,%eax
407283:	83 bd 74 fe ff ff 05 	cmpl   $0x5,-0x18c(%ebp)
40728a:	89 95 64 fe ff ff    	mov    %edx,-0x19c(%ebp)
407290:	7c c5                	jl     0x407257
407292:	eb 22                	jmp    0x4072b6
407294:	8b 85 74 fe ff ff    	mov    -0x18c(%ebp),%eax
40729a:	85 c0                	test   %eax,%eax
40729c:	74 18                	je     0x4072b6
40729e:	8d 04 c7             	lea    (%edi,%eax,8),%eax
4072a1:	8b 10                	mov    (%eax),%edx
4072a3:	89 17                	mov    %edx,(%edi)
4072a5:	8b 50 04             	mov    0x4(%eax),%edx
4072a8:	89 57 04             	mov    %edx,0x4(%edi)
4072ab:	89 08                	mov    %ecx,(%eax)
4072ad:	8b 8d 64 fe ff ff    	mov    -0x19c(%ebp),%ecx
4072b3:	89 48 04             	mov    %ecx,0x4(%eax)
4072b6:	83 bd 74 fe ff ff 05 	cmpl   $0x5,-0x18c(%ebp)
4072bd:	75 68                	jne    0x407327
4072bf:	6a 01                	push   $0x1
4072c1:	ff 76 14             	push   0x14(%esi)
4072c4:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
4072ca:	ff 76 04             	push   0x4(%esi)
4072cd:	50                   	push   %eax
4072ce:	6a 7f                	push   $0x7f
4072d0:	68 50 a3 41 00       	push   $0x41a350
4072d5:	6a 01                	push   $0x1
4072d7:	6a 00                	push   $0x0
4072d9:	e8 6f 61 00 00       	call   0x40d44d
4072de:	83 c4 20             	add    $0x20,%esp
4072e1:	85 c0                	test   %eax,%eax
4072e3:	74 39                	je     0x40731e
4072e5:	33 c0                	xor    %eax,%eax
4072e7:	b9 ff 01 00 00       	mov    $0x1ff,%ecx
4072ec:	66 21 8c 45 78 fe ff 	and    %cx,-0x188(%ebp,%eax,2)
4072f3:	ff
4072f4:	40                   	inc    %eax
4072f5:	83 f8 7f             	cmp    $0x7f,%eax
4072f8:	72 ed                	jb     0x4072e7
4072fa:	68 fe 00 00 00       	push   $0xfe
4072ff:	ff 35 64 b2 42 00    	push   0x42b264
407305:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax