40f1ac:	8b 45 08             	mov    0x8(%ebp),%eax
40f1af:	8b 35 f0 85 43 00    	mov    0x4385f0,%esi
40f1b5:	8b 0d 48 8a 43 00    	mov    0x438a48,%ecx
40f1bb:	85 c0                	test   %eax,%eax
40f1bd:	0f 84 35 1c 01 00    	je     0x420df8
40f1c3:	85 c9                	test   %ecx,%ecx
40f1c5:	0f 84 2d 1c 01 00    	je     0x420df8
40f1cb:	ff 75 14             	push   0x14(%ebp)
40f1ce:	89 8b 9c 09 00 00    	mov    %ecx,0x99c(%ebx)
40f1d4:	8d 8b e0 09 00 00    	lea    0x9e0(%ebx),%ecx
40f1da:	89 83 18 04 00 00    	mov    %eax,0x418(%ebx)
40f1e0:	c7 83 98 09 00 00 28 	movl   $0x438d28,0x998(%ebx)
40f1e7:	8d 43 00
40f1ea:	c7 83 90 09 00 00 00 	movl   $0x0,0x990(%ebx)
40f1f1:	00 00 00
40f1f4:	c7 83 b8 09 00 00 00 	movl   $0x0,0x9b8(%ebx)
40f1fb:	00 00 00
40f1fe:	89 83 c8 09 00 00    	mov    %eax,0x9c8(%ebx)
40f204:	e8 ca 56 00 00       	call   0x4148d3
40f209:	89 b3 e4 09 00 00    	mov    %esi,0x9e4(%ebx)
40f20f:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40f215:	8b ce                	mov    %esi,%ecx
40f217:	68 54 02 00 00       	push   $0x254
40f21c:	ff 15 20 a5 43 00    	call   *0x43a520
40f222:	ff d6                	call   *%esi
40f224:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f227:	85 c0                	test   %eax,%eax
40f229:	0f 84 74 1a 01 00    	je     0x420ca3
40f22f:	8b c8                	mov    %eax,%ecx
40f231:	e8 b8 f5 ff ff       	call   0x40e7ee
40f236:	8b f0                	mov    %eax,%esi
40f238:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f23b:	8b fe                	mov    %esi,%edi
40f23d:	89 7d dc             	mov    %edi,-0x24(%ebp)
40f240:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40f247:	85 f6                	test   %esi,%esi
40f249:	0f 84 5e 1a 01 00    	je     0x420cad
40f24f:	ff b3 e4 09 00 00    	push   0x9e4(%ebx)
40f255:	8b 8b 18 04 00 00    	mov    0x418(%ebx),%ecx
40f25b:	ff b3 e0 09 00 00    	push   0x9e0(%ebx)
40f261:	e8 21 55 00 00       	call   0x414787
40f266:	85 c0                	test   %eax,%eax
40f268:	0f 88 49 1a 01 00    	js     0x420cb7
40f26e:	8b cb                	mov    %ebx,%ecx
40f270:	e8 60 52 00 00       	call   0x4144d5
40f275:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f278:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f27e:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40f285:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40f28c:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40f293:	85 c0                	test   %eax,%eax
40f295:	0f 88 d6 03 00 00    	js     0x40f671
40f29b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f29e:	50                   	push   %eax
40f29f:	e8 2f a3 00 00       	call   0x4195d3
40f2a4:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2a7:	85 c0                	test   %eax,%eax
40f2a9:	0f 88 c2 03 00 00    	js     0x40f671
40f2af:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f2b2:	50                   	push   %eax
40f2b3:	e8 1b a3 00 00       	call   0x4195d3
40f2b8:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2bb:	85 c0                	test   %eax,%eax
40f2bd:	0f 88 ae 03 00 00    	js     0x40f671
40f2c3:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f2c6:	8b cb                	mov    %ebx,%ecx
40f2c8:	50                   	push   %eax
40f2c9:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f2cc:	50                   	push   %eax
40f2cd:	e8 0e 46 00 00       	call   0x4138e0
40f2d2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2d5:	85 c0                	test   %eax,%eax
40f2d7:	0f 88 4b 1a 01 00    	js     0x420d28
40f2dd:	8b 86 a8 00 00 00    	mov    0xa8(%esi),%eax
40f2e3:	8d 8e a8 00 00 00    	lea    0xa8(%esi),%ecx
40f2e9:	ff 75 ec             	push   -0x14(%ebp)
40f2ec:	6a 00                	push   $0x0
40f2ee:	8b 40 10             	mov    0x10(%eax),%eax
40f2f1:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2f4:	ff 75 e8             	push   -0x18(%ebp)
40f2f7:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f2fc:	0f 85 c8 19 01 00    	jne    0x420cca
40f302:	e8 99 43 00 00       	call   0x4136a0
40f307:	51                   	push   %ecx
40f308:	ff 75 e8             	push   -0x18(%ebp)
40f30b:	8d 8b 1c 04 00 00    	lea    0x41c(%ebx),%ecx
40f311:	e8 c6 f0 ff ff       	call   0x40e3dc
40f316:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f319:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f31f:	85 c0                	test   %eax,%eax
40f321:	0f 88 4a 03 00 00    	js     0x40f671
40f327:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f32a:	50                   	push   %eax
40f32b:	e8 a3 a2 00 00       	call   0x4195d3
40f330:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f333:	85 c0                	test   %eax,%eax
40f335:	0f 88 36 03 00 00    	js     0x40f671
40f33b:	8b 45 e0             	mov    -0x20(%ebp),%eax
40f33e:	8b cb                	mov    %ebx,%ecx
40f340:	89 86 3c 02 00 00    	mov    %eax,0x23c(%esi)
40f346:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f349:	50                   	push   %eax
40f34a:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f34d:	50                   	push   %eax
40f34e:	e8 8d 45 00 00       	call   0x4138e0
40f353:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f356:	85 c0                	test   %eax,%eax
40f358:	0f 88 ca 19 01 00    	js     0x420d28
40f35e:	8b 46 54             	mov    0x54(%esi),%eax
40f361:	8d 4e 54             	lea    0x54(%esi),%ecx
40f364:	ff 75 ec             	push   -0x14(%ebp)
40f367:	6a 00                	push   $0x0
40f369:	8b 40 10             	mov    0x10(%eax),%eax
40f36c:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f36f:	ff 75 e8             	push   -0x18(%ebp)
40f372:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f377:	0f 85 63 19 01 00    	jne    0x420ce0
40f37d:	e8 1e 43 00 00       	call   0x4136a0
40f382:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f385:	8b cb                	mov    %ebx,%ecx
40f387:	50                   	push   %eax
40f388:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f38b:	50                   	push   %eax
40f38c:	e8 4f 45 00 00       	call   0x4138e0
40f391:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f394:	85 c0                	test   %eax,%eax
40f396:	0f 88 8c 19 01 00    	js     0x420d28
40f39c:	8b 06                	mov    (%esi),%eax
40f39e:	ff 75 ec             	push   -0x14(%ebp)
40f3a1:	6a 00                	push   $0x0
40f3a3:	8b 40 10             	mov    0x10(%eax),%eax
40f3a6:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f3a9:	ff 75 e8             	push   -0x18(%ebp)
40f3ac:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f3b1:	0f 85 3c 19 01 00    	jne    0x420cf3
40f3b7:	8b ce                	mov    %esi,%ecx
40f3b9:	e8 e2 42 00 00       	call   0x4136a0
40f3be:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f3c1:	8b cb                	mov    %ebx,%ecx
40f3c3:	50                   	push   %eax
40f3c4:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f3c7:	50                   	push   %eax
40f3c8:	e8 13 45 00 00       	call   0x4138e0
40f3cd:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f3d0:	85 c0                	test   %eax,%eax
40f3d2:	0f 88 50 19 01 00    	js     0x420d28
40f3d8:	8b 83 f8 05 00 00    	mov    0x5f8(%ebx),%eax
40f3de:	ff 75 ec             	push   -0x14(%ebp)
40f3e1:	6a 00                	push   $0x0
40f3e3:	8b 40 10             	mov    0x10(%eax),%eax
40f3e6:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f3e9:	ff 75 e8             	push   -0x18(%ebp)
40f3ec:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f3f1:	0f 85 0e 19 01 00    	jne    0x420d05
40f3f7:	8d 8b f8 05 00 00    	lea    0x5f8(%ebx),%ecx
40f3fd:	e8 9e 42 00 00       	call   0x4136a0
40f402:	8d 83 4c 06 00 00    	lea    0x64c(%ebx),%eax
40f408:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f40e:	85 c0                	test   %eax,%eax
40f410:	0f 84 05 19 01 00    	je     0x420d1b
40f416:	50                   	push   %eax
40f417:	e8 c7 e7 ff ff       	call   0x40dbe3
40f41c:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f41f:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f425:	85 c0                	test   %eax,%eax
40f427:	0f 88 44 02 00 00    	js     0x40f671
40f42d:	8d 83 54 06 00 00    	lea    0x654(%ebx),%eax
40f433:	50                   	push   %eax
40f434:	e8 9a a1 00 00       	call   0x4195d3
40f439:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f43c:	85 c0                	test   %eax,%eax
40f43e:	0f 88 2d 02 00 00    	js     0x40f671
40f444:	8d 83 58 06 00 00    	lea    0x658(%ebx),%eax
40f44a:	50                   	push   %eax
40f44b:	e8 83 a1 00 00       	call   0x4195d3
40f450:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f453:	85 c0                	test   %eax,%eax
40f455:	0f 88 16 02 00 00    	js     0x40f671
40f45b:	8d 83 5c 06 00 00    	lea    0x65c(%ebx),%eax
40f461:	50                   	push   %eax
40f462:	e8 6c a1 00 00       	call   0x4195d3
40f467:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f46a:	85 c0                	test   %eax,%eax
40f46c:	0f 88 ff 01 00 00    	js     0x40f671
40f472:	8d 83 60 06 00 00    	lea    0x660(%ebx),%eax
40f478:	50                   	push   %eax
40f479:	e8 55 a1 00 00       	call   0x4195d3
40f47e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f481:	85 c0                	test   %eax,%eax
40f483:	0f 88 e8 01 00 00    	js     0x40f671
40f489:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f48c:	8b cb                	mov    %ebx,%ecx
40f48e:	50                   	push   %eax
40f48f:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f492:	50                   	push   %eax
40f493:	e8 48 44 00 00       	call   0x4138e0
40f498:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f49b:	85 c0                	test   %eax,%eax
40f49d:	0f 88 ce 01 00 00    	js     0x40f671
40f4a3:	8b 83 64 06 00 00    	mov    0x664(%ebx),%eax
40f4a9:	ff 75 ec             	push   -0x14(%ebp)
40f4ac:	6a 00                	push   $0x0
40f4ae:	8b 40 10             	mov    0x10(%eax),%eax
40f4b1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f4b4:	ff 75 e8             	push   -0x18(%ebp)
40f4b7:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f4bc:	0f 85 71 18 01 00    	jne    0x420d33
40f4c2:	8d 8b 64 06 00 00    	lea    0x664(%ebx),%ecx
40f4c8:	e8 d3 41 00 00       	call   0x4136a0
40f4cd:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f4d0:	8b cb                	mov    %ebx,%ecx
40f4d2:	50                   	push   %eax
40f4d3:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f4d6:	50                   	push   %eax
40f4d7:	e8 04 44 00 00       	call   0x4138e0
40f4dc:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f4df:	85 c0                	test   %eax,%eax
40f4e1:	0f 88 8a 01 00 00    	js     0x40f671
40f4e7:	8b 83 f8 07 00 00    	mov    0x7f8(%ebx),%eax
40f4ed:	ff 75 ec             	push   -0x14(%ebp)
40f4f0:	6a 00                	push   $0x0
40f4f2:	8b 40 10             	mov    0x10(%eax),%eax
40f4f5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f4f8:	ff 75 e8             	push   -0x18(%ebp)
40f4fb:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f500:	0f 85 43 18 01 00    	jne    0x420d49
40f506:	8d 8b f8 07 00 00    	lea    0x7f8(%ebx),%ecx
40f50c:	e8 8f 41 00 00       	call   0x4136a0
40f511:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f514:	50                   	push   %eax
40f515:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f51b:	e8 b3 a0 00 00       	call   0x4195d3
40f520:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f523:	85 c0                	test   %eax,%eax
40f525:	0f 88 46 01 00 00    	js     0x40f671
40f52b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f52e:	8d 83 ec 09 00 00    	lea    0x9ec(%ebx),%eax
40f534:	50                   	push   %eax
40f535:	89 8b e8 09 00 00    	mov    %ecx,0x9e8(%ebx)
40f53b:	51                   	push   %ecx
40f53c:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f542:	e8 fb a6 00 00       	call   0x419c42
40f547:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f54a:	85 c0                	test   %eax,%eax
40f54c:	0f 88 1f 01 00 00    	js     0x40f671
40f552:	8b 8b 5c 06 00 00    	mov    0x65c(%ebx),%ecx
40f558:	f6 c1 10             	test   $0x10,%cl
40f55b:	0f 85 fe 17 01 00    	jne    0x420d5f
40f561:	33 c0                	xor    %eax,%eax
40f563:	89 83 e0 05 00 00    	mov    %eax,0x5e0(%ebx)
40f569:	f6 c1 20             	test   $0x20,%cl
40f56c:	0f 85 f7 17 01 00    	jne    0x420d69
40f572:	33 c0                	xor    %eax,%eax
40f574:	89 83 e4 05 00 00    	mov    %eax,0x5e4(%ebx)
40f57a:	f6 c1 40             	test   $0x40,%cl
40f57d:	0f 85 f0 17 01 00    	jne    0x420d73
40f583:	33 c0                	xor    %eax,%eax
40f585:	89 83 e8 05 00 00    	mov    %eax,0x5e8(%ebx)
40f58b:	8b c1                	mov    %ecx,%eax
40f58d:	c1 e8 07             	shr    $0x7,%eax
40f590:	83 e0 01             	and    $0x1,%eax
40f593:	89 83 f0 05 00 00    	mov    %eax,0x5f0(%ebx)
40f599:	f7 c1 00 04 00 00    	test   $0x400,%ecx
40f59f:	0f 85 d8 17 01 00    	jne    0x420d7d
40f5a5:	33 c0                	xor    %eax,%eax
40f5a7:	c1 e9 0c             	shr    $0xc,%ecx
40f5aa:	83 e1 01             	and    $0x1,%ecx
40f5ad:	89 83 ec 05 00 00    	mov    %eax,0x5ec(%ebx)
40f5b3:	89 8b f4 05 00 00    	mov    %ecx,0x5f4(%ebx)
40f5b9:	51                   	push   %ecx
40f5ba:	8b 8b 18 04 00 00    	mov    0x418(%ebx),%ecx
40f5c0:	e8 d5 57 00 00       	call   0x414d9a
40f5c5:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f5c8:	85 c0                	test   %eax,%eax
40f5ca:	0f 88 b7 17 01 00    	js     0x420d87
40f5d0:	8b b3 98 09 00 00    	mov    0x998(%ebx),%esi
40f5d6:	56                   	push   %esi
40f5d7:	89 75 d8             	mov    %esi,-0x28(%ebp)
40f5da:	ff 15 d4 a2 43 00    	call   *0x43a2d4
40f5e0:	ff 75 e4             	push   -0x1c(%ebp)
40f5e3:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40f5e7:	8b 83 9c 09 00 00    	mov    0x99c(%ebx),%eax
40f5ed:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f5f0:	8b 40 08             	mov    0x8(%eax),%eax
40f5f3:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f5f6:	3d b0 df 40 00       	cmp    $0x40dfb0,%eax
40f5fb:	0f 85 99 17 01 00    	jne    0x420d9a
40f601:	e8 aa e9 ff ff       	call   0x40dfb0
40f606:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f609:	33 d2                	xor    %edx,%edx
40f60b:	ff 75 e4             	push   -0x1c(%ebp)
40f60e:	f7 71 0c             	divl   0xc(%ecx)
40f611:	c1 e2 04             	shl    $0x4,%edx
40f614:	03 51 24             	add    0x24(%ecx),%edx
40f617:	8b ca                	mov    %edx,%ecx
40f619:	e8 98 ec ff ff       	call   0x40e2b6
40f61e:	8b 10                	mov    (%eax),%edx
40f620:	85 d2                	test   %edx,%edx
40f622:	0f 85 82 17 01 00    	jne    0x420daa
40f628:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40f62b:	8b 8a 4c 02 00 00    	mov    0x24c(%edx),%ecx
40f631:	8b 01                	mov    (%ecx),%eax
40f633:	89 03                	mov    %eax,(%ebx)
40f635:	89 19                	mov    %ebx,(%ecx)
40f637:	3b 8a 4c 02 00 00    	cmp    0x24c(%edx),%ecx
40f63d:	75 06                	jne    0x40f645
40f63f:	89 9a 4c 02 00 00    	mov    %ebx,0x24c(%edx)
40f645:	ff 82 50 02 00 00    	incl   0x250(%edx)
40f64b:	8b 8b 9c 09 00 00    	mov    0x99c(%ebx),%ecx
40f651:	52                   	push   %edx
40f652:	52                   	push   %edx
40f653:	e8 dc e5 ff ff       	call   0x40dc34
40f658:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f65b:	33 ff                	xor    %edi,%edi
40f65d:	89 83 a0 09 00 00    	mov    %eax,0x9a0(%ebx)
40f663:	85 f6                	test   %esi,%esi
40f665:	74 07                	je     0x40f66e
40f667:	56                   	push   %esi
40f668:	ff 15 9c a2 43 00    	call   *0x43a29c
40f66e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f671:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40f678:	85 ff                	test   %edi,%edi
40f67a:	0f 85 51 17 01 00    	jne    0x420dd1
40f680:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f683:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f68a:	59                   	pop    %ecx
40f68b:	5f                   	pop    %edi
40f68c:	5e                   	pop    %esi
40f68d:	5b                   	pop    %ebx
40f68e:	8b e5                	mov    %ebp,%esp
40f690:	5d                   	pop    %ebp
40f691:	c2 14 00             	ret    $0x14
40f694:	6a 08                	push   $0x8
40f696:	b8 73 e6 41 00       	mov    $0x41e673,%eax
40f69b:	e8 6e b7 00 00       	call   0x41ae0e
40f6a0:	8b f1                	mov    %ecx,%esi
40f6a2:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f6a5:	89 75 ec             	mov    %esi,-0x14(%ebp)
40f6a8:	8d 4e 04             	lea    0x4(%esi),%ecx
40f6ab:	c7 06 9c 11 40 00    	movl   $0x40119c,(%esi)
40f6b1:	e8 65 3e 00 00       	call   0x41351b
40f6b6:	33 c0                	xor    %eax,%eax
40f6b8:	89 86 98 00 00 00    	mov    %eax,0x98(%esi)
40f6be:	89 86 9c 00 00 00    	mov    %eax,0x9c(%esi)
40f6c4:	50                   	push   %eax
40f6c5:	51                   	push   %ecx
40f6c6:	51                   	push   %ecx
40f6c7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6ca:	8b ce                	mov    %esi,%ecx
40f6cc:	68 02 00 00 80       	push   $0x80000002