4172f5:	83 c8 20             	or     $0x20,%eax
4172f8:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
4172fe:	74 03                	je     0x417303
417300:	83 c8 02             	or     $0x2,%eax
417303:	56                   	push   %esi
417304:	8b d1                	mov    %ecx,%edx
417306:	be 00 03 00 00       	mov    $0x300,%esi
41730b:	57                   	push   %edi
41730c:	bf 00 02 00 00       	mov    $0x200,%edi
417311:	23 d6                	and    %esi,%edx
417313:	74 23                	je     0x417338
417315:	81 fa 00 01 00 00    	cmp    $0x100,%edx
41731b:	74 16                	je     0x417333
41731d:	3b d7                	cmp    %edi,%edx
41731f:	74 0b                	je     0x41732c
417321:	3b d6                	cmp    %esi,%edx
417323:	75 13                	jne    0x417338
417325:	0d 00 0c 00 00       	or     $0xc00,%eax
41732a:	eb 0c                	jmp    0x417338
41732c:	0d 00 08 00 00       	or     $0x800,%eax
417331:	eb 05                	jmp    0x417338
417333:	0d 00 04 00 00       	or     $0x400,%eax
417338:	8b d1                	mov    %ecx,%edx
41733a:	81 e2 00 00 03 00    	and    $0x30000,%edx
417340:	74 0c                	je     0x41734e
417342:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
417348:	75 06                	jne    0x417350
41734a:	0b c7                	or     %edi,%eax
41734c:	eb 02                	jmp    0x417350
41734e:	0b c6                	or     %esi,%eax
417350:	5f                   	pop    %edi
417351:	5e                   	pop    %esi
417352:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
417358:	74 05                	je     0x41735f
41735a:	0d 00 10 00 00       	or     $0x1000,%eax
41735f:	5d                   	pop    %ebp
417360:	c3                   	ret
417361:	55                   	push   %ebp
417362:	8b ec                	mov    %esp,%ebp
417364:	8b 45 0c             	mov    0xc(%ebp),%eax
417367:	8b 4d 08             	mov    0x8(%ebp),%ecx
41736a:	83 ec 0c             	sub    $0xc,%esp
41736d:	85 c0                	test   %eax,%eax
41736f:	74 02                	je     0x417373
417371:	89 08                	mov    %ecx,(%eax)
417373:	85 c9                	test   %ecx,%ecx
417375:	75 14                	jne    0x41738b
417377:	e8 01 0e ff ff       	call   0x40817d
41737c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
417382:	e8 6e 42 ff ff       	call   0x40b5f5
417387:	33 c0                	xor    %eax,%eax
417389:	c9                   	leave
41738a:	c3                   	ret
41738b:	8b 45 10             	mov    0x10(%ebp),%eax
41738e:	85 c0                	test   %eax,%eax
417390:	74 0a                	je     0x41739c
417392:	83 f8 02             	cmp    $0x2,%eax
417395:	7c e0                	jl     0x417377
417397:	83 f8 24             	cmp    $0x24,%eax
41739a:	7f db                	jg     0x417377
41739c:	53                   	push   %ebx
41739d:	56                   	push   %esi
41739e:	57                   	push   %edi
41739f:	0f b7 39             	movzwl (%ecx),%edi
4173a2:	33 db                	xor    %ebx,%ebx
4173a4:	8d 71 02             	lea    0x2(%ecx),%esi
4173a7:	eb 06                	jmp    0x4173af
4173a9:	0f b7 3e             	movzwl (%esi),%edi
4173ac:	83 c6 02             	add    $0x2,%esi
4173af:	6a 08                	push   $0x8
4173b1:	57                   	push   %edi
4173b2:	e8 30 da ff ff       	call   0x414de7
4173b7:	59                   	pop    %ecx
4173b8:	59                   	pop    %ecx
4173b9:	85 c0                	test   %eax,%eax
4173bb:	75 ec                	jne    0x4173a9
4173bd:	8b 45 14             	mov    0x14(%ebp),%eax
4173c0:	66 83 ff 2d          	cmp    $0x2d,%di
4173c4:	75 05                	jne    0x4173cb
4173c6:	83 c8 02             	or     $0x2,%eax
4173c9:	eb 06                	jmp    0x4173d1
4173cb:	66 83 ff 2b          	cmp    $0x2b,%di
4173cf:	75 06                	jne    0x4173d7
4173d1:	0f b7 3e             	movzwl (%esi),%edi
4173d4:	83 c6 02             	add    $0x2,%esi
4173d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4173da:	8b 45 10             	mov    0x10(%ebp),%eax
4173dd:	85 c0                	test   %eax,%eax
4173df:	75 36                	jne    0x417417
4173e1:	57                   	push   %edi
4173e2:	e8 50 03 00 00       	call   0x417737
4173e7:	59                   	pop    %ecx
4173e8:	85 c0                	test   %eax,%eax
4173ea:	74 09                	je     0x4173f5
4173ec:	c7 45 10 0a 00 00 00 	movl   $0xa,0x10(%ebp)
4173f3:	eb 4c                	jmp    0x417441
4173f5:	0f b7 06             	movzwl (%esi),%eax
4173f8:	6a 78                	push   $0x78
4173fa:	59                   	pop    %ecx
4173fb:	66 3b c1             	cmp    %cx,%ax
4173fe:	74 11                	je     0x417411
417400:	6a 58                	push   $0x58
417402:	59                   	pop    %ecx
417403:	66 3b c1             	cmp    %cx,%ax
417406:	74 09                	je     0x417411
417408:	c7 45 10 08 00 00 00 	movl   $0x8,0x10(%ebp)
41740f:	eb 30                	jmp    0x417441
417411:	6a 10                	push   $0x10
417413:	58                   	pop    %eax
417414:	89 45 10             	mov    %eax,0x10(%ebp)
417417:	83 f8 10             	cmp    $0x10,%eax
41741a:	75 25                	jne    0x417441
41741c:	57                   	push   %edi
41741d:	e8 15 03 00 00       	call   0x417737
417422:	59                   	pop    %ecx
417423:	85 c0                	test   %eax,%eax
417425:	75 1a                	jne    0x417441
417427:	0f b7 06             	movzwl (%esi),%eax
41742a:	6a 78                	push   $0x78
41742c:	59                   	pop    %ecx
41742d:	66 3b c1             	cmp    %cx,%ax
417430:	74 08                	je     0x41743a
417432:	6a 58                	push   $0x58
417434:	59                   	pop    %ecx
417435:	66 3b c1             	cmp    %cx,%ax
417438:	75 07                	jne    0x417441
41743a:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
41743e:	83 c6 04             	add    $0x4,%esi
417441:	83 c8 ff             	or     $0xffffffff,%eax
417444:	33 d2                	xor    %edx,%edx
417446:	f7 75 10             	divl   0x10(%ebp)
417449:	89 55 f4             	mov    %edx,-0xc(%ebp)
41744c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41744f:	57                   	push   %edi
417450:	e8 e2 02 00 00       	call   0x417737
417455:	8b d0                	mov    %eax,%edx
417457:	59                   	pop    %ecx
417458:	83 fa ff             	cmp    $0xffffffff,%edx
41745b:	75 48                	jne    0x4174a5
41745d:	6a 41                	push   $0x41
41745f:	58                   	pop    %eax
417460:	66 3b c7             	cmp    %di,%ax
417463:	77 06                	ja     0x41746b
417465:	66 83 ff 5a          	cmp    $0x5a,%di
417469:	76 26                	jbe    0x417491
41746b:	6a 19                	push   $0x19
41746d:	8d 47 9f             	lea    -0x61(%edi),%eax
417470:	59                   	pop    %ecx
417471:	66 3b c1             	cmp    %cx,%ax
417474:	76 1e                	jbe    0x417494
417476:	8b 45 fc             	mov    -0x4(%ebp),%eax
417479:	8b 7d 0c             	mov    0xc(%ebp),%edi
41747c:	83 ee 02             	sub    $0x2,%esi
41747f:	a8 08                	test   $0x8,%al
417481:	75 5f                	jne    0x4174e2
417483:	85 ff                	test   %edi,%edi
417485:	74 03                	je     0x41748a
417487:	8b 75 08             	mov    0x8(%ebp),%esi
41748a:	33 db                	xor    %ebx,%ebx
41748c:	e9 99 00 00 00       	jmp    0x41752a
417491:	6a 19                	push   $0x19
417493:	59                   	pop    %ecx
417494:	8d 47 9f             	lea    -0x61(%edi),%eax
417497:	0f b7 d7             	movzwl %di,%edx
41749a:	66 3b c1             	cmp    %cx,%ax
41749d:	77 03                	ja     0x4174a2
41749f:	83 ea 20             	sub    $0x20,%edx
4174a2:	83 c2 c9             	add    $0xffffffc9,%edx
4174a5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4174a8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4174ab:	3b d1                	cmp    %ecx,%edx
4174ad:	73 ca                	jae    0x417479
4174af:	8b 7d f8             	mov    -0x8(%ebp),%edi
4174b2:	83 c8 08             	or     $0x8,%eax
4174b5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4174b8:	3b df                	cmp    %edi,%ebx
4174ba:	72 16                	jb     0x4174d2
4174bc:	75 05                	jne    0x4174c3
4174be:	3b 55 f4             	cmp    -0xc(%ebp),%edx
4174c1:	76 0f                	jbe    0x4174d2
4174c3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4174c6:	83 c8 04             	or     $0x4,%eax
4174c9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4174cc:	85 ff                	test   %edi,%edi
4174ce:	74 ac                	je     0x41747c
4174d0:	eb 05                	jmp    0x4174d7
4174d2:	0f af d9             	imul   %ecx,%ebx
4174d5:	03 da                	add    %edx,%ebx
4174d7:	0f b7 3e             	movzwl (%esi),%edi
4174da:	83 c6 02             	add    $0x2,%esi
4174dd:	e9 6d ff ff ff       	jmp    0x41744f
4174e2:	a8 04                	test   $0x4,%al
4174e4:	75 1f                	jne    0x417505
4174e6:	a8 01                	test   $0x1,%al
4174e8:	75 40                	jne    0x41752a
4174ea:	8b c8                	mov    %eax,%ecx
4174ec:	83 e1 02             	and    $0x2,%ecx
4174ef:	74 08                	je     0x4174f9
4174f1:	81 fb 00 00 00 80    	cmp    $0x80000000,%ebx
4174f7:	77 0c                	ja     0x417505
4174f9:	85 c9                	test   %ecx,%ecx
4174fb:	75 2d                	jne    0x41752a
4174fd:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
417503:	76 25                	jbe    0x41752a
417505:	e8 73 0c ff ff       	call   0x40817d
41750a:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
417510:	8b 45 fc             	mov    -0x4(%ebp),%eax
417513:	a8 01                	test   $0x1,%al
417515:	74 05                	je     0x41751c
417517:	83 cb ff             	or     $0xffffffff,%ebx
41751a:	eb 0e                	jmp    0x41752a
41751c:	6a 00                	push   $0x0
41751e:	a8 02                	test   $0x2,%al
417520:	5b                   	pop    %ebx
417521:	0f 95 c3             	setne  %bl
417524:	81 c3 ff ff ff 7f    	add    $0x7fffffff,%ebx
41752a:	85 ff                	test   %edi,%edi
41752c:	74 02                	je     0x417530
41752e:	89 37                	mov    %esi,(%edi)
417530:	a8 02                	test   $0x2,%al
417532:	74 02                	je     0x417536
417534:	f7 db                	neg    %ebx
417536:	5f                   	pop    %edi
417537:	5e                   	pop    %esi
417538:	8b c3                	mov    %ebx,%eax
41753a:	5b                   	pop    %ebx
41753b:	c9                   	leave
41753c:	c3                   	ret
41753d:	55                   	push   %ebp
41753e:	8b ec                	mov    %esp,%ebp
417540:	6a 00                	push   $0x0
417542:	ff 75 10             	push   0x10(%ebp)
417545:	ff 75 0c             	push   0xc(%ebp)
417548:	ff 75 08             	push   0x8(%ebp)
41754b:	e8 11 fe ff ff       	call   0x417361
417550:	83 c4 10             	add    $0x10,%esp
417553:	5d                   	pop    %ebp
417554:	c3                   	ret
417555:	55                   	push   %ebp
417556:	8b ec                	mov    %esp,%ebp
417558:	83 ec 1c             	sub    $0x1c,%esp
41755b:	53                   	push   %ebx
41755c:	8b 5d 10             	mov    0x10(%ebp),%ebx
41755f:	33 d2                	xor    %edx,%edx
417561:	56                   	push   %esi
417562:	b8 4e 40 00 00       	mov    $0x404e,%eax
417567:	57                   	push   %edi
417568:	89 45 fc             	mov    %eax,-0x4(%ebp)
41756b:	89 13                	mov    %edx,(%ebx)
41756d:	89 53 04             	mov    %edx,0x4(%ebx)
417570:	89 53 08             	mov    %edx,0x8(%ebx)
417573:	39 55 0c             	cmp    %edx,0xc(%ebp)
417576:	0f 86 40 01 00 00    	jbe    0x4176bc
41757c:	8b ca                	mov    %edx,%ecx
41757e:	89 4d 10             	mov    %ecx,0x10(%ebp)
417581:	89 55 f8             	mov    %edx,-0x8(%ebp)
417584:	89 55 f4             	mov    %edx,-0xc(%ebp)
417587:	8b 55 10             	mov    0x10(%ebp),%edx
41758a:	8b f3                	mov    %ebx,%esi
41758c:	8d 7d e4             	lea    -0x1c(%ebp),%edi
41758f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417590:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417591:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417592:	8b 75 f8             	mov    -0x8(%ebp),%esi
417595:	8b 7d f4             	mov    -0xc(%ebp),%edi
417598:	8b c1                	mov    %ecx,%eax
41759a:	c1 e8 1f             	shr    $0x1f,%eax
41759d:	8b ce                	mov    %esi,%ecx
41759f:	c1 e9 1f             	shr    $0x1f,%ecx
4175a2:	03 f6                	add    %esi,%esi
4175a4:	0b f0                	or     %eax,%esi
4175a6:	03 ff                	add    %edi,%edi
4175a8:	0b f9                	or     %ecx,%edi
4175aa:	03 d2                	add    %edx,%edx
4175ac:	8b c2                	mov    %edx,%eax
4175ae:	c1 e8 1f             	shr    $0x1f,%eax
4175b1:	8b ce                	mov    %esi,%ecx
4175b3:	03 f6                	add    %esi,%esi
4175b5:	0b f0                	or     %eax,%esi
4175b7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4175ba:	c1 e9 1f             	shr    $0x1f,%ecx
4175bd:	03 d2                	add    %edx,%edx
4175bf:	03 ff                	add    %edi,%edi
4175c1:	0b f9                	or     %ecx,%edi
4175c3:	03 c2                	add    %edx,%eax
4175c5:	33 c9                	xor    %ecx,%ecx
4175c7:	89 13                	mov    %edx,(%ebx)
4175c9:	89 73 04             	mov    %esi,0x4(%ebx)
4175cc:	89 7b 08             	mov    %edi,0x8(%ebx)
4175cf:	89 45 10             	mov    %eax,0x10(%ebp)
4175d2:	3b c2                	cmp    %edx,%eax
4175d4:	72 05                	jb     0x4175db
4175d6:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
4175d9:	73 03                	jae    0x4175de
4175db:	33 c9                	xor    %ecx,%ecx
4175dd:	41                   	inc    %ecx
4175de:	89 03                	mov    %eax,(%ebx)
4175e0:	85 c9                	test   %ecx,%ecx
4175e2:	74 1e                	je     0x417602
4175e4:	8b c6                	mov    %esi,%eax
4175e6:	33 c9                	xor    %ecx,%ecx
4175e8:	8d 70 01             	lea    0x1(%eax),%esi
4175eb:	3b f0                	cmp    %eax,%esi
4175ed:	72 05                	jb     0x4175f4
4175ef:	83 fe 01             	cmp    $0x1,%esi
4175f2:	73 03                	jae    0x4175f7
4175f4:	33 c9                	xor    %ecx,%ecx
4175f6:	41                   	inc    %ecx
4175f7:	89 73 04             	mov    %esi,0x4(%ebx)
4175fa:	85 c9                	test   %ecx,%ecx
4175fc:	74 04                	je     0x417602
4175fe:	47                   	inc    %edi
4175ff:	89 7b 08             	mov    %edi,0x8(%ebx)
417602:	8b 55 e8             	mov    -0x18(%ebp),%edx
417605:	33 c0                	xor    %eax,%eax
417607:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
41760a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41760d:	3b ce                	cmp    %esi,%ecx
41760f:	72 04                	jb     0x417615
417611:	3b ca                	cmp    %edx,%ecx
417613:	73 03                	jae    0x417618
417615:	33 c0                	xor    %eax,%eax
417617:	40                   	inc    %eax
417618:	89 4b 04             	mov    %ecx,0x4(%ebx)
41761b:	85 c0                	test   %eax,%eax
41761d:	74 04                	je     0x417623
41761f:	47                   	inc    %edi
417620:	89 7b 08             	mov    %edi,0x8(%ebx)
417623:	8b 55 10             	mov    0x10(%ebp),%edx
417626:	03 7d ec             	add    -0x14(%ebp),%edi
417629:	8b 75 f4             	mov    -0xc(%ebp),%esi
41762c:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
417630:	8b c2                	mov    %edx,%eax
417632:	c1 e8 1f             	shr    $0x1f,%eax
417635:	03 f6                	add    %esi,%esi
417637:	0b f0                	or     %eax,%esi
417639:	c1 e9 1f             	shr    $0x1f,%ecx
41763c:	8d 04 3f             	lea    (%edi,%edi,1),%eax
41763f:	0b c1                	or     %ecx,%eax
417641:	8b 4d 08             	mov    0x8(%ebp),%ecx
417644:	03 d2                	add    %edx,%edx
417646:	89 13                	mov    %edx,(%ebx)
417648:	89 73 04             	mov    %esi,0x4(%ebx)
41764b:	89 43 08             	mov    %eax,0x8(%ebx)
41764e:	0f be 39             	movsbl (%ecx),%edi
417651:	89 75 f8             	mov    %esi,-0x8(%ebp)
417654:	8d 0c 3a             	lea    (%edx,%edi,1),%ecx
417657:	89 45 f4             	mov    %eax,-0xc(%ebp)
41765a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
41765d:	89 4d 10             	mov    %ecx,0x10(%ebp)