407ef0:	ff 75 0c             	push   0xc(%ebp)
407ef3:	68 44 01 00 00       	push   $0x144
407ef8:	50                   	push   %eax
407ef9:	e8 4d ff ff ff       	call   0x407e4b
407efe:	83 c4 10             	add    $0x10,%esp
407f01:	85 c0                	test   %eax,%eax
407f03:	79 37                	jns    0x407f3c
407f05:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
407f0c:	0f b7 f0             	movzwl %ax,%esi
407f0f:	0f 86 c7 00 00 00    	jbe    0x407fdc
407f15:	89 85 64 fd ff ff    	mov    %eax,-0x29c(%ebp)
407f1b:	ba 4d 31 40 00       	mov    $0x40314d,%edx
407f20:	8d 85 64 fd ff ff    	lea    -0x29c(%ebp),%eax
407f26:	c7 85 68 fd ff ff c8 	movl   $0x402ac8,-0x298(%ebp)
407f2d:	2a 40 00
407f30:	50                   	push   %eax
407f31:	8d 85 68 fd ff ff    	lea    -0x298(%ebp),%eax
407f37:	e9 98 00 00 00       	jmp    0x407fd4
407f3c:	8d 85 5c fd ff ff    	lea    -0x2a4(%ebp),%eax
407f42:	50                   	push   %eax
407f43:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
407f49:	50                   	push   %eax
407f4a:	6a 00                	push   $0x0
407f4c:	68 3f 00 0f 00       	push   $0xf003f
407f51:	6a 01                	push   $0x1
407f53:	68 00 25 40 00       	push   $0x402500
407f58:	6a 00                	push   $0x0
407f5a:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
407f60:	50                   	push   %eax
407f61:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
407f67:	ff 15 14 f0 40 00    	call   *0x40f014
407f6d:	8b f0                	mov    %eax,%esi
407f6f:	85 f6                	test   %esi,%esi
407f71:	74 1a                	je     0x407f8d
407f73:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
407f7a:	76 60                	jbe    0x407fdc
407f7c:	c7 85 64 fd ff ff f4 	movl   $0x402af4,-0x29c(%ebp)
407f83:	2a 40 00
407f86:	ba 4d 31 40 00       	mov    $0x40314d,%edx
407f8b:	eb 34                	jmp    0x407fc1
407f8d:	ff 75 1c             	push   0x1c(%ebp)
407f90:	53                   	push   %ebx
407f91:	ff 75 14             	push   0x14(%ebp)
407f94:	6a 00                	push   $0x0
407f96:	57                   	push   %edi
407f97:	ff b5 60 fd ff ff    	push   -0x2a0(%ebp)
407f9d:	ff 15 10 f0 40 00    	call   *0x40f010
407fa3:	8b f0                	mov    %eax,%esi
407fa5:	85 f6                	test   %esi,%esi
407fa7:	74 33                	je     0x407fdc
407fa9:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
407fb0:	76 2a                	jbe    0x407fdc
407fb2:	c7 85 64 fd ff ff 20 	movl   $0x402b20,-0x29c(%ebp)
407fb9:	2b 40 00
407fbc:	ba 4d 31 40 00       	mov    $0x40314d,%edx
407fc1:	8d 85 68 fd ff ff    	lea    -0x298(%ebp),%eax
407fc7:	50                   	push   %eax
407fc8:	8d 85 64 fd ff ff    	lea    -0x29c(%ebp),%eax
407fce:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
407fd4:	50                   	push   %eax
407fd5:	51                   	push   %ecx
407fd6:	51                   	push   %ecx
407fd7:	e8 cc b7 ff ff       	call   0x4037a8
407fdc:	83 bd 60 fd ff ff 00 	cmpl   $0x0,-0x2a0(%ebp)
407fe3:	74 0c                	je     0x407ff1
407fe5:	ff b5 60 fd ff ff    	push   -0x2a0(%ebp)
407feb:	ff 15 00 f0 40 00    	call   *0x40f000
407ff1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407ff4:	8b c6                	mov    %esi,%eax
407ff6:	5f                   	pop    %edi
407ff7:	5e                   	pop    %esi
407ff8:	33 cd                	xor    %ebp,%ecx
407ffa:	5b                   	pop    %ebx
407ffb:	e8 60 18 00 00       	call   0x409860
408000:	c9                   	leave
408001:	c2 1c 00             	ret    $0x1c
408004:	8b ff                	mov    %edi,%edi
408006:	55                   	push   %ebp
408007:	8b ec                	mov    %esp,%ebp
408009:	83 ec 18             	sub    $0x18,%esp
40800c:	53                   	push   %ebx
40800d:	56                   	push   %esi
40800e:	8b c2                	mov    %edx,%eax
408010:	89 4d e8             	mov    %ecx,-0x18(%ebp)
408013:	57                   	push   %edi
408014:	89 45 f0             	mov    %eax,-0x10(%ebp)
408017:	33 f6                	xor    %esi,%esi
408019:	8b 45 10             	mov    0x10(%ebp),%eax
40801c:	33 db                	xor    %ebx,%ebx
40801e:	68 08 01 00 00       	push   $0x108
408023:	6a 40                	push   $0x40
408025:	89 75 f4             	mov    %esi,-0xc(%ebp)
408028:	8b fe                	mov    %esi,%edi
40802a:	89 75 fc             	mov    %esi,-0x4(%ebp)
40802d:	43                   	inc    %ebx
40802e:	89 30                	mov    %esi,(%eax)
408030:	ff 15 a4 f0 40 00    	call   *0x40f0a4
408036:	8b c8                	mov    %eax,%ecx
408038:	8b 45 08             	mov    0x8(%ebp),%eax
40803b:	89 08                	mov    %ecx,(%eax)
40803d:	85 c9                	test   %ecx,%ecx
40803f:	75 38                	jne    0x408079
408041:	ff 15 7c f0 40 00    	call   *0x40f07c
408047:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
40804e:	8b f0                	mov    %eax,%esi
408050:	0f 86 5a 04 00 00    	jbe    0x4084b0
408056:	8d 45 ec             	lea    -0x14(%ebp),%eax
408059:	89 75 ec             	mov    %esi,-0x14(%ebp)
40805c:	50                   	push   %eax
40805d:	8d 45 f0             	lea    -0x10(%ebp),%eax
408060:	c7 45 f0 48 2b 40 00 	movl   $0x402b48,-0x10(%ebp)
408067:	50                   	push   %eax
408068:	51                   	push   %ecx
408069:	51                   	push   %ecx
40806a:	ba 4d 31 40 00       	mov    $0x40314d,%edx
40806f:	e8 34 b7 ff ff       	call   0x4037a8
408074:	e9 37 04 00 00       	jmp    0x4084b0
408079:	8b 55 f0             	mov    -0x10(%ebp),%edx
40807c:	33 ff                	xor    %edi,%edi
40807e:	47                   	inc    %edi
40807f:	8b c2                	mov    %edx,%eax
408081:	23 c7                	and    %edi,%eax
408083:	89 01                	mov    %eax,(%ecx)
408085:	c7 41 04 00 29 40 00 	movl   $0x402900,0x4(%ecx)
40808c:	c7 41 08 80 2b 40 00 	movl   $0x402b80,0x8(%ecx)
408093:	c7 41 0c 9c 2b 40 00 	movl   $0x402b9c,0xc(%ecx)
40809a:	c7 41 10 18 00 00 00 	movl   $0x18,0x10(%ecx)
4080a1:	89 79 14             	mov    %edi,0x14(%ecx)
4080a4:	8b fa                	mov    %edx,%edi
4080a6:	83 e7 04             	and    $0x4,%edi
4080a9:	89 79 18             	mov    %edi,0x18(%ecx)
4080ac:	c7 41 1c 48 2a 40 00 	movl   $0x402a48,0x1c(%ecx)
4080b3:	c7 41 20 b4 2b 40 00 	movl   $0x402bb4,0x20(%ecx)
4080ba:	c7 41 24 cc 2b 40 00 	movl   $0x402bcc,0x24(%ecx)
4080c1:	c7 41 28 04 00 00 00 	movl   $0x4,0x28(%ecx)
4080c8:	c7 41 2c 01 00 00 00 	movl   $0x1,0x2c(%ecx)
4080cf:	89 79 30             	mov    %edi,0x30(%ecx)
4080d2:	c7 41 34 00 29 40 00 	movl   $0x402900,0x34(%ecx)
4080d9:	c7 41 38 d0 2b 40 00 	movl   $0x402bd0,0x38(%ecx)
4080e0:	c7 41 3c cc 2f 40 00 	movl   $0x402fcc,0x3c(%ecx)
4080e7:	6a 04                	push   $0x4
4080e9:	89 7d ec             	mov    %edi,-0x14(%ebp)
4080ec:	5f                   	pop    %edi
4080ed:	89 79 40             	mov    %edi,0x40(%ecx)
4080f0:	89 79 44             	mov    %edi,0x44(%ecx)
4080f3:	89 41 48             	mov    %eax,0x48(%ecx)
4080f6:	8b c2                	mov    %edx,%eax
4080f8:	c7 41 4c 08 2a 40 00 	movl   $0x402a08,0x4c(%ecx)
4080ff:	c7 41 50 f4 2b 40 00 	movl   $0x402bf4,0x50(%ecx)
408106:	c7 41 54 00 25 40 00 	movl   $0x402500,0x54(%ecx)
40810d:	c7 41 58 02 00 00 00 	movl   $0x2,0x58(%ecx)
408114:	c7 41 5c 01 00 00 00 	movl   $0x1,0x5c(%ecx)
40811b:	6a 08                	push   $0x8
40811d:	5f                   	pop    %edi
40811e:	23 c7                	and    %edi,%eax
408120:	89 41 60             	mov    %eax,0x60(%ecx)
408123:	8b c2                	mov    %edx,%eax
408125:	c7 41 64 80 29 40 00 	movl   $0x402980,0x64(%ecx)
40812c:	83 e0 02             	and    $0x2,%eax
40812f:	c7 41 68 08 2c 40 00 	movl   $0x402c08,0x68(%ecx)
408136:	c7 41 6c cc 2b 40 00 	movl   $0x402bcc,0x6c(%ecx)
40813d:	c7 41 70 04 00 00 00 	movl   $0x4,0x70(%ecx)
408144:	c7 41 74 01 00 00 00 	movl   $0x1,0x74(%ecx)
40814b:	89 41 78             	mov    %eax,0x78(%ecx)
40814e:	8b 45 ec             	mov    -0x14(%ebp),%eax
408151:	c7 41 7c 08 2a 40 00 	movl   $0x402a08,0x7c(%ecx)
408158:	c7 81 80 00 00 00 20 	movl   $0x402c20,0x80(%ecx)
40815f:	2c 40 00
408162:	c7 81 84 00 00 00 cc 	movl   $0x402bcc,0x84(%ecx)
408169:	2b 40 00
40816c:	c7 81 88 00 00 00 04 	movl   $0x4,0x88(%ecx)
408173:	00 00 00
408176:	c7 81 8c 00 00 00 01 	movl   $0x1,0x8c(%ecx)
40817d:	00 00 00
408180:	89 81 90 00 00 00    	mov    %eax,0x90(%ecx)
408186:	8b c2                	mov    %edx,%eax
408188:	c7 81 94 00 00 00 08 	movl   $0x402a08,0x94(%ecx)
40818f:	2a 40 00
408192:	83 e0 40             	and    $0x40,%eax
408195:	c7 81 98 00 00 00 40 	movl   $0x402c40,0x98(%ecx)
40819c:	2c 40 00
40819f:	c7 81 9c 00 00 00 5c 	movl   $0x402c5c,0x9c(%ecx)
4081a6:	2c 40 00
4081a9:	c7 81 a0 00 00 00 06 	movl   $0x6,0xa0(%ecx)
4081b0:	00 00 00
4081b3:	c7 81 a4 00 00 00 01 	movl   $0x1,0xa4(%ecx)
4081ba:	00 00 00
4081bd:	89 81 a8 00 00 00    	mov    %eax,0xa8(%ecx)
4081c3:	8b c2                	mov    %edx,%eax
4081c5:	c7 81 ac 00 00 00 08 	movl   $0x402a08,0xac(%ecx)
4081cc:	2a 40 00
4081cf:	c7 81 b0 00 00 00 64 	movl   $0x402c64,0xb0(%ecx)
4081d6:	2c 40 00
4081d9:	c7 81 b4 00 00 00 84 	movl   $0x402c84,0xb4(%ecx)
4081e0:	2c 40 00
4081e3:	c7 81 b8 00 00 00 06 	movl   $0x6,0xb8(%ecx)
4081ea:	00 00 00
4081ed:	c7 81 bc 00 00 00 01 	movl   $0x1,0xbc(%ecx)
4081f4:	00 00 00
4081f7:	c1 e8 07             	shr    $0x7,%eax
4081fa:	f7 d0                	not    %eax
4081fc:	83 e0 01             	and    $0x1,%eax
4081ff:	89 81 c0 00 00 00    	mov    %eax,0xc0(%ecx)
408205:	c7 81 c4 00 00 00 08 	movl   $0x402a08,0xc4(%ecx)
40820c:	2a 40 00
40820f:	c7 81 c8 00 00 00 8c 	movl   $0x402c8c,0xc8(%ecx)
408216:	2c 40 00
408219:	c7 81 cc 00 00 00 d0 	movl   $0x402fd0,0xcc(%ecx)
408220:	2f 40 00
408223:	c7 81 d0 00 00 00 04 	movl   $0x4,0xd0(%ecx)
40822a:	00 00 00
40822d:	c7 81 d4 00 00 00 04 	movl   $0x4,0xd4(%ecx)
408234:	00 00 00
408237:	89 81 d8 00 00 00    	mov    %eax,0xd8(%ecx)
40823d:	c7 81 dc 00 00 00 08 	movl   $0x402a08,0xdc(%ecx)
408244:	2a 40 00
408247:	c7 81 e0 00 00 00 b0 	movl   $0x402cb0,0xe0(%ecx)
40824e:	2c 40 00
408251:	c7 81 e4 00 00 00 cc 	movl   $0x402bcc,0xe4(%ecx)
408258:	2b 40 00
40825b:	c7 81 e8 00 00 00 04 	movl   $0x4,0xe8(%ecx)
408262:	00 00 00
408265:	c7 81 ec 00 00 00 01 	movl   $0x1,0xec(%ecx)
40826c:	00 00 00
40826f:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
408276:	f6 c2 24             	test   $0x24,%dl
408279:	0f 84 29 02 00 00    	je     0x4084a8
40827f:	8d 45 f4             	lea    -0xc(%ebp),%eax
408282:	50                   	push   %eax
408283:	68 19 00 02 00       	push   $0x20019
408288:	56                   	push   %esi
408289:	68 cc 2c 40 00       	push   $0x402ccc
40828e:	ff 75 e8             	push   -0x18(%ebp)
408291:	ff 15 0c f0 40 00    	call   *0x40f00c
408297:	85 c0                	test   %eax,%eax
408299:	75 48                	jne    0x4082e3
40829b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40829e:	50                   	push   %eax
40829f:	56                   	push   %esi
4082a0:	56                   	push   %esi
4082a1:	56                   	push   %esi
4082a2:	68 f8 2c 40 00       	push   $0x402cf8
4082a7:	ff 75 f4             	push   -0xc(%ebp)
4082aa:	ff 15 38 f0 40 00    	call   *0x40f038
4082b0:	85 c0                	test   %eax,%eax
4082b2:	75 2f                	jne    0x4082e3
4082b4:	ff 75 fc             	push   -0x4(%ebp)
4082b7:	6a 40                	push   $0x40
4082b9:	ff 15 a4 f0 40 00    	call   *0x40f0a4
4082bf:	8b c8                	mov    %eax,%ecx
4082c1:	8b 45 10             	mov    0x10(%ebp),%eax
4082c4:	89 08                	mov    %ecx,(%eax)
4082c6:	85 c9                	test   %ecx,%ecx
4082c8:	74 57                	je     0x408321
4082ca:	8d 45 fc             	lea    -0x4(%ebp),%eax
4082cd:	50                   	push   %eax
4082ce:	51                   	push   %ecx
4082cf:	56                   	push   %esi
4082d0:	56                   	push   %esi
4082d1:	68 f8 2c 40 00       	push   $0x402cf8
4082d6:	ff 75 f4             	push   -0xc(%ebp)
4082d9:	ff 15 38 f0 40 00    	call   *0x40f038
4082df:	85 c0                	test   %eax,%eax
4082e1:	74 3b                	je     0x40831e
4082e3:	8b 45 10             	mov    0x10(%ebp),%eax
4082e6:	39 30                	cmp    %esi,(%eax)
4082e8:	74 08                	je     0x4082f2
4082ea:	ff 30                	push   (%eax)
4082ec:	ff 15 5c f0 40 00    	call   *0x40f05c
4082f2:	57                   	push   %edi
4082f3:	6a 40                	push   $0x40
4082f5:	8b de                	mov    %esi,%ebx
4082f7:	ff 15 a4 f0 40 00    	call   *0x40f0a4
4082fd:	8b d0                	mov    %eax,%edx
4082ff:	8b 45 10             	mov    0x10(%ebp),%eax
408302:	89 10                	mov    %edx,(%eax)
408304:	85 d2                	test   %edx,%edx
408306:	74 19                	je     0x408321
408308:	8b 0d ec c1 40 00    	mov    0x40c1ec,%ecx
40830e:	89 0a                	mov    %ecx,(%edx)
408310:	8b 0d f0 c1 40 00    	mov    0x40c1f0,%ecx
408316:	89 4a 04             	mov    %ecx,0x4(%edx)
408319:	89 7d fc             	mov    %edi,-0x4(%ebp)
40831c:	eb 06                	jmp    0x408324
40831e:	8b 45 10             	mov    0x10(%ebp),%eax
408321:	8b 7d fc             	mov    -0x4(%ebp),%edi
408324:	8b 10                	mov    (%eax),%edx
408326:	85 d2                	test   %edx,%edx
408328:	0f 84 7f 01 00 00    	je     0x4084ad
40832e:	8b 45 f0             	mov    -0x10(%ebp),%eax
408331:	a8 20                	test   $0x20,%al
408333:	74 2c                	je     0x408361
408335:	b9 ff df ff ff       	mov    $0xffffdfff,%ecx
40833a:	85 db                	test   %ebx,%ebx
40833c:	75 0c                	jne    0x40834a
40833e:	8d 04 fd ff ff ff ff 	lea    -0x1(,%edi,8),%eax
408345:	83 f8 0d             	cmp    $0xd,%eax
408348:	72 09                	jb     0x408353
40834a:	21 0a                	and    %ecx,(%edx)
40834c:	85 db                	test   %ebx,%ebx
40834e:	75 0f                	jne    0x40835f
408350:	8b 7d fc             	mov    -0x4(%ebp),%edi
408353:	8d 04 fd ff ff ff ff 	lea    -0x1(,%edi,8),%eax
40835a:	83 f8 0d             	cmp    $0xd,%eax
40835d:	72 02                	jb     0x408361
40835f:	21 0a                	and    %ecx,(%edx)
408361:	6a 0b                	push   $0xb
408363:	5f                   	pop    %edi
408364:	89 7d f8             	mov    %edi,-0x8(%ebp)
408367:	39 75 ec             	cmp    %esi,-0x14(%ebp)
40836a:	0f 84 fa 00 00 00    	je     0x40846a
408370:	8b 3a                	mov    (%edx),%edi
408372:	83 e7 fd             	and    $0xfffffffd,%edi
408375:	89 3a                	mov    %edi,(%edx)
408377:	85 db                	test   %ebx,%ebx
408379:	75 0f                	jne    0x40838a
40837b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40837e:	8d 04 cd ff ff ff ff 	lea    -0x1(,%ecx,8),%eax
408385:	83 f8 09             	cmp    $0x9,%eax
408388:	72 0f                	jb     0x408399
40838a:	81 e7 ff fd ff ff    	and    $0xfffffdff,%edi
408390:	89 3a                	mov    %edi,(%edx)
408392:	85 db                	test   %ebx,%ebx
408394:	75 14                	jne    0x4083aa
408396:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408399:	8b c7                	mov    %edi,%eax
40839b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40839e:	8d 04 cd ff ff ff ff 	lea    -0x1(,%ecx,8),%eax
4083a5:	83 f8 09             	cmp    $0x9,%eax
4083a8:	72 12                	jb     0x4083bc
4083aa:	8b c7                	mov    %edi,%eax
4083ac:	25 ff fd ff ff       	and    $0xfffffdff,%eax
4083b1:	89 02                	mov    %eax,(%edx)
4083b3:	85 db                	test   %ebx,%ebx
4083b5:	75 1b                	jne    0x4083d2
4083b7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4083ba:	eb 03                	jmp    0x4083bf
4083bc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4083bf:	8b f8                	mov    %eax,%edi
4083c1:	8d 04 cd ff ff ff ff 	lea    -0x1(,%ecx,8),%eax
4083c8:	89 7d f0             	mov    %edi,-0x10(%ebp)
4083cb:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4083ce:	72 13                	jb     0x4083e3
4083d0:	8b c7                	mov    %edi,%eax
4083d2:	8b f8                	mov    %eax,%edi
4083d4:	81 e7 ff f7 ff ff    	and    $0xfffff7ff,%edi
4083da:	89 3a                	mov    %edi,(%edx)
4083dc:	85 db                	test   %ebx,%ebx
4083de:	75 12                	jne    0x4083f2
4083e0:	8b 4d fc             	mov    -0x4(%ebp),%ecx