47140b:	83 cf ff             	or     $0xffffffff,%edi
47140e:	83 ff ff             	cmp    $0xffffffff,%edi
471411:	0f 84 83 00 00 00    	je     0x47149a
471417:	3b 7d 14             	cmp    0x14(%ebp),%edi
47141a:	73 7e                	jae    0x47149a
47141c:	8b 55 fc             	mov    -0x4(%ebp),%edx
47141f:	8b 45 f4             	mov    -0xc(%ebp),%eax
471422:	83 ca 08             	or     $0x8,%edx
471425:	3b c1                	cmp    %ecx,%eax
471427:	89 55 fc             	mov    %edx,-0x4(%ebp)
47142a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47142d:	72 3c                	jb     0x47146b
47142f:	8b 75 f0             	mov    -0x10(%ebp),%esi
471432:	77 04                	ja     0x471438
471434:	3b ce                	cmp    %esi,%ecx
471436:	72 33                	jb     0x47146b
471438:	3b ce                	cmp    %esi,%ecx
47143a:	75 11                	jne    0x47144d
47143c:	3b 45 ec             	cmp    -0x14(%ebp),%eax
47143f:	75 0c                	jne    0x47144d
471441:	3b 5d e8             	cmp    -0x18(%ebp),%ebx
471444:	72 25                	jb     0x47146b
471446:	77 05                	ja     0x47144d
471448:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
47144b:	76 1e                	jbe    0x47146b
47144d:	83 ca 04             	or     $0x4,%edx
471450:	89 55 fc             	mov    %edx,-0x4(%ebp)
471453:	eb 31                	jmp    0x471486
471455:	6a 19                	push   $0x19
471457:	5a                   	pop    %edx
471458:	8d 46 9f             	lea    -0x61(%esi),%eax
47145b:	0f b7 fe             	movzwl %si,%edi
47145e:	66 3b c2             	cmp    %dx,%ax
471461:	77 03                	ja     0x471466
471463:	83 ef 20             	sub    $0x20,%edi
471466:	83 c7 c9             	add    $0xffffffc9,%edi
471469:	eb a3                	jmp    0x47140e
47146b:	50                   	push   %eax
47146c:	51                   	push   %ecx
47146d:	ff 75 e0             	push   -0x20(%ebp)
471470:	ff 75 dc             	push   -0x24(%ebp)
471473:	e8 48 e8 fc ff       	call   0x43fcc0
471478:	8b c8                	mov    %eax,%ecx
47147a:	8b c2                	mov    %edx,%eax
47147c:	03 cf                	add    %edi,%ecx
47147e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
471481:	13 c3                	adc    %ebx,%eax
471483:	89 45 f4             	mov    %eax,-0xc(%ebp)
471486:	8b 45 0c             	mov    0xc(%ebp),%eax
471489:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47148c:	0f b7 30             	movzwl (%eax),%esi
47148f:	83 c0 02             	add    $0x2,%eax
471492:	89 45 0c             	mov    %eax,0xc(%ebp)
471495:	e9 a9 fd ff ff       	jmp    0x471243
47149a:	56                   	push   %esi
47149b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
47149e:	e8 45 1f fe ff       	call   0x4533e8
4714a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4714a6:	a8 08                	test   $0x8,%al
4714a8:	75 0a                	jne    0x4714b4
4714aa:	8b 45 d8             	mov    -0x28(%ebp),%eax
4714ad:	89 45 0c             	mov    %eax,0xc(%ebp)
4714b0:	33 c0                	xor    %eax,%eax
4714b2:	eb 44                	jmp    0x4714f8
4714b4:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4714b7:	8b 7d f8             	mov    -0x8(%ebp),%edi
4714ba:	53                   	push   %ebx
4714bb:	57                   	push   %edi
4714bc:	50                   	push   %eax
4714bd:	e8 3b ee ff ff       	call   0x4702fd
4714c2:	83 c4 0c             	add    $0xc,%esp
4714c5:	84 c0                	test   %al,%al
4714c7:	74 33                	je     0x4714fc
4714c9:	e8 61 b9 fd ff       	call   0x44ce2f
4714ce:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4714d4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4714d7:	a8 01                	test   $0x1,%al
4714d9:	75 08                	jne    0x4714e3
4714db:	83 cf ff             	or     $0xffffffff,%edi
4714de:	83 cb ff             	or     $0xffffffff,%ebx
4714e1:	eb 26                	jmp    0x471509
4714e3:	a8 02                	test   $0x2,%al
4714e5:	74 09                	je     0x4714f0
4714e7:	33 c0                	xor    %eax,%eax
4714e9:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4714ee:	eb 08                	jmp    0x4714f8
4714f0:	83 c8 ff             	or     $0xffffffff,%eax
4714f3:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
4714f8:	8b f8                	mov    %eax,%edi
4714fa:	eb 0d                	jmp    0x471509
4714fc:	f6 45 fc 02          	testb  $0x2,-0x4(%ebp)
471500:	74 07                	je     0x471509
471502:	f7 df                	neg    %edi
471504:	83 d3 00             	adc    $0x0,%ebx
471507:	f7 db                	neg    %ebx
471509:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)
47150d:	0f 84 58 fa ff ff    	je     0x470f6b
471513:	8b 45 c8             	mov    -0x38(%ebp),%eax
471516:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
47151d:	e9 49 fa ff ff       	jmp    0x470f6b
471522:	8b ff                	mov    %edi,%edi
471524:	55                   	push   %ebp
471525:	8b ec                	mov    %esp,%ebp
471527:	51                   	push   %ecx
471528:	6a 01                	push   $0x1
47152a:	ff 75 10             	push   0x10(%ebp)
47152d:	51                   	push   %ecx
47152e:	51                   	push   %ecx
47152f:	8b c4                	mov    %esp,%eax
471531:	ff 75 0c             	push   0xc(%ebp)
471534:	ff 75 08             	push   0x8(%ebp)
471537:	50                   	push   %eax
471538:	e8 03 ee ff ff       	call   0x470340
47153d:	83 c4 0c             	add    $0xc,%esp
471540:	ff 75 14             	push   0x14(%ebp)
471543:	e8 2e ee ff ff       	call   0x470376
471548:	83 c4 14             	add    $0x14,%esp
47154b:	8b e5                	mov    %ebp,%esp
47154d:	5d                   	pop    %ebp
47154e:	c3                   	ret
47154f:	8b ff                	mov    %edi,%edi
471551:	55                   	push   %ebp
471552:	8b ec                	mov    %esp,%ebp
471554:	51                   	push   %ecx
471555:	6a 01                	push   $0x1
471557:	ff 75 10             	push   0x10(%ebp)
47155a:	51                   	push   %ecx
47155b:	51                   	push   %ecx
47155c:	8b c4                	mov    %esp,%eax
47155e:	ff 75 0c             	push   0xc(%ebp)
471561:	ff 75 08             	push   0x8(%ebp)
471564:	50                   	push   %eax
471565:	e8 f1 ed ff ff       	call   0x47035b
47156a:	83 c4 0c             	add    $0xc,%esp
47156d:	ff 75 14             	push   0x14(%ebp)
471570:	e8 29 f0 ff ff       	call   0x47059e
471575:	83 c4 14             	add    $0x14,%esp
471578:	8b e5                	mov    %ebp,%esp
47157a:	5d                   	pop    %ebp
47157b:	c3                   	ret
47157c:	8b ff                	mov    %edi,%edi
47157e:	55                   	push   %ebp
47157f:	8b ec                	mov    %esp,%ebp
471581:	51                   	push   %ecx
471582:	6a 01                	push   $0x1
471584:	ff 75 10             	push   0x10(%ebp)
471587:	51                   	push   %ecx
471588:	51                   	push   %ecx
471589:	8b c4                	mov    %esp,%eax
47158b:	ff 75 0c             	push   0xc(%ebp)
47158e:	ff 75 08             	push   0x8(%ebp)
471591:	50                   	push   %eax
471592:	e8 a9 ed ff ff       	call   0x470340
471597:	83 c4 0c             	add    $0xc,%esp
47159a:	ff 75 14             	push   0x14(%ebp)
47159d:	e8 e1 f6 ff ff       	call   0x470c83
4715a2:	83 c4 14             	add    $0x14,%esp
4715a5:	8b e5                	mov    %ebp,%esp
4715a7:	5d                   	pop    %ebp
4715a8:	c3                   	ret
4715a9:	8b ff                	mov    %edi,%edi
4715ab:	55                   	push   %ebp
4715ac:	8b ec                	mov    %esp,%ebp
4715ae:	51                   	push   %ecx
4715af:	6a 01                	push   $0x1
4715b1:	ff 75 10             	push   0x10(%ebp)
4715b4:	51                   	push   %ecx
4715b5:	51                   	push   %ecx
4715b6:	8b c4                	mov    %esp,%eax
4715b8:	ff 75 0c             	push   0xc(%ebp)
4715bb:	ff 75 08             	push   0x8(%ebp)
4715be:	50                   	push   %eax
4715bf:	e8 97 ed ff ff       	call   0x47035b
4715c4:	83 c4 0c             	add    $0xc,%esp
4715c7:	ff 75 14             	push   0x14(%ebp)
4715ca:	e8 5c f9 ff ff       	call   0x470f2b
4715cf:	83 c4 14             	add    $0x14,%esp
4715d2:	8b e5                	mov    %ebp,%esp
4715d4:	5d                   	pop    %ebp
4715d5:	c3                   	ret
4715d6:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4715db:	c3                   	ret
4715dc:	83 c8 ff             	or     $0xffffffff,%eax
4715df:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
4715e4:	c3                   	ret
4715e5:	b8 00 00 00 80       	mov    $0x80000000,%eax
4715ea:	c3                   	ret
4715eb:	33 c0                	xor    %eax,%eax
4715ed:	ba 00 00 00 80       	mov    $0x80000000,%edx
4715f2:	c3                   	ret
4715f3:	8b ff                	mov    %edi,%edi
4715f5:	55                   	push   %ebp
4715f6:	8b ec                	mov    %esp,%ebp
4715f8:	51                   	push   %ecx
4715f9:	6a 01                	push   $0x1
4715fb:	6a 0a                	push   $0xa
4715fd:	51                   	push   %ecx
4715fe:	51                   	push   %ecx
4715ff:	8b c4                	mov    %esp,%eax
471601:	6a 00                	push   $0x0
471603:	ff 75 08             	push   0x8(%ebp)
471606:	50                   	push   %eax
471607:	e8 34 ed ff ff       	call   0x470340
47160c:	83 c4 0c             	add    $0xc,%esp
47160f:	6a 00                	push   $0x0
471611:	e8 6d f6 ff ff       	call   0x470c83
471616:	83 c4 14             	add    $0x14,%esp
471619:	8b e5                	mov    %ebp,%esp
47161b:	5d                   	pop    %ebp
47161c:	c3                   	ret
47161d:	8b ff                	mov    %edi,%edi
47161f:	55                   	push   %ebp
471620:	8b ec                	mov    %esp,%ebp
471622:	51                   	push   %ecx
471623:	6a 01                	push   $0x1
471625:	6a 0a                	push   $0xa
471627:	51                   	push   %ecx
471628:	51                   	push   %ecx
471629:	8b c4                	mov    %esp,%eax
47162b:	6a 00                	push   $0x0
47162d:	ff 75 08             	push   0x8(%ebp)
471630:	50                   	push   %eax
471631:	e8 0a ed ff ff       	call   0x470340
471636:	83 c4 0c             	add    $0xc,%esp
471639:	ff 75 0c             	push   0xc(%ebp)
47163c:	e8 42 f6 ff ff       	call   0x470c83
471641:	83 c4 14             	add    $0x14,%esp
471644:	8b e5                	mov    %ebp,%esp
471646:	5d                   	pop    %ebp
471647:	c3                   	ret
471648:	8b ff                	mov    %edi,%edi
47164a:	55                   	push   %ebp
47164b:	8b ec                	mov    %esp,%ebp
47164d:	51                   	push   %ecx
47164e:	6a 01                	push   $0x1
471650:	6a 0a                	push   $0xa
471652:	51                   	push   %ecx
471653:	51                   	push   %ecx
471654:	8b c4                	mov    %esp,%eax
471656:	6a 00                	push   $0x0
471658:	ff 75 08             	push   0x8(%ebp)
47165b:	50                   	push   %eax
47165c:	e8 df ec ff ff       	call   0x470340
471661:	83 c4 0c             	add    $0xc,%esp
471664:	ff 75 0c             	push   0xc(%ebp)
471667:	e8 0a ed ff ff       	call   0x470376
47166c:	83 c4 14             	add    $0x14,%esp
47166f:	8b e5                	mov    %ebp,%esp
471671:	5d                   	pop    %ebp
471672:	c3                   	ret
471673:	8b ff                	mov    %edi,%edi
471675:	55                   	push   %ebp
471676:	8b ec                	mov    %esp,%ebp
471678:	51                   	push   %ecx
471679:	6a 01                	push   $0x1
47167b:	6a 0a                	push   $0xa
47167d:	51                   	push   %ecx
47167e:	51                   	push   %ecx
47167f:	8b c4                	mov    %esp,%eax
471681:	6a 00                	push   $0x0
471683:	ff 75 08             	push   0x8(%ebp)
471686:	50                   	push   %eax
471687:	e8 b4 ec ff ff       	call   0x470340
47168c:	83 c4 0c             	add    $0xc,%esp
47168f:	ff 75 0c             	push   0xc(%ebp)
471692:	e8 df ec ff ff       	call   0x470376
471697:	83 c4 14             	add    $0x14,%esp
47169a:	8b e5                	mov    %ebp,%esp
47169c:	5d                   	pop    %ebp
47169d:	c3                   	ret
47169e:	8b ff                	mov    %edi,%edi
4716a0:	55                   	push   %ebp
4716a1:	8b ec                	mov    %esp,%ebp
4716a3:	51                   	push   %ecx
4716a4:	6a 01                	push   $0x1
4716a6:	6a 0a                	push   $0xa
4716a8:	51                   	push   %ecx
4716a9:	51                   	push   %ecx
4716aa:	8b c4                	mov    %esp,%eax
4716ac:	6a 00                	push   $0x0
4716ae:	ff 75 08             	push   0x8(%ebp)
4716b1:	50                   	push   %eax
4716b2:	e8 89 ec ff ff       	call   0x470340
4716b7:	83 c4 0c             	add    $0xc,%esp
4716ba:	ff 75 0c             	push   0xc(%ebp)
4716bd:	e8 c1 f5 ff ff       	call   0x470c83
4716c2:	83 c4 14             	add    $0x14,%esp
4716c5:	8b e5                	mov    %ebp,%esp
4716c7:	5d                   	pop    %ebp
4716c8:	c3                   	ret
4716c9:	8b ff                	mov    %edi,%edi
4716cb:	55                   	push   %ebp
4716cc:	8b ec                	mov    %esp,%ebp
4716ce:	51                   	push   %ecx
4716cf:	6a 01                	push   $0x1
4716d1:	6a 0a                	push   $0xa
4716d3:	51                   	push   %ecx
4716d4:	51                   	push   %ecx
4716d5:	8b c4                	mov    %esp,%eax
4716d7:	6a 00                	push   $0x0
4716d9:	ff 75 08             	push   0x8(%ebp)
4716dc:	50                   	push   %eax
4716dd:	e8 79 ec ff ff       	call   0x47035b
4716e2:	83 c4 0c             	add    $0xc,%esp
4716e5:	6a 00                	push   $0x0
4716e7:	e8 b2 ee ff ff       	call   0x47059e
4716ec:	83 c4 14             	add    $0x14,%esp
4716ef:	8b e5                	mov    %ebp,%esp
4716f1:	5d                   	pop    %ebp
4716f2:	c3                   	ret
4716f3:	8b ff                	mov    %edi,%edi
4716f5:	55                   	push   %ebp
4716f6:	8b ec                	mov    %esp,%ebp
4716f8:	51                   	push   %ecx
4716f9:	6a 01                	push   $0x1
4716fb:	6a 0a                	push   $0xa
4716fd:	51                   	push   %ecx
4716fe:	51                   	push   %ecx
4716ff:	8b c4                	mov    %esp,%eax
471701:	6a 00                	push   $0x0
471703:	ff 75 08             	push   0x8(%ebp)
471706:	50                   	push   %eax
471707:	e8 4f ec ff ff       	call   0x47035b
47170c:	83 c4 0c             	add    $0xc,%esp
47170f:	6a 00                	push   $0x0
471711:	e8 15 f8 ff ff       	call   0x470f2b
471716:	83 c4 14             	add    $0x14,%esp
471719:	8b e5                	mov    %ebp,%esp
47171b:	5d                   	pop    %ebp
47171c:	c3                   	ret
47171d:	8b ff                	mov    %edi,%edi
47171f:	55                   	push   %ebp
471720:	8b ec                	mov    %esp,%ebp
471722:	51                   	push   %ecx
471723:	6a 01                	push   $0x1
471725:	6a 0a                	push   $0xa
471727:	51                   	push   %ecx
471728:	51                   	push   %ecx
471729:	8b c4                	mov    %esp,%eax
47172b:	6a 00                	push   $0x0
47172d:	ff 75 08             	push   0x8(%ebp)
471730:	50                   	push   %eax
471731:	e8 25 ec ff ff       	call   0x47035b
471736:	83 c4 0c             	add    $0xc,%esp
471739:	ff 75 0c             	push   0xc(%ebp)
47173c:	e8 ea f7 ff ff       	call   0x470f2b
471741:	83 c4 14             	add    $0x14,%esp
471744:	8b e5                	mov    %ebp,%esp
471746:	5d                   	pop    %ebp
471747:	c3                   	ret