422277:	bf 00 02 00 00       	mov    $0x200,%edi
42227c:	23 d6                	and    %esi,%edx
42227e:	74 23                	je     0x4222a3
422280:	81 fa 00 01 00 00    	cmp    $0x100,%edx
422286:	74 16                	je     0x42229e
422288:	3b d7                	cmp    %edi,%edx
42228a:	74 0b                	je     0x422297
42228c:	3b d6                	cmp    %esi,%edx
42228e:	75 13                	jne    0x4222a3
422290:	0d 00 0c 00 00       	or     $0xc00,%eax
422295:	eb 0c                	jmp    0x4222a3
422297:	0d 00 08 00 00       	or     $0x800,%eax
42229c:	eb 05                	jmp    0x4222a3
42229e:	0d 00 04 00 00       	or     $0x400,%eax
4222a3:	8b d1                	mov    %ecx,%edx
4222a5:	81 e2 00 00 03 00    	and    $0x30000,%edx
4222ab:	74 0c                	je     0x4222b9
4222ad:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
4222b3:	75 06                	jne    0x4222bb
4222b5:	0b c7                	or     %edi,%eax
4222b7:	eb 02                	jmp    0x4222bb
4222b9:	0b c6                	or     %esi,%eax
4222bb:	5f                   	pop    %edi
4222bc:	5e                   	pop    %esi
4222bd:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
4222c3:	74 05                	je     0x4222ca
4222c5:	0d 00 10 00 00       	or     $0x1000,%eax
4222ca:	5d                   	pop    %ebp
4222cb:	c3                   	ret
4222cc:	8b ff                	mov    %edi,%edi
4222ce:	55                   	push   %ebp
4222cf:	8b ec                	mov    %esp,%ebp
4222d1:	83 ec 10             	sub    $0x10,%esp
4222d4:	53                   	push   %ebx
4222d5:	56                   	push   %esi
4222d6:	57                   	push   %edi
4222d7:	33 ff                	xor    %edi,%edi
4222d9:	bb e3 00 00 00       	mov    $0xe3,%ebx
4222de:	89 7d f4             	mov    %edi,-0xc(%ebp)
4222e1:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4222e4:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4222e7:	c7 45 fc 55 00 00 00 	movl   $0x55,-0x4(%ebp)
4222ee:	99                   	cltd
4222ef:	2b c2                	sub    %edx,%eax
4222f1:	8b c8                	mov    %eax,%ecx
4222f3:	d1 f9                	sar    $1,%ecx
4222f5:	6a 41                	push   $0x41
4222f7:	5f                   	pop    %edi
4222f8:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4222fb:	8b 34 cd 00 ee 42 00 	mov    0x42ee00(,%ecx,8),%esi
422302:	8b 4d 08             	mov    0x8(%ebp),%ecx
422305:	6a 5a                	push   $0x5a
422307:	2b ce                	sub    %esi,%ecx
422309:	5b                   	pop    %ebx
42230a:	0f b7 04 31          	movzwl (%ecx,%esi,1),%eax
42230e:	66 3b c7             	cmp    %di,%ax
422311:	72 0d                	jb     0x422320
422313:	66 3b c3             	cmp    %bx,%ax
422316:	77 08                	ja     0x422320
422318:	83 c0 20             	add    $0x20,%eax
42231b:	0f b7 d0             	movzwl %ax,%edx
42231e:	eb 02                	jmp    0x422322
422320:	8b d0                	mov    %eax,%edx
422322:	0f b7 06             	movzwl (%esi),%eax
422325:	66 3b c7             	cmp    %di,%ax
422328:	72 0b                	jb     0x422335
42232a:	66 3b c3             	cmp    %bx,%ax
42232d:	77 06                	ja     0x422335
42232f:	83 c0 20             	add    $0x20,%eax
422332:	0f b7 c0             	movzwl %ax,%eax
422335:	83 c6 02             	add    $0x2,%esi
422338:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
42233c:	74 0a                	je     0x422348
42233e:	66 85 d2             	test   %dx,%dx
422341:	74 05                	je     0x422348
422343:	66 3b d0             	cmp    %ax,%dx
422346:	74 c2                	je     0x42230a
422348:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42234b:	8b 7d f4             	mov    -0xc(%ebp),%edi
42234e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
422351:	0f b7 c0             	movzwl %ax,%eax
422354:	0f b7 d2             	movzwl %dx,%edx
422357:	2b d0                	sub    %eax,%edx
422359:	74 1f                	je     0x42237a
42235b:	85 d2                	test   %edx,%edx
42235d:	79 08                	jns    0x422367
42235f:	8d 59 ff             	lea    -0x1(%ecx),%ebx
422362:	89 5d f8             	mov    %ebx,-0x8(%ebp)
422365:	eb 06                	jmp    0x42236d
422367:	8d 79 01             	lea    0x1(%ecx),%edi
42236a:	89 7d f4             	mov    %edi,-0xc(%ebp)
42236d:	3b fb                	cmp    %ebx,%edi
42236f:	0f 8e 6f ff ff ff    	jle    0x4222e4
422375:	83 c8 ff             	or     $0xffffffff,%eax
422378:	eb 07                	jmp    0x422381
42237a:	8b 04 cd 04 ee 42 00 	mov    0x42ee04(,%ecx,8),%eax
422381:	5f                   	pop    %edi
422382:	5e                   	pop    %esi
422383:	5b                   	pop    %ebx
422384:	8b e5                	mov    %ebp,%esp
422386:	5d                   	pop    %ebp
422387:	c3                   	ret
422388:	8b ff                	mov    %edi,%edi
42238a:	55                   	push   %ebp
42238b:	8b ec                	mov    %esp,%ebp
42238d:	8b 4d 08             	mov    0x8(%ebp),%ecx
422390:	53                   	push   %ebx
422391:	56                   	push   %esi
422392:	57                   	push   %edi
422393:	85 c9                	test   %ecx,%ecx
422395:	0f 84 83 00 00 00    	je     0x42241e
42239b:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4223a1:	74 7b                	je     0x42241e
4223a3:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
4223a9:	74 73                	je     0x42241e
4223ab:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4223af:	8b 75 10             	mov    0x10(%ebp),%esi
4223b2:	75 04                	jne    0x4223b8
4223b4:	85 f6                	test   %esi,%esi
4223b6:	7f 66                	jg     0x42241e
4223b8:	85 f6                	test   %esi,%esi
4223ba:	78 62                	js     0x42241e
4223bc:	33 ff                	xor    %edi,%edi
4223be:	bb e3 00 00 00       	mov    $0xe3,%ebx
4223c3:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4223c6:	99                   	cltd
4223c7:	2b c2                	sub    %edx,%eax
4223c9:	8b d1                	mov    %ecx,%edx
4223cb:	d1 f8                	sar    $1,%eax
4223cd:	2b 14 c5 e0 e6 42 00 	sub    0x42e6e0(,%eax,8),%edx
4223d4:	74 13                	je     0x4223e9
4223d6:	85 d2                	test   %edx,%edx
4223d8:	79 05                	jns    0x4223df
4223da:	8d 58 ff             	lea    -0x1(%eax),%ebx
4223dd:	eb 03                	jmp    0x4223e2
4223df:	8d 78 01             	lea    0x1(%eax),%edi
4223e2:	3b fb                	cmp    %ebx,%edi
4223e4:	7e dd                	jle    0x4223c3
4223e6:	83 c8 ff             	or     $0xffffffff,%eax
4223e9:	85 c0                	test   %eax,%eax
4223eb:	78 31                	js     0x42241e
4223ed:	8b 1c c5 e4 e6 42 00 	mov    0x42e6e4(,%eax,8),%ebx
4223f4:	6a 55                	push   $0x55
4223f6:	53                   	push   %ebx
4223f7:	e8 c3 2a ff ff       	call   0x414ebf
4223fc:	8b f8                	mov    %eax,%edi
4223fe:	59                   	pop    %ecx
4223ff:	59                   	pop    %ecx
422400:	85 f6                	test   %esi,%esi
422402:	7e 15                	jle    0x422419
422404:	3b fe                	cmp    %esi,%edi
422406:	7d 16                	jge    0x42241e
422408:	53                   	push   %ebx
422409:	56                   	push   %esi
42240a:	ff 75 0c             	push   0xc(%ebp)
42240d:	e8 b7 30 ff ff       	call   0x4154c9
422412:	83 c4 0c             	add    $0xc,%esp
422415:	85 c0                	test   %eax,%eax
422417:	75 0c                	jne    0x422425
422419:	8d 47 01             	lea    0x1(%edi),%eax
42241c:	eb 02                	jmp    0x422420
42241e:	33 c0                	xor    %eax,%eax
422420:	5f                   	pop    %edi
422421:	5e                   	pop    %esi
422422:	5b                   	pop    %ebx
422423:	5d                   	pop    %ebp
422424:	c3                   	ret
422425:	33 c0                	xor    %eax,%eax
422427:	50                   	push   %eax
422428:	50                   	push   %eax
422429:	50                   	push   %eax
42242a:	50                   	push   %eax
42242b:	50                   	push   %eax
42242c:	e8 de 98 fe ff       	call   0x40bd0f
422431:	cc                   	int3
422432:	8b ff                	mov    %edi,%edi
422434:	55                   	push   %ebp
422435:	8b ec                	mov    %esp,%ebp
422437:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
42243b:	74 1d                	je     0x42245a
42243d:	ff 75 08             	push   0x8(%ebp)
422440:	e8 87 fe ff ff       	call   0x4222cc
422445:	59                   	pop    %ecx
422446:	85 c0                	test   %eax,%eax
422448:	78 10                	js     0x42245a
42244a:	3d e4 00 00 00       	cmp    $0xe4,%eax
42244f:	73 09                	jae    0x42245a
422451:	8b 04 c5 e0 e6 42 00 	mov    0x42e6e0(,%eax,8),%eax
422458:	5d                   	pop    %ebp
422459:	c3                   	ret
42245a:	33 c0                	xor    %eax,%eax
42245c:	5d                   	pop    %ebp
42245d:	c3                   	ret
42245e:	8b ff                	mov    %edi,%edi
422460:	55                   	push   %ebp
422461:	8b ec                	mov    %esp,%ebp
422463:	56                   	push   %esi
422464:	8b 75 08             	mov    0x8(%ebp),%esi
422467:	85 f6                	test   %esi,%esi
422469:	75 15                	jne    0x422480
42246b:	e8 fb 25 ff ff       	call   0x414a6b
422470:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
422476:	e8 67 98 fe ff       	call   0x40bce2
42247b:	83 c8 ff             	or     $0xffffffff,%eax
42247e:	eb 51                	jmp    0x4224d1
422480:	8b 46 0c             	mov    0xc(%esi),%eax
422483:	57                   	push   %edi
422484:	83 cf ff             	or     $0xffffffff,%edi
422487:	c1 e8 0d             	shr    $0xd,%eax
42248a:	a8 01                	test   $0x1,%al
42248c:	74 39                	je     0x4224c7
42248e:	56                   	push   %esi
42248f:	e8 94 70 ff ff       	call   0x419528
422494:	56                   	push   %esi
422495:	8b f8                	mov    %eax,%edi
422497:	e8 1a 72 ff ff       	call   0x4196b6
42249c:	56                   	push   %esi
42249d:	e8 dd 82 ff ff       	call   0x41a77f
4224a2:	50                   	push   %eax
4224a3:	e8 53 34 00 00       	call   0x4258fb
4224a8:	83 c4 10             	add    $0x10,%esp
4224ab:	85 c0                	test   %eax,%eax
4224ad:	79 05                	jns    0x4224b4
4224af:	83 cf ff             	or     $0xffffffff,%edi
4224b2:	eb 13                	jmp    0x4224c7
4224b4:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
4224b8:	74 0d                	je     0x4224c7
4224ba:	ff 76 1c             	push   0x1c(%esi)
4224bd:	e8 4e 28 ff ff       	call   0x414d10
4224c2:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
4224c6:	59                   	pop    %ecx
4224c7:	56                   	push   %esi
4224c8:	e8 49 35 00 00       	call   0x425a16
4224cd:	59                   	pop    %ecx
4224ce:	8b c7                	mov    %edi,%eax
4224d0:	5f                   	pop    %edi
4224d1:	5e                   	pop    %esi
4224d2:	5d                   	pop    %ebp
4224d3:	c3                   	ret
4224d4:	6a 10                	push   $0x10
4224d6:	68 10 83 43 00       	push   $0x438310
4224db:	e8 40 51 fe ff       	call   0x407620
4224e0:	8b 75 08             	mov    0x8(%ebp),%esi
4224e3:	89 75 e0             	mov    %esi,-0x20(%ebp)
4224e6:	33 c0                	xor    %eax,%eax
4224e8:	85 f6                	test   %esi,%esi
4224ea:	0f 95 c0             	setne  %al
4224ed:	85 c0                	test   %eax,%eax
4224ef:	75 15                	jne    0x422506
4224f1:	e8 75 25 ff ff       	call   0x414a6b
4224f6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4224fc:	e8 e1 97 fe ff       	call   0x40bce2
422501:	83 c8 ff             	or     $0xffffffff,%eax
422504:	eb 3b                	jmp    0x422541
422506:	8b 46 0c             	mov    0xc(%esi),%eax
422509:	c1 e8 0c             	shr    $0xc,%eax
42250c:	56                   	push   %esi
42250d:	a8 01                	test   $0x1,%al
42250f:	74 08                	je     0x422519
422511:	e8 00 35 00 00       	call   0x425a16
422516:	59                   	pop    %ecx
422517:	eb e8                	jmp    0x422501
422519:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
42251d:	e8 5f 99 fe ff       	call   0x40be81
422522:	59                   	pop    %ecx
422523:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
422527:	56                   	push   %esi
422528:	e8 31 ff ff ff       	call   0x42245e
42252d:	59                   	pop    %ecx
42252e:	8b f0                	mov    %eax,%esi
422530:	89 75 e4             	mov    %esi,-0x1c(%ebp)
422533:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
42253a:	e8 0b 00 00 00       	call   0x42254a
42253f:	8b c6                	mov    %esi,%eax
422541:	e8 20 51 fe ff       	call   0x407666
422546:	c3                   	ret
422547:	8b 75 e4             	mov    -0x1c(%ebp),%esi
42254a:	ff 75 e0             	push   -0x20(%ebp)
42254d:	e8 43 99 fe ff       	call   0x40be95
422552:	59                   	pop    %ecx
422553:	c3                   	ret
422554:	6a 0c                	push   $0xc
422556:	68 30 83 43 00       	push   $0x438330
42255b:	e8 c0 50 fe ff       	call   0x407620
422560:	33 f6                	xor    %esi,%esi
422562:	89 75 e4             	mov    %esi,-0x1c(%ebp)
422565:	8b 45 08             	mov    0x8(%ebp),%eax
422568:	ff 30                	push   (%eax)
42256a:	e8 00 d5 ff ff       	call   0x41fa6f
42256f:	59                   	pop    %ecx
422570:	89 75 fc             	mov    %esi,-0x4(%ebp)
422573:	8b 45 0c             	mov    0xc(%ebp),%eax
422576:	8b 00                	mov    (%eax),%eax
422578:	8b 38                	mov    (%eax),%edi
42257a:	8b d7                	mov    %edi,%edx
42257c:	c1 fa 06             	sar    $0x6,%edx
42257f:	8b c7                	mov    %edi,%eax
422581:	83 e0 3f             	and    $0x3f,%eax
422584:	6b c8 30             	imul   $0x30,%eax,%ecx
422587:	8b 04 95 c0 9d 83 02 	mov    0x2839dc0(,%edx,4),%eax
42258e:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
422593:	74 21                	je     0x4225b6
422595:	57                   	push   %edi
422596:	e8 ab d5 ff ff       	call   0x41fb46
42259b:	59                   	pop    %ecx
42259c:	50                   	push   %eax
42259d:	ff 15 28 72 42 00    	call   *0x427228
4225a3:	85 c0                	test   %eax,%eax
4225a5:	75 1d                	jne    0x4225c4
4225a7:	e8 ac 24 ff ff       	call   0x414a58
4225ac:	8b f0                	mov    %eax,%esi
4225ae:	ff 15 c4 71 42 00    	call   *0x4271c4
4225b4:	89 06                	mov    %eax,(%esi)
4225b6:	e8 b0 24 ff ff       	call   0x414a6b
4225bb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4225c1:	83 ce ff             	or     $0xffffffff,%esi
4225c4:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4225c7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4225ce:	e8 0d 00 00 00       	call   0x4225e0
4225d3:	8b c6                	mov    %esi,%eax
4225d5:	e8 8c 50 fe ff       	call   0x407666
4225da:	c2 0c 00             	ret    $0xc
4225dd:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4225e0:	8b 4d 10             	mov    0x10(%ebp),%ecx
4225e3:	ff 31                	push   (%ecx)
4225e5:	e8 a8 d4 ff ff       	call   0x41fa92
4225ea:	59                   	pop    %ecx
4225eb:	c3                   	ret
4225ec:	8b ff                	mov    %edi,%edi
4225ee:	55                   	push   %ebp
4225ef:	8b ec                	mov    %esp,%ebp
4225f1:	83 ec 0c             	sub    $0xc,%esp
4225f4:	8b 45 08             	mov    0x8(%ebp),%eax
4225f7:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4225fa:	89 45 f8             	mov    %eax,-0x8(%ebp)
4225fd:	89 45 f4             	mov    %eax,-0xc(%ebp)
422600:	8d 45 f8             	lea    -0x8(%ebp),%eax
422603:	50                   	push   %eax
422604:	ff 75 0c             	push   0xc(%ebp)
422607:	8d 45 f4             	lea    -0xc(%ebp),%eax
42260a:	50                   	push   %eax
42260b:	e8 44 ff ff ff       	call   0x422554
422610:	8b e5                	mov    %ebp,%esp
422612:	5d                   	pop    %ebp
422613:	c3                   	ret
422614:	8b ff                	mov    %edi,%edi
422616:	55                   	push   %ebp
422617:	8b ec                	mov    %esp,%ebp
422619:	51                   	push   %ecx
42261a:	56                   	push   %esi