4022f8:	6a fe                	push   $0xfffffffe
4022fa:	5e                   	pop    %esi
4022fb:	33 d2                	xor    %edx,%edx
4022fd:	b9 10 20 41 00       	mov    $0x412010,%ecx
402302:	57                   	push   %edi
402303:	8b c2                	mov    %edx,%eax
402305:	c1 f8 05             	sar    $0x5,%eax
402308:	8b 04 85 20 46 41 00 	mov    0x414620(,%eax,4),%eax
40230f:	8b fa                	mov    %edx,%edi
402311:	83 e7 1f             	and    $0x1f,%edi
402314:	c1 e7 06             	shl    $0x6,%edi
402317:	8b 04 07             	mov    (%edi,%eax,1),%eax
40231a:	83 f8 ff             	cmp    $0xffffffff,%eax
40231d:	74 08                	je     0x402327
40231f:	3b c6                	cmp    %esi,%eax
402321:	74 04                	je     0x402327
402323:	85 c0                	test   %eax,%eax
402325:	75 02                	jne    0x402329
402327:	89 31                	mov    %esi,(%ecx)
402329:	83 c1 20             	add    $0x20,%ecx
40232c:	42                   	inc    %edx
40232d:	81 f9 70 20 41 00    	cmp    $0x412070,%ecx
402333:	7c ce                	jl     0x402303
402335:	5f                   	pop    %edi
402336:	33 c0                	xor    %eax,%eax
402338:	5e                   	pop    %esi
402339:	c3                   	ret
40233a:	e8 d7 48 00 00       	call   0x406c16
40233f:	80 3d 80 32 41 00 00 	cmpb   $0x0,0x413280
402346:	74 05                	je     0x40234d
402348:	e8 a3 46 00 00       	call   0x4069f0
40234d:	ff 35 44 47 41 00    	push   0x414744
402353:	e8 13 fc ff ff       	call   0x401f6b
402358:	59                   	pop    %ecx
402359:	c3                   	ret
40235a:	8b ff                	mov    %edi,%edi
40235c:	55                   	push   %ebp
40235d:	8b ec                	mov    %esp,%ebp
40235f:	56                   	push   %esi
402360:	8b 75 08             	mov    0x8(%ebp),%esi
402363:	b8 00 20 41 00       	mov    $0x412000,%eax
402368:	3b f0                	cmp    %eax,%esi
40236a:	72 22                	jb     0x40238e
40236c:	81 fe 60 22 41 00    	cmp    $0x412260,%esi
402372:	77 1a                	ja     0x40238e
402374:	8b ce                	mov    %esi,%ecx
402376:	2b c8                	sub    %eax,%ecx
402378:	c1 f9 05             	sar    $0x5,%ecx
40237b:	83 c1 10             	add    $0x10,%ecx
40237e:	51                   	push   %ecx
40237f:	e8 15 4a 00 00       	call   0x406d99
402384:	81 4e 0c 00 80 00 00 	orl    $0x8000,0xc(%esi)
40238b:	59                   	pop    %ecx
40238c:	eb 0a                	jmp    0x402398
40238e:	83 c6 20             	add    $0x20,%esi
402391:	56                   	push   %esi
402392:	ff 15 74 f0 40 00    	call   *0x40f074
402398:	5e                   	pop    %esi
402399:	5d                   	pop    %ebp
40239a:	c3                   	ret
40239b:	8b ff                	mov    %edi,%edi
40239d:	55                   	push   %ebp
40239e:	8b ec                	mov    %esp,%ebp
4023a0:	8b 45 08             	mov    0x8(%ebp),%eax
4023a3:	83 f8 14             	cmp    $0x14,%eax
4023a6:	7d 16                	jge    0x4023be
4023a8:	83 c0 10             	add    $0x10,%eax
4023ab:	50                   	push   %eax
4023ac:	e8 e8 49 00 00       	call   0x406d99
4023b1:	8b 45 0c             	mov    0xc(%ebp),%eax
4023b4:	81 48 0c 00 80 00 00 	orl    $0x8000,0xc(%eax)
4023bb:	59                   	pop    %ecx
4023bc:	5d                   	pop    %ebp
4023bd:	c3                   	ret
4023be:	8b 45 0c             	mov    0xc(%ebp),%eax
4023c1:	83 c0 20             	add    $0x20,%eax
4023c4:	50                   	push   %eax
4023c5:	ff 15 74 f0 40 00    	call   *0x40f074
4023cb:	5d                   	pop    %ebp
4023cc:	c3                   	ret
4023cd:	8b ff                	mov    %edi,%edi
4023cf:	55                   	push   %ebp
4023d0:	8b ec                	mov    %esp,%ebp
4023d2:	8b 45 08             	mov    0x8(%ebp),%eax
4023d5:	b9 00 20 41 00       	mov    $0x412000,%ecx
4023da:	3b c1                	cmp    %ecx,%eax
4023dc:	72 1f                	jb     0x4023fd
4023de:	3d 60 22 41 00       	cmp    $0x412260,%eax
4023e3:	77 18                	ja     0x4023fd
4023e5:	81 60 0c ff 7f ff ff 	andl   $0xffff7fff,0xc(%eax)
4023ec:	2b c1                	sub    %ecx,%eax
4023ee:	c1 f8 05             	sar    $0x5,%eax
4023f1:	83 c0 10             	add    $0x10,%eax
4023f4:	50                   	push   %eax
4023f5:	e8 c6 48 00 00       	call   0x406cc0
4023fa:	59                   	pop    %ecx
4023fb:	5d                   	pop    %ebp
4023fc:	c3                   	ret
4023fd:	83 c0 20             	add    $0x20,%eax
402400:	50                   	push   %eax
402401:	ff 15 78 f0 40 00    	call   *0x40f078
402407:	5d                   	pop    %ebp
402408:	c3                   	ret
402409:	8b ff                	mov    %edi,%edi
40240b:	55                   	push   %ebp
40240c:	8b ec                	mov    %esp,%ebp
40240e:	8b 4d 08             	mov    0x8(%ebp),%ecx
402411:	8b 45 0c             	mov    0xc(%ebp),%eax
402414:	83 f9 14             	cmp    $0x14,%ecx
402417:	7d 13                	jge    0x40242c
402419:	81 60 0c ff 7f ff ff 	andl   $0xffff7fff,0xc(%eax)
402420:	83 c1 10             	add    $0x10,%ecx
402423:	51                   	push   %ecx
402424:	e8 97 48 00 00       	call   0x406cc0
402429:	59                   	pop    %ecx
40242a:	5d                   	pop    %ebp
40242b:	c3                   	ret
40242c:	83 c0 20             	add    $0x20,%eax
40242f:	50                   	push   %eax
402430:	ff 15 78 f0 40 00    	call   *0x40f078
402436:	5d                   	pop    %ebp
402437:	c3                   	ret
402438:	cc                   	int3
402439:	cc                   	int3
40243a:	cc                   	int3
40243b:	cc                   	int3
40243c:	cc                   	int3
40243d:	cc                   	int3
40243e:	cc                   	int3
40243f:	cc                   	int3
402440:	8b 44 24 0c          	mov    0xc(%esp),%eax
402444:	53                   	push   %ebx
402445:	85 c0                	test   %eax,%eax
402447:	74 52                	je     0x40249b
402449:	8b 54 24 08          	mov    0x8(%esp),%edx
40244d:	33 db                	xor    %ebx,%ebx
40244f:	8a 5c 24 0c          	mov    0xc(%esp),%bl
402453:	f7 c2 03 00 00 00    	test   $0x3,%edx
402459:	74 16                	je     0x402471
40245b:	8a 0a                	mov    (%edx),%cl
40245d:	83 c2 01             	add    $0x1,%edx
402460:	32 cb                	xor    %bl,%cl
402462:	74 72                	je     0x4024d6
402464:	83 e8 01             	sub    $0x1,%eax
402467:	74 32                	je     0x40249b
402469:	f7 c2 03 00 00 00    	test   $0x3,%edx
40246f:	75 ea                	jne    0x40245b
402471:	83 e8 04             	sub    $0x4,%eax
402474:	72 12                	jb     0x402488
402476:	57                   	push   %edi
402477:	8b fb                	mov    %ebx,%edi
402479:	c1 e3 08             	shl    $0x8,%ebx
40247c:	03 df                	add    %edi,%ebx
40247e:	8b fb                	mov    %ebx,%edi
402480:	c1 e3 10             	shl    $0x10,%ebx
402483:	03 df                	add    %edi,%ebx
402485:	eb 1b                	jmp    0x4024a2
402487:	5f                   	pop    %edi
402488:	83 c0 04             	add    $0x4,%eax
40248b:	74 0e                	je     0x40249b
40248d:	8a 0a                	mov    (%edx),%cl
40248f:	83 c2 01             	add    $0x1,%edx
402492:	32 cb                	xor    %bl,%cl
402494:	74 40                	je     0x4024d6
402496:	83 e8 01             	sub    $0x1,%eax
402499:	75 f2                	jne    0x40248d
40249b:	5b                   	pop    %ebx
40249c:	c3                   	ret
40249d:	83 e8 04             	sub    $0x4,%eax
4024a0:	72 e5                	jb     0x402487
4024a2:	8b 0a                	mov    (%edx),%ecx
4024a4:	33 cb                	xor    %ebx,%ecx
4024a6:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
4024ab:	03 f9                	add    %ecx,%edi
4024ad:	83 f1 ff             	xor    $0xffffffff,%ecx
4024b0:	33 cf                	xor    %edi,%ecx
4024b2:	83 c2 04             	add    $0x4,%edx
4024b5:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
4024bb:	74 e0                	je     0x40249d
4024bd:	8b 4a fc             	mov    -0x4(%edx),%ecx
4024c0:	32 cb                	xor    %bl,%cl
4024c2:	74 23                	je     0x4024e7
4024c4:	32 eb                	xor    %bl,%ch
4024c6:	74 19                	je     0x4024e1
4024c8:	c1 e9 10             	shr    $0x10,%ecx
4024cb:	32 cb                	xor    %bl,%cl
4024cd:	74 0c                	je     0x4024db
4024cf:	32 eb                	xor    %bl,%ch
4024d1:	74 02                	je     0x4024d5
4024d3:	eb c8                	jmp    0x40249d
4024d5:	5f                   	pop    %edi
4024d6:	8d 42 ff             	lea    -0x1(%edx),%eax
4024d9:	5b                   	pop    %ebx
4024da:	c3                   	ret
4024db:	8d 42 fe             	lea    -0x2(%edx),%eax
4024de:	5f                   	pop    %edi
4024df:	5b                   	pop    %ebx
4024e0:	c3                   	ret
4024e1:	8d 42 fd             	lea    -0x3(%edx),%eax
4024e4:	5f                   	pop    %edi
4024e5:	5b                   	pop    %ebx
4024e6:	c3                   	ret
4024e7:	8d 42 fc             	lea    -0x4(%edx),%eax
4024ea:	5f                   	pop    %edi
4024eb:	5b                   	pop    %ebx
4024ec:	c3                   	ret
4024ed:	8b ff                	mov    %edi,%edi
4024ef:	55                   	push   %ebp
4024f0:	8b ec                	mov    %esp,%ebp
4024f2:	8b 45 08             	mov    0x8(%ebp),%eax
4024f5:	85 c0                	test   %eax,%eax
4024f7:	74 12                	je     0x40250b
4024f9:	83 e8 08             	sub    $0x8,%eax
4024fc:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
402502:	75 07                	jne    0x40250b
402504:	50                   	push   %eax
402505:	e8 61 fa ff ff       	call   0x401f6b
40250a:	59                   	pop    %ecx
40250b:	5d                   	pop    %ebp
40250c:	c3                   	ret
40250d:	8b ff                	mov    %edi,%edi
40250f:	55                   	push   %ebp
402510:	8b ec                	mov    %esp,%ebp
402512:	51                   	push   %ecx
402513:	51                   	push   %ecx
402514:	a1 84 22 41 00       	mov    0x412284,%eax
402519:	33 c5                	xor    %ebp,%eax
40251b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40251e:	53                   	push   %ebx
40251f:	56                   	push   %esi
402520:	8b f1                	mov    %ecx,%esi
402522:	33 db                	xor    %ebx,%ebx
402524:	57                   	push   %edi
402525:	3b f3                	cmp    %ebx,%esi
402527:	75 14                	jne    0x40253d
402529:	e8 f9 1b 00 00       	call   0x404127
40252e:	6a 16                	push   $0x16
402530:	5e                   	pop    %esi
402531:	89 30                	mov    %esi,(%eax)
402533:	e8 4f 07 00 00       	call   0x402c87
402538:	e9 2c 01 00 00       	jmp    0x402669
40253d:	ff 75 08             	push   0x8(%ebp)
402540:	56                   	push   %esi
402541:	e8 8b 4a 00 00       	call   0x406fd1
402546:	59                   	pop    %ecx
402547:	59                   	pop    %ecx
402548:	3b 45 08             	cmp    0x8(%ebp),%eax
40254b:	72 07                	jb     0x402554
40254d:	33 c0                	xor    %eax,%eax
40254f:	66 89 06             	mov    %ax,(%esi)
402552:	eb d5                	jmp    0x402529
402554:	8b 45 0c             	mov    0xc(%ebp),%eax
402557:	8b 00                	mov    (%eax),%eax
402559:	8b 40 14             	mov    0x14(%eax),%eax
40255c:	3b c3                	cmp    %ebx,%eax
40255e:	75 29                	jne    0x402589
402560:	8b c6                	mov    %esi,%eax
402562:	66 39 1e             	cmp    %bx,(%esi)
402565:	74 1b                	je     0x402582
402567:	0f b7 08             	movzwl (%eax),%ecx
40256a:	83 f9 41             	cmp    $0x41,%ecx
40256d:	72 0b                	jb     0x40257a
40256f:	83 f9 5a             	cmp    $0x5a,%ecx
402572:	77 06                	ja     0x40257a
402574:	83 c1 20             	add    $0x20,%ecx
402577:	66 89 08             	mov    %cx,(%eax)
40257a:	83 c0 02             	add    $0x2,%eax
40257d:	66 39 18             	cmp    %bx,(%eax)
402580:	75 e5                	jne    0x402567
402582:	33 c0                	xor    %eax,%eax
402584:	e9 e2 00 00 00       	jmp    0x40266b
402589:	53                   	push   %ebx
40258a:	53                   	push   %ebx
40258b:	6a ff                	push   $0xffffffff
40258d:	56                   	push   %esi
40258e:	bf 00 01 00 00       	mov    $0x100,%edi
402593:	57                   	push   %edi
402594:	50                   	push   %eax
402595:	e8 08 4a 00 00       	call   0x406fa2
40259a:	8b c8                	mov    %eax,%ecx
40259c:	83 c4 18             	add    $0x18,%esp
40259f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4025a2:	3b cb                	cmp    %ebx,%ecx
4025a4:	75 17                	jne    0x4025bd
4025a6:	e8 7c 1b 00 00       	call   0x404127
4025ab:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4025b1:	e8 71 1b 00 00       	call   0x404127
4025b6:	8b 00                	mov    (%eax),%eax
4025b8:	e9 ae 00 00 00       	jmp    0x40266b
4025bd:	39 4d 08             	cmp    %ecx,0x8(%ebp)
4025c0:	73 11                	jae    0x4025d3
4025c2:	33 c0                	xor    %eax,%eax
4025c4:	66 89 06             	mov    %ax,(%esi)
4025c7:	e8 5b 1b 00 00       	call   0x404127
4025cc:	6a 22                	push   $0x22
4025ce:	e9 5d ff ff ff       	jmp    0x402530
4025d3:	3b cb                	cmp    %ebx,%ecx
4025d5:	7e 43                	jle    0x40261a
4025d7:	6a e0                	push   $0xffffffe0
4025d9:	33 d2                	xor    %edx,%edx
4025db:	58                   	pop    %eax
4025dc:	f7 f1                	div    %ecx
4025de:	83 f8 02             	cmp    $0x2,%eax
4025e1:	72 37                	jb     0x40261a
4025e3:	8d 44 09 08          	lea    0x8(%ecx,%ecx,1),%eax
4025e7:	3d 00 04 00 00       	cmp    $0x400,%eax
4025ec:	77 13                	ja     0x402601
4025ee:	e8 0d 4a 00 00       	call   0x407000
4025f3:	8b c4                	mov    %esp,%eax
4025f5:	3b c3                	cmp    %ebx,%eax
4025f7:	74 1c                	je     0x402615
4025f9:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
4025ff:	eb 11                	jmp    0x402612
402601:	50                   	push   %eax
402602:	e8 e8 fb ff ff       	call   0x4021ef
402607:	59                   	pop    %ecx
402608:	3b c3                	cmp    %ebx,%eax
40260a:	74 09                	je     0x402615
40260c:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
402612:	83 c0 08             	add    $0x8,%eax
402615:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402618:	8b d8                	mov    %eax,%ebx
40261a:	85 db                	test   %ebx,%ebx
40261c:	75 0d                	jne    0x40262b
40261e:	e8 04 1b 00 00       	call   0x404127
402623:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
402629:	eb 86                	jmp    0x4025b1
40262b:	8b 45 0c             	mov    0xc(%ebp),%eax
40262e:	8b 00                	mov    (%eax),%eax
402630:	51                   	push   %ecx
402631:	53                   	push   %ebx
402632:	6a ff                	push   $0xffffffff
402634:	56                   	push   %esi
402635:	57                   	push   %edi
402636:	ff 70 14             	push   0x14(%eax)
402639:	e8 64 49 00 00       	call   0x406fa2
40263e:	83 c4 18             	add    $0x18,%esp
402641:	85 c0                	test   %eax,%eax
402643:	74 11                	je     0x402656
402645:	53                   	push   %ebx
402646:	ff 75 08             	push   0x8(%ebp)
402649:	56                   	push   %esi
40264a:	e8 6c 11 00 00       	call   0x4037bb
40264f:	83 c4 0c             	add    $0xc,%esp
402652:	8b f0                	mov    %eax,%esi
402654:	eb 0c                	jmp    0x402662
402656:	e8 cc 1a 00 00       	call   0x404127
40265b:	6a 2a                	push   $0x2a
40265d:	59                   	pop    %ecx
40265e:	89 08                	mov    %ecx,(%eax)