4223ec:	b8 00 01 00 00       	mov    $0x100,%eax
4223f1:	66 39 45 08          	cmp    %ax,0x8(%ebp)
4223f5:	73 1a                	jae    0x422411
4223f7:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
4223fb:	8b 0d 34 ff 42 00    	mov    0x42ff34,%ecx
422401:	66 8b 04 41          	mov    (%ecx,%eax,2),%ax
422405:	66 23 45 0c          	and    0xc(%ebp),%ax
422409:	0f b7 c0             	movzwl %ax,%eax
42240c:	89 45 fc             	mov    %eax,-0x4(%ebp)
42240f:	eb 40                	jmp    0x422451
422411:	ff 75 10             	push   0x10(%ebp)
422414:	8d 4d ec             	lea    -0x14(%ebp),%ecx
422417:	e8 cc a6 ff ff       	call   0x41cae8
42241c:	8b 45 ec             	mov    -0x14(%ebp),%eax
42241f:	ff 70 14             	push   0x14(%eax)
422422:	ff 70 04             	push   0x4(%eax)
422425:	8d 45 fc             	lea    -0x4(%ebp),%eax
422428:	50                   	push   %eax
422429:	6a 01                	push   $0x1
42242b:	8d 45 08             	lea    0x8(%ebp),%eax
42242e:	50                   	push   %eax
42242f:	8d 45 ec             	lea    -0x14(%ebp),%eax
422432:	6a 01                	push   $0x1
422434:	50                   	push   %eax
422435:	e8 a2 38 00 00       	call   0x425cdc
42243a:	83 c4 1c             	add    $0x1c,%esp
42243d:	85 c0                	test   %eax,%eax
42243f:	75 03                	jne    0x422444
422441:	21 45 fc             	and    %eax,-0x4(%ebp)
422444:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
422448:	74 07                	je     0x422451
42244a:	8b 45 f4             	mov    -0xc(%ebp),%eax
42244d:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
422451:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
422455:	0f b7 4d 0c          	movzwl 0xc(%ebp),%ecx
422459:	23 c1                	and    %ecx,%eax
42245b:	c9                   	leave
42245c:	c3                   	ret
42245d:	8b ff                	mov    %edi,%edi
42245f:	55                   	push   %ebp
422460:	8b ec                	mov    %esp,%ebp
422462:	8b 4d 08             	mov    0x8(%ebp),%ecx
422465:	53                   	push   %ebx
422466:	33 db                	xor    %ebx,%ebx
422468:	56                   	push   %esi
422469:	57                   	push   %edi
42246a:	3b cb                	cmp    %ebx,%ecx
42246c:	74 07                	je     0x422475
42246e:	8b 7d 0c             	mov    0xc(%ebp),%edi
422471:	3b fb                	cmp    %ebx,%edi
422473:	77 1b                	ja     0x422490
422475:	e8 24 c4 ff ff       	call   0x41e89e
42247a:	6a 16                	push   $0x16
42247c:	5e                   	pop    %esi
42247d:	89 30                	mov    %esi,(%eax)
42247f:	53                   	push   %ebx
422480:	53                   	push   %ebx
422481:	53                   	push   %ebx
422482:	53                   	push   %ebx
422483:	53                   	push   %ebx
422484:	e8 6a d7 ff ff       	call   0x41fbf3
422489:	83 c4 14             	add    $0x14,%esp
42248c:	8b c6                	mov    %esi,%eax
42248e:	eb 30                	jmp    0x4224c0
422490:	8b 75 10             	mov    0x10(%ebp),%esi
422493:	3b f3                	cmp    %ebx,%esi
422495:	75 04                	jne    0x42249b
422497:	88 19                	mov    %bl,(%ecx)
422499:	eb da                	jmp    0x422475
42249b:	8b d1                	mov    %ecx,%edx
42249d:	8a 06                	mov    (%esi),%al
42249f:	88 02                	mov    %al,(%edx)
4224a1:	42                   	inc    %edx
4224a2:	46                   	inc    %esi
4224a3:	3a c3                	cmp    %bl,%al
4224a5:	74 03                	je     0x4224aa
4224a7:	4f                   	dec    %edi
4224a8:	75 f3                	jne    0x42249d
4224aa:	3b fb                	cmp    %ebx,%edi
4224ac:	75 10                	jne    0x4224be
4224ae:	88 19                	mov    %bl,(%ecx)
4224b0:	e8 e9 c3 ff ff       	call   0x41e89e
4224b5:	6a 22                	push   $0x22
4224b7:	59                   	pop    %ecx
4224b8:	89 08                	mov    %ecx,(%eax)
4224ba:	8b f1                	mov    %ecx,%esi
4224bc:	eb c1                	jmp    0x42247f
4224be:	33 c0                	xor    %eax,%eax
4224c0:	5f                   	pop    %edi
4224c1:	5e                   	pop    %esi
4224c2:	5b                   	pop    %ebx
4224c3:	5d                   	pop    %ebp
4224c4:	c3                   	ret
4224c5:	8b ff                	mov    %edi,%edi
4224c7:	55                   	push   %ebp
4224c8:	8b ec                	mov    %esp,%ebp
4224ca:	83 ec 10             	sub    $0x10,%esp
4224cd:	56                   	push   %esi
4224ce:	ff 75 0c             	push   0xc(%ebp)
4224d1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4224d4:	e8 0f a6 ff ff       	call   0x41cae8
4224d9:	8b 75 08             	mov    0x8(%ebp),%esi
4224dc:	0f be 06             	movsbl (%esi),%eax
4224df:	50                   	push   %eax
4224e0:	e8 fc 39 00 00       	call   0x425ee1
4224e5:	83 f8 65             	cmp    $0x65,%eax
4224e8:	eb 0c                	jmp    0x4224f6
4224ea:	46                   	inc    %esi
4224eb:	0f b6 06             	movzbl (%esi),%eax
4224ee:	50                   	push   %eax
4224ef:	e8 aa 38 00 00       	call   0x425d9e
4224f4:	85 c0                	test   %eax,%eax
4224f6:	59                   	pop    %ecx
4224f7:	75 f1                	jne    0x4224ea
4224f9:	0f be 06             	movsbl (%esi),%eax
4224fc:	50                   	push   %eax
4224fd:	e8 df 39 00 00       	call   0x425ee1
422502:	59                   	pop    %ecx
422503:	83 f8 78             	cmp    $0x78,%eax
422506:	75 02                	jne    0x42250a
422508:	46                   	inc    %esi
422509:	46                   	inc    %esi
42250a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42250d:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
422513:	8b 09                	mov    (%ecx),%ecx
422515:	8a 06                	mov    (%esi),%al
422517:	8a 09                	mov    (%ecx),%cl
422519:	88 0e                	mov    %cl,(%esi)
42251b:	46                   	inc    %esi
42251c:	8a 0e                	mov    (%esi),%cl
42251e:	88 06                	mov    %al,(%esi)
422520:	8a c1                	mov    %cl,%al
422522:	8a 0e                	mov    (%esi),%cl
422524:	46                   	inc    %esi
422525:	84 c9                	test   %cl,%cl
422527:	75 f3                	jne    0x42251c
422529:	5e                   	pop    %esi
42252a:	38 4d fc             	cmp    %cl,-0x4(%ebp)
42252d:	74 07                	je     0x422536
42252f:	8b 45 f8             	mov    -0x8(%ebp),%eax
422532:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
422536:	c9                   	leave
422537:	c3                   	ret
422538:	8b ff                	mov    %edi,%edi
42253a:	55                   	push   %ebp
42253b:	8b ec                	mov    %esp,%ebp
42253d:	83 ec 10             	sub    $0x10,%esp
422540:	56                   	push   %esi
422541:	ff 75 0c             	push   0xc(%ebp)
422544:	8d 4d f0             	lea    -0x10(%ebp),%ecx
422547:	e8 9c a5 ff ff       	call   0x41cae8
42254c:	8b 45 08             	mov    0x8(%ebp),%eax
42254f:	8a 08                	mov    (%eax),%cl
422551:	8b 75 f0             	mov    -0x10(%ebp),%esi
422554:	84 c9                	test   %cl,%cl
422556:	74 15                	je     0x42256d
422558:	8b 96 bc 00 00 00    	mov    0xbc(%esi),%edx
42255e:	8b 12                	mov    (%edx),%edx
422560:	8a 12                	mov    (%edx),%dl
422562:	3a ca                	cmp    %dl,%cl
422564:	74 07                	je     0x42256d
422566:	40                   	inc    %eax
422567:	8a 08                	mov    (%eax),%cl
422569:	84 c9                	test   %cl,%cl
42256b:	75 f5                	jne    0x422562
42256d:	8a 08                	mov    (%eax),%cl
42256f:	40                   	inc    %eax
422570:	84 c9                	test   %cl,%cl
422572:	74 36                	je     0x4225aa
422574:	eb 0b                	jmp    0x422581
422576:	80 f9 65             	cmp    $0x65,%cl
422579:	74 0c                	je     0x422587
42257b:	80 f9 45             	cmp    $0x45,%cl
42257e:	74 07                	je     0x422587
422580:	40                   	inc    %eax
422581:	8a 08                	mov    (%eax),%cl
422583:	84 c9                	test   %cl,%cl
422585:	75 ef                	jne    0x422576
422587:	8b d0                	mov    %eax,%edx
422589:	48                   	dec    %eax
42258a:	80 38 30             	cmpb   $0x30,(%eax)
42258d:	74 fa                	je     0x422589
42258f:	8b 8e bc 00 00 00    	mov    0xbc(%esi),%ecx
422595:	8b 09                	mov    (%ecx),%ecx
422597:	53                   	push   %ebx
422598:	8a 18                	mov    (%eax),%bl
42259a:	3a 19                	cmp    (%ecx),%bl
42259c:	5b                   	pop    %ebx
42259d:	75 01                	jne    0x4225a0
42259f:	48                   	dec    %eax
4225a0:	8a 0a                	mov    (%edx),%cl
4225a2:	40                   	inc    %eax
4225a3:	42                   	inc    %edx
4225a4:	88 08                	mov    %cl,(%eax)
4225a6:	84 c9                	test   %cl,%cl
4225a8:	75 f6                	jne    0x4225a0
4225aa:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4225ae:	5e                   	pop    %esi
4225af:	74 07                	je     0x4225b8
4225b1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4225b4:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
4225b8:	c9                   	leave
4225b9:	c3                   	ret
4225ba:	8b ff                	mov    %edi,%edi
4225bc:	55                   	push   %ebp
4225bd:	8b ec                	mov    %esp,%ebp
4225bf:	d9 ee                	fldz
4225c1:	8b 45 08             	mov    0x8(%ebp),%eax
4225c4:	dc 18                	fcompl (%eax)
4225c6:	df e0                	fnstsw %ax
4225c8:	f6 c4 41             	test   $0x41,%ah
4225cb:	7a 05                	jp     0x4225d2
4225cd:	33 c0                	xor    %eax,%eax
4225cf:	40                   	inc    %eax
4225d0:	5d                   	pop    %ebp
4225d1:	c3                   	ret
4225d2:	33 c0                	xor    %eax,%eax
4225d4:	5d                   	pop    %ebp
4225d5:	c3                   	ret
4225d6:	8b ff                	mov    %edi,%edi
4225d8:	55                   	push   %ebp
4225d9:	8b ec                	mov    %esp,%ebp
4225db:	51                   	push   %ecx
4225dc:	51                   	push   %ecx
4225dd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4225e1:	ff 75 14             	push   0x14(%ebp)
4225e4:	ff 75 10             	push   0x10(%ebp)
4225e7:	74 19                	je     0x422602
4225e9:	8d 45 f8             	lea    -0x8(%ebp),%eax
4225ec:	50                   	push   %eax
4225ed:	e8 1b 39 00 00       	call   0x425f0d
4225f2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4225f5:	8b 45 0c             	mov    0xc(%ebp),%eax
4225f8:	89 08                	mov    %ecx,(%eax)
4225fa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4225fd:	89 48 04             	mov    %ecx,0x4(%eax)
422600:	eb 11                	jmp    0x422613
422602:	8d 45 08             	lea    0x8(%ebp),%eax
422605:	50                   	push   %eax
422606:	e8 aa 39 00 00       	call   0x425fb5
42260b:	8b 45 0c             	mov    0xc(%ebp),%eax
42260e:	8b 4d 08             	mov    0x8(%ebp),%ecx
422611:	89 08                	mov    %ecx,(%eax)
422613:	83 c4 0c             	add    $0xc,%esp
422616:	c9                   	leave
422617:	c3                   	ret
422618:	8b ff                	mov    %edi,%edi
42261a:	55                   	push   %ebp
42261b:	8b ec                	mov    %esp,%ebp
42261d:	6a 00                	push   $0x0
42261f:	ff 75 10             	push   0x10(%ebp)
422622:	ff 75 0c             	push   0xc(%ebp)
422625:	ff 75 08             	push   0x8(%ebp)
422628:	e8 a9 ff ff ff       	call   0x4225d6
42262d:	83 c4 10             	add    $0x10,%esp
422630:	5d                   	pop    %ebp
422631:	c3                   	ret
422632:	8b ff                	mov    %edi,%edi
422634:	56                   	push   %esi
422635:	8b f0                	mov    %eax,%esi
422637:	85 ff                	test   %edi,%edi
422639:	74 14                	je     0x42264f
42263b:	56                   	push   %esi
42263c:	e8 ff 7d ff ff       	call   0x41a440
422641:	40                   	inc    %eax
422642:	50                   	push   %eax
422643:	56                   	push   %esi
422644:	03 f7                	add    %edi,%esi
422646:	56                   	push   %esi
422647:	e8 24 9f ff ff       	call   0x41c570
42264c:	83 c4 10             	add    $0x10,%esp
42264f:	5e                   	pop    %esi
422650:	c3                   	ret
422651:	8b ff                	mov    %edi,%edi
422653:	55                   	push   %ebp
422654:	8b ec                	mov    %esp,%ebp
422656:	6a 00                	push   $0x0
422658:	ff 75 08             	push   0x8(%ebp)
42265b:	e8 65 fe ff ff       	call   0x4224c5
422660:	59                   	pop    %ecx
422661:	59                   	pop    %ecx
422662:	5d                   	pop    %ebp
422663:	c3                   	ret
422664:	8b ff                	mov    %edi,%edi
422666:	55                   	push   %ebp
422667:	8b ec                	mov    %esp,%ebp
422669:	6a 00                	push   $0x0
42266b:	ff 75 08             	push   0x8(%ebp)
42266e:	e8 c5 fe ff ff       	call   0x422538
422673:	59                   	pop    %ecx
422674:	59                   	pop    %ecx
422675:	5d                   	pop    %ebp
422676:	c3                   	ret
422677:	8b ff                	mov    %edi,%edi
422679:	55                   	push   %ebp
42267a:	8b ec                	mov    %esp,%ebp
42267c:	83 ec 10             	sub    $0x10,%esp
42267f:	53                   	push   %ebx
422680:	56                   	push   %esi
422681:	57                   	push   %edi
422682:	ff 75 1c             	push   0x1c(%ebp)
422685:	8d 4d f0             	lea    -0x10(%ebp),%ecx
422688:	8b d8                	mov    %eax,%ebx
42268a:	e8 59 a4 ff ff       	call   0x41cae8
42268f:	33 f6                	xor    %esi,%esi
422691:	3b de                	cmp    %esi,%ebx
422693:	75 2b                	jne    0x4226c0
422695:	e8 04 c2 ff ff       	call   0x41e89e
42269a:	6a 16                	push   $0x16
42269c:	5f                   	pop    %edi
42269d:	56                   	push   %esi
42269e:	56                   	push   %esi
42269f:	56                   	push   %esi
4226a0:	56                   	push   %esi
4226a1:	56                   	push   %esi
4226a2:	89 38                	mov    %edi,(%eax)
4226a4:	e8 4a d5 ff ff       	call   0x41fbf3
4226a9:	83 c4 14             	add    $0x14,%esp
4226ac:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4226b0:	74 07                	je     0x4226b9
4226b2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4226b5:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
4226b9:	8b c7                	mov    %edi,%eax
4226bb:	e9 21 01 00 00       	jmp    0x4227e1
4226c0:	39 75 08             	cmp    %esi,0x8(%ebp)
4226c3:	76 d0                	jbe    0x422695
4226c5:	39 75 0c             	cmp    %esi,0xc(%ebp)
4226c8:	7e 05                	jle    0x4226cf
4226ca:	8b 45 0c             	mov    0xc(%ebp),%eax
4226cd:	eb 02                	jmp    0x4226d1
4226cf:	33 c0                	xor    %eax,%eax
4226d1:	83 c0 09             	add    $0x9,%eax
4226d4:	39 45 08             	cmp    %eax,0x8(%ebp)
4226d7:	77 09                	ja     0x4226e2
4226d9:	e8 c0 c1 ff ff       	call   0x41e89e
4226de:	6a 22                	push   $0x22
4226e0:	eb ba                	jmp    0x42269c
4226e2:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
4226e6:	74 1e                	je     0x422706
4226e8:	8b 55 14             	mov    0x14(%ebp),%edx
4226eb:	33 c0                	xor    %eax,%eax
4226ed:	39 75 0c             	cmp    %esi,0xc(%ebp)
4226f0:	0f 9f c0             	setg   %al
4226f3:	33 c9                	xor    %ecx,%ecx
4226f5:	83 3a 2d             	cmpl   $0x2d,(%edx)
4226f8:	0f 94 c1             	sete   %cl
4226fb:	8b f8                	mov    %eax,%edi
4226fd:	03 cb                	add    %ebx,%ecx
4226ff:	8b c1                	mov    %ecx,%eax
422701:	e8 2c ff ff ff       	call   0x422632