40a1ea:	cc                   	int3
40a1eb:	cc                   	int3
40a1ec:	cc                   	int3
40a1ed:	cc                   	int3
40a1ee:	cc                   	int3
40a1ef:	cc                   	int3
40a1f0:	57                   	push   %edi
40a1f1:	8b 7c 24 08          	mov    0x8(%esp),%edi
40a1f5:	eb 6a                	jmp    0x40a261
40a1f7:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40a1fe:	8b ff                	mov    %edi,%edi
40a200:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40a204:	57                   	push   %edi
40a205:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40a20b:	74 0f                	je     0x40a21c
40a20d:	8a 01                	mov    (%ecx),%al
40a20f:	41                   	inc    %ecx
40a210:	84 c0                	test   %al,%al
40a212:	74 3b                	je     0x40a24f
40a214:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40a21a:	75 f1                	jne    0x40a20d
40a21c:	8b 01                	mov    (%ecx),%eax
40a21e:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
40a223:	03 d0                	add    %eax,%edx
40a225:	83 f0 ff             	xor    $0xffffffff,%eax
40a228:	33 c2                	xor    %edx,%eax
40a22a:	83 c1 04             	add    $0x4,%ecx
40a22d:	a9 00 01 01 81       	test   $0x81010100,%eax
40a232:	74 e8                	je     0x40a21c
40a234:	8b 41 fc             	mov    -0x4(%ecx),%eax
40a237:	84 c0                	test   %al,%al
40a239:	74 23                	je     0x40a25e
40a23b:	84 e4                	test   %ah,%ah
40a23d:	74 1a                	je     0x40a259
40a23f:	a9 00 00 ff 00       	test   $0xff0000,%eax
40a244:	74 0e                	je     0x40a254
40a246:	a9 00 00 00 ff       	test   $0xff000000,%eax
40a24b:	74 02                	je     0x40a24f
40a24d:	eb cd                	jmp    0x40a21c
40a24f:	8d 79 ff             	lea    -0x1(%ecx),%edi
40a252:	eb 0d                	jmp    0x40a261
40a254:	8d 79 fe             	lea    -0x2(%ecx),%edi
40a257:	eb 08                	jmp    0x40a261
40a259:	8d 79 fd             	lea    -0x3(%ecx),%edi
40a25c:	eb 03                	jmp    0x40a261
40a25e:	8d 79 fc             	lea    -0x4(%ecx),%edi
40a261:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40a265:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40a26b:	74 19                	je     0x40a286
40a26d:	8a 11                	mov    (%ecx),%dl
40a26f:	41                   	inc    %ecx
40a270:	84 d2                	test   %dl,%dl
40a272:	74 64                	je     0x40a2d8
40a274:	88 17                	mov    %dl,(%edi)
40a276:	47                   	inc    %edi
40a277:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40a27d:	75 ee                	jne    0x40a26d
40a27f:	eb 05                	jmp    0x40a286
40a281:	89 17                	mov    %edx,(%edi)
40a283:	83 c7 04             	add    $0x4,%edi
40a286:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
40a28b:	8b 01                	mov    (%ecx),%eax
40a28d:	03 d0                	add    %eax,%edx
40a28f:	83 f0 ff             	xor    $0xffffffff,%eax
40a292:	33 c2                	xor    %edx,%eax
40a294:	8b 11                	mov    (%ecx),%edx
40a296:	83 c1 04             	add    $0x4,%ecx
40a299:	a9 00 01 01 81       	test   $0x81010100,%eax
40a29e:	74 e1                	je     0x40a281
40a2a0:	84 d2                	test   %dl,%dl
40a2a2:	74 34                	je     0x40a2d8
40a2a4:	84 f6                	test   %dh,%dh
40a2a6:	74 27                	je     0x40a2cf
40a2a8:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
40a2ae:	74 12                	je     0x40a2c2
40a2b0:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
40a2b6:	74 02                	je     0x40a2ba
40a2b8:	eb c7                	jmp    0x40a281
40a2ba:	89 17                	mov    %edx,(%edi)
40a2bc:	8b 44 24 08          	mov    0x8(%esp),%eax
40a2c0:	5f                   	pop    %edi
40a2c1:	c3                   	ret
40a2c2:	66 89 17             	mov    %dx,(%edi)
40a2c5:	8b 44 24 08          	mov    0x8(%esp),%eax
40a2c9:	c6 47 02 00          	movb   $0x0,0x2(%edi)
40a2cd:	5f                   	pop    %edi
40a2ce:	c3                   	ret
40a2cf:	66 89 17             	mov    %dx,(%edi)
40a2d2:	8b 44 24 08          	mov    0x8(%esp),%eax
40a2d6:	5f                   	pop    %edi
40a2d7:	c3                   	ret
40a2d8:	88 17                	mov    %dl,(%edi)
40a2da:	8b 44 24 08          	mov    0x8(%esp),%eax
40a2de:	5f                   	pop    %edi
40a2df:	c3                   	ret
40a2e0:	56                   	push   %esi
40a2e1:	8b 74 24 08          	mov    0x8(%esp),%esi
40a2e5:	8b 06                	mov    (%esi),%eax
40a2e7:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40a2ed:	75 14                	jne    0x40a303
40a2ef:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40a2f3:	75 0e                	jne    0x40a303
40a2f5:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40a2fc:	75 05                	jne    0x40a303
40a2fe:	e9 d9 f0 ff ff       	jmp    0x4093dc
40a303:	a1 dc 19 41 00       	mov    0x4119dc,%eax
40a308:	85 c0                	test   %eax,%eax
40a30a:	74 14                	je     0x40a320
40a30c:	50                   	push   %eax
40a30d:	e8 a3 14 00 00       	call   0x40b7b5
40a312:	85 c0                	test   %eax,%eax
40a314:	59                   	pop    %ecx
40a315:	74 09                	je     0x40a320
40a317:	56                   	push   %esi
40a318:	ff 15 dc 19 41 00    	call   *0x4119dc
40a31e:	eb 02                	jmp    0x40a322
40a320:	33 c0                	xor    %eax,%eax
40a322:	5e                   	pop    %esi
40a323:	c2 04 00             	ret    $0x4
40a326:	68 e0 a2 40 00       	push   $0x40a2e0
40a32b:	ff 15 70 d0 40 00    	call   *0x40d070
40a331:	a3 dc 19 41 00       	mov    %eax,0x4119dc
40a336:	c3                   	ret
40a337:	ff 35 dc 19 41 00    	push   0x4119dc
40a33d:	ff 15 70 d0 40 00    	call   *0x40d070
40a343:	c3                   	ret
40a344:	68 40 01 00 00       	push   $0x140
40a349:	6a 00                	push   $0x0
40a34b:	ff 35 a0 1d 41 00    	push   0x411da0
40a351:	ff 15 00 d1 40 00    	call   *0x40d100
40a357:	85 c0                	test   %eax,%eax
40a359:	a3 9c 1d 41 00       	mov    %eax,0x411d9c
40a35e:	75 01                	jne    0x40a361
40a360:	c3                   	ret
40a361:	83 25 94 1d 41 00 00 	andl   $0x0,0x411d94
40a368:	83 25 98 1d 41 00 00 	andl   $0x0,0x411d98
40a36f:	6a 01                	push   $0x1
40a371:	a3 90 1d 41 00       	mov    %eax,0x411d90
40a376:	c7 05 88 1d 41 00 10 	movl   $0x10,0x411d88
40a37d:	00 00 00
40a380:	58                   	pop    %eax
40a381:	c3                   	ret
40a382:	a1 98 1d 41 00       	mov    0x411d98,%eax
40a387:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
40a38a:	a1 9c 1d 41 00       	mov    0x411d9c,%eax
40a38f:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
40a392:	3b c1                	cmp    %ecx,%eax
40a394:	73 14                	jae    0x40a3aa
40a396:	8b 54 24 04          	mov    0x4(%esp),%edx
40a39a:	2b 50 0c             	sub    0xc(%eax),%edx
40a39d:	81 fa 00 00 10 00    	cmp    $0x100000,%edx
40a3a3:	72 07                	jb     0x40a3ac
40a3a5:	83 c0 14             	add    $0x14,%eax
40a3a8:	eb e8                	jmp    0x40a392
40a3aa:	33 c0                	xor    %eax,%eax
40a3ac:	c3                   	ret
40a3ad:	55                   	push   %ebp
40a3ae:	8b ec                	mov    %esp,%ebp
40a3b0:	83 ec 14             	sub    $0x14,%esp
40a3b3:	8b 55 0c             	mov    0xc(%ebp),%edx
40a3b6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a3b9:	53                   	push   %ebx
40a3ba:	56                   	push   %esi
40a3bb:	8b 41 10             	mov    0x10(%ecx),%eax
40a3be:	8b f2                	mov    %edx,%esi
40a3c0:	2b 71 0c             	sub    0xc(%ecx),%esi
40a3c3:	8b 5a fc             	mov    -0x4(%edx),%ebx
40a3c6:	83 c2 fc             	add    $0xfffffffc,%edx
40a3c9:	57                   	push   %edi
40a3ca:	c1 ee 0f             	shr    $0xf,%esi
40a3cd:	8b ce                	mov    %esi,%ecx
40a3cf:	8b 7a fc             	mov    -0x4(%edx),%edi
40a3d2:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
40a3d8:	4b                   	dec    %ebx
40a3d9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a3dc:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
40a3e3:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40a3e6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a3e9:	8b 0c 13             	mov    (%ebx,%edx,1),%ecx
40a3ec:	f6 c1 01             	test   $0x1,%cl
40a3ef:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a3f2:	75 7f                	jne    0x40a473
40a3f4:	c1 f9 04             	sar    $0x4,%ecx
40a3f7:	6a 3f                	push   $0x3f
40a3f9:	49                   	dec    %ecx
40a3fa:	5f                   	pop    %edi
40a3fb:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40a3fe:	3b cf                	cmp    %edi,%ecx
40a400:	76 03                	jbe    0x40a405
40a402:	89 7d 0c             	mov    %edi,0xc(%ebp)
40a405:	8b 4c 13 04          	mov    0x4(%ebx,%edx,1),%ecx
40a409:	3b 4c 13 08          	cmp    0x8(%ebx,%edx,1),%ecx
40a40d:	75 48                	jne    0x40a457
40a40f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a412:	83 f9 20             	cmp    $0x20,%ecx
40a415:	73 1c                	jae    0x40a433
40a417:	bf 00 00 00 80       	mov    $0x80000000,%edi
40a41c:	d3 ef                	shr    %cl,%edi
40a41e:	8d 4c 01 04          	lea    0x4(%ecx,%eax,1),%ecx
40a422:	f7 d7                	not    %edi
40a424:	21 7c b0 44          	and    %edi,0x44(%eax,%esi,4)
40a428:	fe 09                	decb   (%ecx)
40a42a:	75 2b                	jne    0x40a457
40a42c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a42f:	21 39                	and    %edi,(%ecx)
40a431:	eb 24                	jmp    0x40a457
40a433:	83 c1 e0             	add    $0xffffffe0,%ecx
40a436:	bf 00 00 00 80       	mov    $0x80000000,%edi
40a43b:	d3 ef                	shr    %cl,%edi
40a43d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a440:	8d 4c 01 04          	lea    0x4(%ecx,%eax,1),%ecx
40a444:	f7 d7                	not    %edi
40a446:	21 bc b0 c4 00 00 00 	and    %edi,0xc4(%eax,%esi,4)
40a44d:	fe 09                	decb   (%ecx)
40a44f:	75 06                	jne    0x40a457
40a451:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a454:	21 79 04             	and    %edi,0x4(%ecx)
40a457:	8b 4c 13 08          	mov    0x8(%ebx,%edx,1),%ecx
40a45b:	8b 7c 13 04          	mov    0x4(%ebx,%edx,1),%edi
40a45f:	89 79 04             	mov    %edi,0x4(%ecx)
40a462:	8b 4c 13 04          	mov    0x4(%ebx,%edx,1),%ecx
40a466:	8b 7c 13 08          	mov    0x8(%ebx,%edx,1),%edi
40a46a:	03 5d f8             	add    -0x8(%ebp),%ebx
40a46d:	89 79 08             	mov    %edi,0x8(%ecx)
40a470:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40a473:	8b fb                	mov    %ebx,%edi
40a475:	c1 ff 04             	sar    $0x4,%edi
40a478:	4f                   	dec    %edi
40a479:	83 ff 3f             	cmp    $0x3f,%edi
40a47c:	76 03                	jbe    0x40a481
40a47e:	6a 3f                	push   $0x3f
40a480:	5f                   	pop    %edi
40a481:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a484:	83 e1 01             	and    $0x1,%ecx
40a487:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40a48a:	0f 85 a0 00 00 00    	jne    0x40a530
40a490:	2b 55 fc             	sub    -0x4(%ebp),%edx
40a493:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a496:	c1 f9 04             	sar    $0x4,%ecx
40a499:	6a 3f                	push   $0x3f
40a49b:	89 55 f8             	mov    %edx,-0x8(%ebp)
40a49e:	49                   	dec    %ecx
40a49f:	5a                   	pop    %edx
40a4a0:	3b ca                	cmp    %edx,%ecx
40a4a2:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40a4a5:	76 05                	jbe    0x40a4ac
40a4a7:	89 55 0c             	mov    %edx,0xc(%ebp)
40a4aa:	8b ca                	mov    %edx,%ecx
40a4ac:	03 5d fc             	add    -0x4(%ebp),%ebx
40a4af:	8b fb                	mov    %ebx,%edi
40a4b1:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40a4b4:	c1 ff 04             	sar    $0x4,%edi
40a4b7:	4f                   	dec    %edi
40a4b8:	3b fa                	cmp    %edx,%edi
40a4ba:	76 02                	jbe    0x40a4be
40a4bc:	8b fa                	mov    %edx,%edi
40a4be:	3b cf                	cmp    %edi,%ecx
40a4c0:	74 6b                	je     0x40a52d
40a4c2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a4c5:	8b 51 04             	mov    0x4(%ecx),%edx
40a4c8:	3b 51 08             	cmp    0x8(%ecx),%edx
40a4cb:	75 48                	jne    0x40a515
40a4cd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a4d0:	83 f9 20             	cmp    $0x20,%ecx
40a4d3:	73 1c                	jae    0x40a4f1
40a4d5:	ba 00 00 00 80       	mov    $0x80000000,%edx
40a4da:	d3 ea                	shr    %cl,%edx
40a4dc:	8d 4c 01 04          	lea    0x4(%ecx,%eax,1),%ecx
40a4e0:	f7 d2                	not    %edx
40a4e2:	21 54 b0 44          	and    %edx,0x44(%eax,%esi,4)
40a4e6:	fe 09                	decb   (%ecx)
40a4e8:	75 2b                	jne    0x40a515
40a4ea:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a4ed:	21 11                	and    %edx,(%ecx)
40a4ef:	eb 24                	jmp    0x40a515
40a4f1:	83 c1 e0             	add    $0xffffffe0,%ecx
40a4f4:	ba 00 00 00 80       	mov    $0x80000000,%edx
40a4f9:	d3 ea                	shr    %cl,%edx
40a4fb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a4fe:	8d 4c 01 04          	lea    0x4(%ecx,%eax,1),%ecx
40a502:	f7 d2                	not    %edx
40a504:	21 94 b0 c4 00 00 00 	and    %edx,0xc4(%eax,%esi,4)
40a50b:	fe 09                	decb   (%ecx)
40a50d:	75 06                	jne    0x40a515
40a50f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a512:	21 51 04             	and    %edx,0x4(%ecx)
40a515:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a518:	8b 51 08             	mov    0x8(%ecx),%edx
40a51b:	8b 49 04             	mov    0x4(%ecx),%ecx
40a51e:	89 4a 04             	mov    %ecx,0x4(%edx)
40a521:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a524:	8b 51 04             	mov    0x4(%ecx),%edx
40a527:	8b 49 08             	mov    0x8(%ecx),%ecx
40a52a:	89 4a 08             	mov    %ecx,0x8(%edx)
40a52d:	8b 55 f8             	mov    -0x8(%ebp),%edx
40a530:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40a534:	75 09                	jne    0x40a53f
40a536:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40a539:	0f 84 89 00 00 00    	je     0x40a5c8
40a53f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a542:	8d 0c f9             	lea    (%ecx,%edi,8),%ecx
40a545:	8b 49 04             	mov    0x4(%ecx),%ecx
40a548:	89 4a 04             	mov    %ecx,0x4(%edx)
40a54b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a54e:	8d 0c f9             	lea    (%ecx,%edi,8),%ecx
40a551:	89 4a 08             	mov    %ecx,0x8(%edx)
40a554:	89 51 04             	mov    %edx,0x4(%ecx)
40a557:	8b 4a 04             	mov    0x4(%edx),%ecx
40a55a:	89 51 08             	mov    %edx,0x8(%ecx)
40a55d:	8b 4a 04             	mov    0x4(%edx),%ecx
40a560:	3b 4a 08             	cmp    0x8(%edx),%ecx
40a563:	75 63                	jne    0x40a5c8
40a565:	8a 4c 07 04          	mov    0x4(%edi,%eax,1),%cl
40a569:	83 ff 20             	cmp    $0x20,%edi
40a56c:	88 4d 0f             	mov    %cl,0xf(%ebp)
40a56f:	fe c1                	inc    %cl
40a571:	88 4c 07 04          	mov    %cl,0x4(%edi,%eax,1)
40a575:	73 25                	jae    0x40a59c
40a577:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
40a57b:	75 0e                	jne    0x40a58b
40a57d:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40a582:	8b cf                	mov    %edi,%ecx
40a584:	d3 eb                	shr    %cl,%ebx
40a586:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a589:	09 19                	or     %ebx,(%ecx)
40a58b:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40a590:	8b cf                	mov    %edi,%ecx
40a592:	d3 eb                	shr    %cl,%ebx
40a594:	8d 44 b0 44          	lea    0x44(%eax,%esi,4),%eax
40a598:	09 18                	or     %ebx,(%eax)
40a59a:	eb 29                	jmp    0x40a5c5
40a59c:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
40a5a0:	75 10                	jne    0x40a5b2
40a5a2:	8d 4f e0             	lea    -0x20(%edi),%ecx
40a5a5:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40a5aa:	d3 eb                	shr    %cl,%ebx
40a5ac:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a5af:	09 59 04             	or     %ebx,0x4(%ecx)
40a5b2:	8d 4f e0             	lea    -0x20(%edi),%ecx
40a5b5:	bf 00 00 00 80       	mov    $0x80000000,%edi
40a5ba:	d3 ef                	shr    %cl,%edi
40a5bc:	8d 84 b0 c4 00 00 00 	lea    0xc4(%eax,%esi,4),%eax
40a5c3:	09 38                	or     %edi,(%eax)
40a5c5:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40a5c8:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a5cb:	89 1a                	mov    %ebx,(%edx)
40a5cd:	89 5c 13 fc          	mov    %ebx,-0x4(%ebx,%edx,1)
40a5d1:	ff 08                	decl   (%eax)
40a5d3:	0f 85 fa 00 00 00    	jne    0x40a6d3
40a5d9:	a1 94 1d 41 00       	mov    0x411d94,%eax