40e20e:	8b ce                	mov    %esi,%ecx
40e210:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40e216:	ff d6                	call   *%esi
40e218:	5e                   	pop    %esi
40e219:	c3                   	ret
40e21a:	cc                   	int3
40e21b:	cc                   	int3
40e21c:	cc                   	int3
40e21d:	cc                   	int3
40e21e:	cc                   	int3
40e21f:	cc                   	int3
40e220:	8b ff                	mov    %edi,%edi
40e222:	55                   	push   %ebp
40e223:	8b ec                	mov    %esp,%ebp
40e225:	56                   	push   %esi
40e226:	8b 35 a0 ba 42 00    	mov    0x42baa0,%esi
40e22c:	85 f6                	test   %esi,%esi
40e22e:	75 1d                	jne    0x40e24d
40e230:	68 94 24 40 00       	push   $0x402494
40e235:	e8 40 ff ff ff       	call   0x40e17a
40e23a:	50                   	push   %eax
40e23b:	ff 15 84 c1 42 00    	call   *0x42c184
40e241:	8b f0                	mov    %eax,%esi
40e243:	89 35 a0 ba 42 00    	mov    %esi,0x42baa0
40e249:	85 f6                	test   %esi,%esi
40e24b:	74 10                	je     0x40e25d
40e24d:	ff 75 0c             	push   0xc(%ebp)
40e250:	8b ce                	mov    %esi,%ecx
40e252:	ff 75 08             	push   0x8(%ebp)
40e255:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40e25b:	ff d6                	call   *%esi
40e25d:	5e                   	pop    %esi
40e25e:	5d                   	pop    %ebp
40e25f:	c2 08 00             	ret    $0x8
40e262:	8b ff                	mov    %edi,%edi
40e264:	55                   	push   %ebp
40e265:	8b ec                	mov    %esp,%ebp
40e267:	56                   	push   %esi
40e268:	8b 35 98 ba 42 00    	mov    0x42ba98,%esi
40e26e:	57                   	push   %edi
40e26f:	8b f9                	mov    %ecx,%edi
40e271:	85 f6                	test   %esi,%esi
40e273:	75 24                	jne    0x40e299
40e275:	68 34 25 40 00       	push   $0x402534
40e27a:	e8 fb fe ff ff       	call   0x40e17a
40e27f:	50                   	push   %eax
40e280:	ff 15 84 c1 42 00    	call   *0x42c184
40e286:	8b f0                	mov    %eax,%esi
40e288:	89 35 98 ba 42 00    	mov    %esi,0x42ba98
40e28e:	85 f6                	test   %esi,%esi
40e290:	75 07                	jne    0x40e299
40e292:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
40e297:	eb 18                	jmp    0x40e2b1
40e299:	ff 75 14             	push   0x14(%ebp)
40e29c:	8b ce                	mov    %esi,%ecx
40e29e:	ff 75 10             	push   0x10(%ebp)
40e2a1:	ff 75 0c             	push   0xc(%ebp)
40e2a4:	6a 00                	push   $0x0
40e2a6:	6a 00                	push   $0x0
40e2a8:	57                   	push   %edi
40e2a9:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40e2af:	ff d6                	call   *%esi
40e2b1:	5f                   	pop    %edi
40e2b2:	5e                   	pop    %esi
40e2b3:	5d                   	pop    %ebp
40e2b4:	c2 10 00             	ret    $0x10
40e2b7:	8b ff                	mov    %edi,%edi
40e2b9:	55                   	push   %ebp
40e2ba:	8b ec                	mov    %esp,%ebp
40e2bc:	53                   	push   %ebx
40e2bd:	56                   	push   %esi
40e2be:	8b 35 94 ba 42 00    	mov    0x42ba94,%esi
40e2c4:	8b d9                	mov    %ecx,%ebx
40e2c6:	57                   	push   %edi
40e2c7:	8b fa                	mov    %edx,%edi
40e2c9:	85 f6                	test   %esi,%esi
40e2cb:	75 24                	jne    0x40e2f1
40e2cd:	68 48 25 40 00       	push   $0x402548
40e2d2:	e8 a3 fe ff ff       	call   0x40e17a
40e2d7:	50                   	push   %eax
40e2d8:	ff 15 84 c1 42 00    	call   *0x42c184
40e2de:	8b f0                	mov    %eax,%esi
40e2e0:	89 35 94 ba 42 00    	mov    %esi,0x42ba94
40e2e6:	85 f6                	test   %esi,%esi
40e2e8:	75 07                	jne    0x40e2f1
40e2ea:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
40e2ef:	eb 19                	jmp    0x40e30a
40e2f1:	ff 75 18             	push   0x18(%ebp)
40e2f4:	8b ce                	mov    %esi,%ecx
40e2f6:	ff 75 14             	push   0x14(%ebp)
40e2f9:	6a 00                	push   $0x0
40e2fb:	6a 00                	push   $0x0
40e2fd:	ff 75 08             	push   0x8(%ebp)
40e300:	57                   	push   %edi
40e301:	53                   	push   %ebx
40e302:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40e308:	ff d6                	call   *%esi
40e30a:	5f                   	pop    %edi
40e30b:	5e                   	pop    %esi
40e30c:	5b                   	pop    %ebx
40e30d:	5d                   	pop    %ebp
40e30e:	c2 14 00             	ret    $0x14
40e311:	8b ff                	mov    %edi,%edi
40e313:	55                   	push   %ebp
40e314:	8b ec                	mov    %esp,%ebp
40e316:	53                   	push   %ebx
40e317:	56                   	push   %esi
40e318:	8b 35 90 ba 42 00    	mov    0x42ba90,%esi
40e31e:	8b d9                	mov    %ecx,%ebx
40e320:	57                   	push   %edi
40e321:	8b fa                	mov    %edx,%edi
40e323:	85 f6                	test   %esi,%esi
40e325:	75 24                	jne    0x40e34b
40e327:	68 60 25 40 00       	push   $0x402560
40e32c:	e8 49 fe ff ff       	call   0x40e17a
40e331:	50                   	push   %eax
40e332:	ff 15 84 c1 42 00    	call   *0x42c184
40e338:	8b f0                	mov    %eax,%esi
40e33a:	89 35 90 ba 42 00    	mov    %esi,0x42ba90
40e340:	85 f6                	test   %esi,%esi
40e342:	75 07                	jne    0x40e34b
40e344:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
40e349:	eb 1d                	jmp    0x40e368
40e34b:	33 c0                	xor    %eax,%eax
40e34d:	8b ce                	mov    %esi,%ecx
40e34f:	50                   	push   %eax
40e350:	50                   	push   %eax
40e351:	50                   	push   %eax
40e352:	ff 75 14             	push   0x14(%ebp)
40e355:	ff 75 10             	push   0x10(%ebp)
40e358:	57                   	push   %edi
40e359:	ff 75 0c             	push   0xc(%ebp)
40e35c:	ff 75 08             	push   0x8(%ebp)
40e35f:	53                   	push   %ebx
40e360:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40e366:	ff d6                	call   *%esi
40e368:	5f                   	pop    %edi
40e369:	5e                   	pop    %esi
40e36a:	5b                   	pop    %ebx
40e36b:	5d                   	pop    %ebp
40e36c:	c2 1c 00             	ret    $0x1c
40e36f:	8b ff                	mov    %edi,%edi
40e371:	55                   	push   %ebp
40e372:	8b ec                	mov    %esp,%ebp
40e374:	83 ec 30             	sub    $0x30,%esp
40e377:	a1 74 b6 42 00       	mov    0x42b674,%eax
40e37c:	33 c5                	xor    %ebp,%eax
40e37e:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e381:	53                   	push   %ebx
40e382:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40e385:	56                   	push   %esi
40e386:	57                   	push   %edi
40e387:	6a 34                	push   $0x34
40e389:	33 f6                	xor    %esi,%esi
40e38b:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40e38e:	8b f9                	mov    %ecx,%edi
40e390:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40e393:	56                   	push   %esi
40e394:	57                   	push   %edi
40e395:	89 7d f4             	mov    %edi,-0xc(%ebp)
40e398:	89 75 d0             	mov    %esi,-0x30(%ebp)
40e39b:	e8 0d a0 01 00       	call   0x4283ad
40e3a0:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40e3a3:	83 c4 0c             	add    $0xc,%esp
40e3a6:	f7 db                	neg    %ebx
40e3a8:	89 07                	mov    %eax,(%edi)
40e3aa:	89 75 dc             	mov    %esi,-0x24(%ebp)
40e3ad:	1b db                	sbb    %ebx,%ebx
40e3af:	81 e3 c8 00 00 00    	and    $0xc8,%ebx
40e3b5:	85 c0                	test   %eax,%eax
40e3b7:	75 0d                	jne    0x40e3c6
40e3b9:	a1 1c 28 40 00       	mov    0x40281c,%eax
40e3be:	8b 0d 20 28 40 00    	mov    0x402820,%ecx
40e3c4:	eb 0b                	jmp    0x40e3d1
40e3c6:	a1 0c 28 40 00       	mov    0x40280c,%eax
40e3cb:	8b 0d 10 28 40 00    	mov    0x402810,%ecx
40e3d1:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40e3d4:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40e3d7:	51                   	push   %ecx
40e3d8:	ff 75 e0             	push   -0x20(%ebp)
40e3db:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e3de:	8d 47 08             	lea    0x8(%edi),%eax
40e3e1:	50                   	push   %eax
40e3e2:	51                   	push   %ecx
40e3e3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40e3e6:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40e3e9:	e8 74 fe ff ff       	call   0x40e262
40e3ee:	89 45 d8             	mov    %eax,-0x28(%ebp)
40e3f1:	6a 10                	push   $0x10
40e3f3:	5a                   	pop    %edx
40e3f4:	85 c0                	test   %eax,%eax
40e3f6:	75 74                	jne    0x40e46c
40e3f8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e3fb:	85 c9                	test   %ecx,%ecx
40e3fd:	74 04                	je     0x40e403
40e3ff:	8b f1                	mov    %ecx,%esi
40e401:	eb 69                	jmp    0x40e46c
40e403:	b8 c8 00 00 00       	mov    $0xc8,%eax
40e408:	3b d8                	cmp    %eax,%ebx
40e40a:	73 02                	jae    0x40e40e
40e40c:	8b d8                	mov    %eax,%ebx
40e40e:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
40e411:	73 03                	jae    0x40e416
40e413:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40e416:	3b da                	cmp    %edx,%ebx
40e418:	73 02                	jae    0x40e41c
40e41a:	8b da                	mov    %edx,%ebx
40e41c:	8b 45 dc             	mov    -0x24(%ebp),%eax
40e41f:	85 c0                	test   %eax,%eax
40e421:	74 11                	je     0x40e434
40e423:	50                   	push   %eax
40e424:	33 c9                	xor    %ecx,%ecx
40e426:	51                   	push   %ecx
40e427:	ff 15 a0 c1 42 00    	call   *0x42c1a0
40e42d:	50                   	push   %eax
40e42e:	ff 15 a4 c1 42 00    	call   *0x42c1a4
40e434:	53                   	push   %ebx
40e435:	6a 00                	push   $0x0
40e437:	ff 15 a0 c1 42 00    	call   *0x42c1a0
40e43d:	50                   	push   %eax
40e43e:	ff 15 9c c1 42 00    	call   *0x42c19c
40e444:	8b f0                	mov    %eax,%esi
40e446:	89 75 dc             	mov    %esi,-0x24(%ebp)
40e449:	85 f6                	test   %esi,%esi
40e44b:	0f 84 a3 00 00 00    	je     0x40e4f4
40e451:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40e454:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40e457:	50                   	push   %eax
40e458:	56                   	push   %esi
40e459:	8d 47 08             	lea    0x8(%edi),%eax
40e45c:	50                   	push   %eax
40e45d:	51                   	push   %ecx
40e45e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40e461:	e8 fc fd ff ff       	call   0x40e262
40e466:	6a 10                	push   $0x10
40e468:	89 45 d8             	mov    %eax,-0x28(%ebp)
40e46b:	5a                   	pop    %edx
40e46c:	3d 23 00 00 c0       	cmp    $0xc0000023,%eax
40e471:	74 90                	je     0x40e403
40e473:	85 c0                	test   %eax,%eax
40e475:	0f 85 52 01 00 00    	jne    0x40e5cd
40e47b:	85 f6                	test   %esi,%esi
40e47d:	0f 84 4a 01 00 00    	je     0x40e5cd
40e483:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40e486:	83 fa 04             	cmp    $0x4,%edx
40e489:	76 05                	jbe    0x40e490
40e48b:	8a 06                	mov    (%esi),%al
40e48d:	88 47 0c             	mov    %al,0xc(%edi)
40e490:	6a 10                	push   $0x10
40e492:	59                   	pop    %ecx
40e493:	3b d1                	cmp    %ecx,%edx
40e495:	0f 82 dd 00 00 00    	jb     0x40e578
40e49b:	80 7f 0c 02          	cmpb   $0x2,0xc(%edi)
40e49f:	0f 85 d3 00 00 00    	jne    0x40e578
40e4a5:	0f b7 46 02          	movzwl 0x2(%esi),%eax
40e4a9:	66 3b c1             	cmp    %cx,%ax
40e4ac:	0f 82 c6 00 00 00    	jb     0x40e578
40e4b2:	0f b7 46 04          	movzwl 0x4(%esi),%eax
40e4b6:	6b c8 0c             	imul   $0xc,%eax,%ecx
40e4b9:	0f b7 46 06          	movzwl 0x6(%esi),%eax
40e4bd:	c1 e0 04             	shl    $0x4,%eax
40e4c0:	03 c8                	add    %eax,%ecx
40e4c2:	0f b7 46 02          	movzwl 0x2(%esi),%eax
40e4c6:	03 c8                	add    %eax,%ecx
40e4c8:	3b d1                	cmp    %ecx,%edx
40e4ca:	0f 82 a5 00 00 00    	jb     0x40e575
40e4d0:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
40e4d4:	33 c0                	xor    %eax,%eax
40e4d6:	89 45 e0             	mov    %eax,-0x20(%ebp)
40e4d9:	66 85 c9             	test   %cx,%cx
40e4dc:	74 4d                	je     0x40e52b
40e4de:	89 45 d8             	mov    %eax,-0x28(%ebp)
40e4e1:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
40e4e4:	75 18                	jne    0x40e4fe
40e4e6:	8b 0d 14 28 40 00    	mov    0x402814,%ecx
40e4ec:	8b 15 18 28 40 00    	mov    0x402818,%edx
40e4f2:	eb 16                	jmp    0x40e50a
40e4f4:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
40e4f9:	e9 e9 00 00 00       	jmp    0x40e5e7
40e4fe:	8b 0d 04 28 40 00    	mov    0x402804,%ecx
40e504:	8b 15 08 28 40 00    	mov    0x402808,%edx
40e50a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40e50d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40e510:	51                   	push   %ecx
40e511:	50                   	push   %eax
40e512:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e515:	89 55 f4             	mov    %edx,-0xc(%ebp)
40e518:	50                   	push   %eax
40e519:	51                   	push   %ecx
40e51a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40e51d:	e8 40 fd ff ff       	call   0x40e262
40e522:	8b 45 e0             	mov    -0x20(%ebp),%eax
40e525:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40e528:	89 45 d0             	mov    %eax,-0x30(%ebp)
40e52b:	8d 4e 10             	lea    0x10(%esi),%ecx
40e52e:	89 77 14             	mov    %esi,0x14(%edi)
40e531:	89 4f 18             	mov    %ecx,0x18(%edi)
40e534:	0f b7 46 04          	movzwl 0x4(%esi),%eax
40e538:	6b c0 0c             	imul   $0xc,%eax,%eax
40e53b:	03 c1                	add    %ecx,%eax
40e53d:	89 47 1c             	mov    %eax,0x1c(%edi)
40e540:	33 c0                	xor    %eax,%eax
40e542:	39 45 d0             	cmp    %eax,-0x30(%ebp)
40e545:	0f 95 c0             	setne  %al
40e548:	89 47 20             	mov    %eax,0x20(%edi)
40e54b:	80 3e 02             	cmpb   $0x2,(%esi)
40e54e:	75 5a                	jne    0x40e5aa
40e550:	80 7e 01 02          	cmpb   $0x2,0x1(%esi)
40e554:	73 54                	jae    0x40e5aa
40e556:	0f b7 46 04          	movzwl 0x4(%esi),%eax
40e55a:	6b d0 0c             	imul   $0xc,%eax,%edx
40e55d:	0f b7 46 06          	movzwl 0x6(%esi),%eax
40e561:	c1 e0 04             	shl    $0x4,%eax
40e564:	03 d0                	add    %eax,%edx
40e566:	0f b7 46 02          	movzwl 0x2(%esi),%eax
40e56a:	03 d0                	add    %eax,%edx
40e56c:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
40e573:	eb 35                	jmp    0x40e5aa
40e575:	6a 10                	push   $0x10
40e577:	59                   	pop    %ecx
40e578:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40e57b:	33 c0                	xor    %eax,%eax
40e57d:	8b fe                	mov    %esi,%edi
40e57f:	ab                   	stos   %eax,%es:(%edi)
40e580:	ab                   	stos   %eax,%es:(%edi)
40e581:	ab                   	stos   %eax,%es:(%edi)
40e582:	ab                   	stos   %eax,%es:(%edi)
40e583:	8b 7d f4             	mov    -0xc(%ebp),%edi
40e586:	66 89 4e 02          	mov    %cx,0x2(%esi)
40e58a:	66 c7 06 02 02       	movw   $0x202,(%esi)
40e58f:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40e592:	89 77 14             	mov    %esi,0x14(%edi)
40e595:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
40e599:	03 ce                	add    %esi,%ecx
40e59b:	89 4f 18             	mov    %ecx,0x18(%edi)
40e59e:	0f b7 46 04          	movzwl 0x4(%esi),%eax
40e5a2:	6b c0 0c             	imul   $0xc,%eax,%eax
40e5a5:	03 c1                	add    %ecx,%eax
40e5a7:	89 47 1c             	mov    %eax,0x1c(%edi)
40e5aa:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40e5ad:	89 77 24             	mov    %esi,0x24(%edi)
40e5b0:	89 57 28             	mov    %edx,0x28(%edi)
40e5b3:	85 c9                	test   %ecx,%ecx
40e5b5:	75 05                	jne    0x40e5bc
40e5b7:	bb c8 00 00 00       	mov    $0xc8,%ebx
40e5bc:	33 c0                	xor    %eax,%eax
40e5be:	89 5f 2c             	mov    %ebx,0x2c(%edi)
40e5c1:	3b f1                	cmp    %ecx,%esi
40e5c3:	0f 94 c0             	sete   %al
40e5c6:	89 47 30             	mov    %eax,0x30(%edi)