40a253:	8b ec                	mov    %esp,%ebp
40a255:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40a259:	56                   	push   %esi
40a25a:	8b f1                	mov    %ecx,%esi
40a25c:	c7 06 0c 10 40 00    	movl   $0x40100c,(%esi)
40a262:	74 07                	je     0x40a26b
40a264:	56                   	push   %esi
40a265:	e8 70 05 00 00       	call   0x40a7da
40a26a:	59                   	pop    %ecx
40a26b:	8b c6                	mov    %esi,%eax
40a26d:	5e                   	pop    %esi
40a26e:	5d                   	pop    %ebp
40a26f:	c2 04 00             	ret    $0x4
40a272:	8b ff                	mov    %edi,%edi
40a274:	55                   	push   %ebp
40a275:	8b ec                	mov    %esp,%ebp
40a277:	83 ec 14             	sub    $0x14,%esp
40a27a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40a27e:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a281:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40a285:	50                   	push   %eax
40a286:	ff 15 0c e1 40 00    	call   *0x40e10c
40a28c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a28f:	33 45 f4             	xor    -0xc(%ebp),%eax
40a292:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a295:	ff 15 b4 e0 40 00    	call   *0x40e0b4
40a29b:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a29e:	ff 15 ac e0 40 00    	call   *0x40e0ac
40a2a4:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a2a7:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a2aa:	50                   	push   %eax
40a2ab:	ff 15 c4 e0 40 00    	call   *0x40e0c4
40a2b1:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a2b4:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40a2b7:	33 45 ec             	xor    -0x14(%ebp),%eax
40a2ba:	33 45 fc             	xor    -0x4(%ebp),%eax
40a2bd:	33 c1                	xor    %ecx,%eax
40a2bf:	c9                   	leave
40a2c0:	c3                   	ret
40a2c1:	8b 0d 50 d1 40 00    	mov    0x40d150,%ecx
40a2c7:	56                   	push   %esi
40a2c8:	57                   	push   %edi
40a2c9:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40a2ce:	be 00 00 ff ff       	mov    $0xffff0000,%esi
40a2d3:	3b cf                	cmp    %edi,%ecx
40a2d5:	74 04                	je     0x40a2db
40a2d7:	85 ce                	test   %ecx,%esi
40a2d9:	75 26                	jne    0x40a301
40a2db:	e8 92 ff ff ff       	call   0x40a272
40a2e0:	8b c8                	mov    %eax,%ecx
40a2e2:	3b cf                	cmp    %edi,%ecx
40a2e4:	75 07                	jne    0x40a2ed
40a2e6:	b9 4f e6 40 bb       	mov    $0xbb40e64f,%ecx
40a2eb:	eb 0e                	jmp    0x40a2fb
40a2ed:	85 ce                	test   %ecx,%esi
40a2ef:	75 0a                	jne    0x40a2fb
40a2f1:	0d 11 47 00 00       	or     $0x4711,%eax
40a2f6:	c1 e0 10             	shl    $0x10,%eax
40a2f9:	0b c8                	or     %eax,%ecx
40a2fb:	89 0d 50 d1 40 00    	mov    %ecx,0x40d150
40a301:	f7 d1                	not    %ecx
40a303:	5f                   	pop    %edi
40a304:	89 0d 54 d1 40 00    	mov    %ecx,0x40d154
40a30a:	5e                   	pop    %esi
40a30b:	c3                   	ret
40a30c:	33 c0                	xor    %eax,%eax
40a30e:	40                   	inc    %eax
40a30f:	c3                   	ret
40a310:	33 c0                	xor    %eax,%eax
40a312:	c3                   	ret
40a313:	b8 00 40 00 00       	mov    $0x4000,%eax
40a318:	c3                   	ret
40a319:	68 d8 d4 40 00       	push   $0x40d4d8
40a31e:	ff 15 70 e0 40 00    	call   *0x40e070
40a324:	c3                   	ret
40a325:	b0 01                	mov    $0x1,%al
40a327:	c3                   	ret
40a328:	68 00 00 03 00       	push   $0x30000
40a32d:	68 00 00 01 00       	push   $0x10000
40a332:	6a 00                	push   $0x0
40a334:	e8 12 05 00 00       	call   0x40a84b
40a339:	83 c4 0c             	add    $0xc,%esp
40a33c:	85 c0                	test   %eax,%eax
40a33e:	75 01                	jne    0x40a341
40a340:	c3                   	ret
40a341:	6a 07                	push   $0x7
40a343:	e8 34 00 00 00       	call   0x40a37c
40a348:	cc                   	int3
40a349:	cc                   	int3
40a34a:	cc                   	int3
40a34b:	cc                   	int3
40a34c:	cc                   	int3
40a34d:	cc                   	int3
40a34e:	cc                   	int3
40a34f:	cc                   	int3
40a350:	c2 00 00             	ret    $0x0
40a353:	e8 49 f8 ff ff       	call   0x409ba1
40a358:	8b 48 04             	mov    0x4(%eax),%ecx
40a35b:	83 08 04             	orl    $0x4,(%eax)
40a35e:	89 48 04             	mov    %ecx,0x4(%eax)
40a361:	e8 69 f8 ff ff       	call   0x409bcf
40a366:	8b 48 04             	mov    0x4(%eax),%ecx
40a369:	83 08 02             	orl    $0x2,(%eax)
40a36c:	89 48 04             	mov    %ecx,0x4(%eax)
40a36f:	c3                   	ret
40a370:	b8 70 d7 40 00       	mov    $0x40d770,%eax
40a375:	c3                   	ret
40a376:	b8 6c d7 40 00       	mov    $0x40d76c,%eax
40a37b:	c3                   	ret
40a37c:	8b ff                	mov    %edi,%edi
40a37e:	55                   	push   %ebp
40a37f:	8b ec                	mov    %esp,%ebp
40a381:	81 ec 24 03 00 00    	sub    $0x324,%esp
40a387:	53                   	push   %ebx
40a388:	6a 17                	push   $0x17
40a38a:	ff 15 bc e0 40 00    	call   *0x40e0bc
40a390:	85 c0                	test   %eax,%eax
40a392:	74 05                	je     0x40a399
40a394:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a397:	cd 29                	int    $0x29
40a399:	6a 03                	push   $0x3
40a39b:	e8 93 01 00 00       	call   0x40a533
40a3a0:	c7 04 24 cc 02 00 00 	movl   $0x2cc,(%esp)
40a3a7:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
40a3ad:	6a 00                	push   $0x0
40a3af:	50                   	push   %eax
40a3b0:	e8 f6 04 00 00       	call   0x40a8ab
40a3b5:	83 c4 0c             	add    $0xc,%esp
40a3b8:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40a3be:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
40a3c4:	89 95 84 fd ff ff    	mov    %edx,-0x27c(%ebp)
40a3ca:	89 9d 80 fd ff ff    	mov    %ebx,-0x280(%ebp)
40a3d0:	89 b5 7c fd ff ff    	mov    %esi,-0x284(%ebp)
40a3d6:	89 bd 78 fd ff ff    	mov    %edi,-0x288(%ebp)
40a3dc:	66 8c 95 a4 fd ff ff 	data16 mov %ss,-0x25c(%ebp)
40a3e3:	66 8c 8d 98 fd ff ff 	data16 mov %cs,-0x268(%ebp)
40a3ea:	66 8c 9d 74 fd ff ff 	data16 mov %ds,-0x28c(%ebp)
40a3f1:	66 8c 85 70 fd ff ff 	data16 mov %es,-0x290(%ebp)
40a3f8:	66 8c a5 6c fd ff ff 	data16 mov %fs,-0x294(%ebp)
40a3ff:	66 8c ad 68 fd ff ff 	data16 mov %gs,-0x298(%ebp)
40a406:	9c                   	pushf
40a407:	8f 85 9c fd ff ff    	pop    -0x264(%ebp)
40a40d:	8b 45 04             	mov    0x4(%ebp),%eax
40a410:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
40a416:	8d 45 04             	lea    0x4(%ebp),%eax
40a419:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
40a41f:	c7 85 dc fc ff ff 01 	movl   $0x10001,-0x324(%ebp)
40a426:	00 01 00
40a429:	8b 40 fc             	mov    -0x4(%eax),%eax
40a42c:	6a 50                	push   $0x50
40a42e:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
40a434:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a437:	6a 00                	push   $0x0
40a439:	50                   	push   %eax
40a43a:	e8 6c 04 00 00       	call   0x40a8ab
40a43f:	8b 45 04             	mov    0x4(%ebp),%eax
40a442:	83 c4 0c             	add    $0xc,%esp
40a445:	c7 45 a8 15 00 00 40 	movl   $0x40000015,-0x58(%ebp)
40a44c:	c7 45 ac 01 00 00 00 	movl   $0x1,-0x54(%ebp)
40a453:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40a456:	ff 15 30 e0 40 00    	call   *0x40e030
40a45c:	6a 00                	push   $0x0
40a45e:	8d 58 ff             	lea    -0x1(%eax),%ebx
40a461:	f7 db                	neg    %ebx
40a463:	8d 45 a8             	lea    -0x58(%ebp),%eax
40a466:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a469:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
40a46f:	1a db                	sbb    %bl,%bl
40a471:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a474:	fe c3                	inc    %bl
40a476:	ff 15 4c e0 40 00    	call   *0x40e04c
40a47c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a47f:	50                   	push   %eax
40a480:	ff 15 48 e0 40 00    	call   *0x40e048
40a486:	85 c0                	test   %eax,%eax
40a488:	75 0c                	jne    0x40a496
40a48a:	84 db                	test   %bl,%bl
40a48c:	75 08                	jne    0x40a496
40a48e:	6a 03                	push   $0x3
40a490:	e8 9e 00 00 00       	call   0x40a533
40a495:	59                   	pop    %ecx
40a496:	5b                   	pop    %ebx
40a497:	c9                   	leave
40a498:	c3                   	ret
40a499:	e9 72 fe ff ff       	jmp    0x40a310
40a49e:	6a 00                	push   $0x0
40a4a0:	ff 15 78 e0 40 00    	call   *0x40e078
40a4a6:	85 c0                	test   %eax,%eax
40a4a8:	74 34                	je     0x40a4de
40a4aa:	b9 4d 5a 00 00       	mov    $0x5a4d,%ecx
40a4af:	66 39 08             	cmp    %cx,(%eax)
40a4b2:	75 2a                	jne    0x40a4de
40a4b4:	8b 48 3c             	mov    0x3c(%eax),%ecx
40a4b7:	03 c8                	add    %eax,%ecx
40a4b9:	81 39 50 45 00 00    	cmpl   $0x4550,(%ecx)
40a4bf:	75 1d                	jne    0x40a4de
40a4c1:	b8 0b 01 00 00       	mov    $0x10b,%eax
40a4c6:	66 39 41 18          	cmp    %ax,0x18(%ecx)
40a4ca:	75 12                	jne    0x40a4de
40a4cc:	83 79 74 0e          	cmpl   $0xe,0x74(%ecx)
40a4d0:	76 0c                	jbe    0x40a4de
40a4d2:	83 b9 e8 00 00 00 00 	cmpl   $0x0,0xe8(%ecx)
40a4d9:	74 03                	je     0x40a4de
40a4db:	b0 01                	mov    $0x1,%al
40a4dd:	c3                   	ret
40a4de:	32 c0                	xor    %al,%al
40a4e0:	c3                   	ret
40a4e1:	68 f0 a4 40 00       	push   $0x40a4f0
40a4e6:	ff 15 4c e0 40 00    	call   *0x40e04c
40a4ec:	c3                   	ret
40a4ed:	cc                   	int3
40a4ee:	cc                   	int3
40a4ef:	cc                   	int3
40a4f0:	8b ff                	mov    %edi,%edi
40a4f2:	55                   	push   %ebp
40a4f3:	8b ec                	mov    %esp,%ebp
40a4f5:	8b 45 08             	mov    0x8(%ebp),%eax
40a4f8:	8b 00                	mov    (%eax),%eax
40a4fa:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40a500:	75 25                	jne    0x40a527
40a502:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40a506:	75 1f                	jne    0x40a527
40a508:	8b 40 14             	mov    0x14(%eax),%eax
40a50b:	3d 20 05 93 19       	cmp    $0x19930520,%eax
40a510:	74 1b                	je     0x40a52d
40a512:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40a517:	74 14                	je     0x40a52d
40a519:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40a51e:	74 0d                	je     0x40a52d
40a520:	3d 00 40 99 01       	cmp    $0x1994000,%eax
40a525:	74 06                	je     0x40a52d
40a527:	33 c0                	xor    %eax,%eax
40a529:	5d                   	pop    %ebp
40a52a:	c2 04 00             	ret    $0x4
40a52d:	e8 73 03 00 00       	call   0x40a8a5
40a532:	cc                   	int3
40a533:	83 25 e0 d4 40 00 00 	andl   $0x0,0x40d4e0
40a53a:	c3                   	ret
40a53b:	8b ff                	mov    %edi,%edi
40a53d:	53                   	push   %ebx
40a53e:	56                   	push   %esi
40a53f:	be dc 23 40 00       	mov    $0x4023dc,%esi
40a544:	bb dc 23 40 00       	mov    $0x4023dc,%ebx
40a549:	3b f3                	cmp    %ebx,%esi
40a54b:	73 19                	jae    0x40a566
40a54d:	57                   	push   %edi
40a54e:	8b 3e                	mov    (%esi),%edi
40a550:	85 ff                	test   %edi,%edi
40a552:	74 0a                	je     0x40a55e
40a554:	8b cf                	mov    %edi,%ecx
40a556:	ff 15 f0 e1 40 00    	call   *0x40e1f0
40a55c:	ff d7                	call   *%edi
40a55e:	83 c6 04             	add    $0x4,%esi
40a561:	3b f3                	cmp    %ebx,%esi
40a563:	72 e9                	jb     0x40a54e
40a565:	5f                   	pop    %edi
40a566:	5e                   	pop    %esi
40a567:	5b                   	pop    %ebx
40a568:	c3                   	ret
40a569:	cc                   	int3
40a56a:	cc                   	int3
40a56b:	cc                   	int3
40a56c:	cc                   	int3
40a56d:	cc                   	int3
40a56e:	cc                   	int3
40a56f:	cc                   	int3
40a570:	8b ff                	mov    %edi,%edi
40a572:	53                   	push   %ebx
40a573:	56                   	push   %esi
40a574:	be e4 23 40 00       	mov    $0x4023e4,%esi
40a579:	bb e4 23 40 00       	mov    $0x4023e4,%ebx
40a57e:	3b f3                	cmp    %ebx,%esi
40a580:	73 19                	jae    0x40a59b
40a582:	57                   	push   %edi
40a583:	8b 3e                	mov    (%esi),%edi
40a585:	85 ff                	test   %edi,%edi
40a587:	74 0a                	je     0x40a593
40a589:	8b cf                	mov    %edi,%ecx
40a58b:	ff 15 f0 e1 40 00    	call   *0x40e1f0
40a591:	ff d7                	call   *%edi
40a593:	83 c6 04             	add    $0x4,%esi
40a596:	3b f3                	cmp    %ebx,%esi
40a598:	72 e9                	jb     0x40a583
40a59a:	5f                   	pop    %edi
40a59b:	5e                   	pop    %esi
40a59c:	5b                   	pop    %ebx
40a59d:	c3                   	ret
40a59e:	cc                   	int3
40a59f:	cc                   	int3
40a5a0:	68 00 a6 40 00       	push   $0x40a600
40a5a5:	64 ff 35 00 00 00 00 	push   %fs:0x0
40a5ac:	8b 44 24 10          	mov    0x10(%esp),%eax
40a5b0:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40a5b4:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40a5b8:	2b e0                	sub    %eax,%esp
40a5ba:	53                   	push   %ebx
40a5bb:	56                   	push   %esi
40a5bc:	57                   	push   %edi
40a5bd:	a1 50 d1 40 00       	mov    0x40d150,%eax
40a5c2:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a5c5:	33 c5                	xor    %ebp,%eax
40a5c7:	50                   	push   %eax
40a5c8:	89 65 e8             	mov    %esp,-0x18(%ebp)
40a5cb:	ff 75 f8             	push   -0x8(%ebp)
40a5ce:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a5d1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a5d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a5db:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a5de:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a5e4:	f2 c3                	bnd ret
40a5e6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a5e9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a5f0:	59                   	pop    %ecx
40a5f1:	5f                   	pop    %edi
40a5f2:	5f                   	pop    %edi
40a5f3:	5e                   	pop    %esi
40a5f4:	5b                   	pop    %ebx
40a5f5:	8b e5                	mov    %ebp,%esp
40a5f7:	5d                   	pop    %ebp
40a5f8:	51                   	push   %ecx
40a5f9:	f2 c3                	bnd ret
40a5fb:	cc                   	int3
40a5fc:	cc                   	int3
40a5fd:	cc                   	int3
40a5fe:	cc                   	int3
40a5ff:	cc                   	int3
40a600:	8b ff                	mov    %edi,%edi
40a602:	55                   	push   %ebp
40a603:	8b ec                	mov    %esp,%ebp
40a605:	56                   	push   %esi
40a606:	8b 75 08             	mov    0x8(%ebp),%esi
40a609:	ff 36                	push   (%esi)
40a60b:	e8 30 05 00 00       	call   0x40ab40
40a610:	ff 75 14             	push   0x14(%ebp)
40a613:	89 06                	mov    %eax,(%esi)
40a615:	ff 75 10             	push   0x10(%ebp)
40a618:	ff 75 0c             	push   0xc(%ebp)
40a61b:	56                   	push   %esi
40a61c:	68 60 9e 40 00       	push   $0x409e60
40a621:	68 50 d1 40 00       	push   $0x40d150
40a626:	e8 86 02 00 00       	call   0x40a8b1
40a62b:	83 c4 1c             	add    $0x1c,%esp
40a62e:	5e                   	pop    %esi
40a62f:	5d                   	pop    %ebp
40a630:	c3                   	ret
40a631:	8b ff                	mov    %edi,%edi
40a633:	55                   	push   %ebp
40a634:	8b ec                	mov    %esp,%ebp
40a636:	83 25 e4 d4 40 00 00 	andl   $0x0,0x40d4e4
40a63d:	83 ec 24             	sub    $0x24,%esp