45351f:	6a 30                	push   $0x30
453521:	89 75 fc             	mov    %esi,-0x4(%ebp)
453524:	5f                   	pop    %edi
453525:	0f b7 06             	movzwl (%esi),%eax
453528:	66 3b c7             	cmp    %di,%ax
45352b:	72 08                	jb     0x453535
45352d:	6a 39                	push   $0x39
45352f:	59                   	pop    %ecx
453530:	66 3b c1             	cmp    %cx,%ax
453533:	76 2e                	jbe    0x453563
453535:	6a 3f                	push   $0x3f
453537:	e9 42 11 00 00       	jmp    0x45467e
45353c:	6a 2d                	push   $0x2d
45353e:	58                   	pop    %eax
45353f:	3b d0                	cmp    %eax,%edx
453541:	75 20                	jne    0x453563
453543:	0f b7 46 02          	movzwl 0x2(%esi),%eax
453547:	66 3b 85 1c ff ff ff 	cmp    -0xe4(%ebp),%ax
45354e:	0f 82 80 00 00 00    	jb     0x4535d4
453554:	66 3b 85 70 ff ff ff 	cmp    -0x90(%ebp),%ax
45355b:	77 77                	ja     0x4535d4
45355d:	83 c6 02             	add    $0x2,%esi
453560:	89 75 fc             	mov    %esi,-0x4(%ebp)
453563:	33 c0                	xor    %eax,%eax
453565:	6a 30                	push   $0x30
453567:	8b f8                	mov    %eax,%edi
453569:	0f b7 06             	movzwl (%esi),%eax
45356c:	59                   	pop    %ecx
45356d:	66 3b c1             	cmp    %cx,%ax
453570:	72 2c                	jb     0x45359e
453572:	6a 02                	push   $0x2
453574:	5a                   	pop    %edx
453575:	6a 39                	push   $0x39
453577:	5b                   	pop    %ebx
453578:	66 3b c3             	cmp    %bx,%ax
45357b:	77 1b                	ja     0x453598
45357d:	6b cf 0a             	imul   $0xa,%edi,%ecx
453580:	03 f2                	add    %edx,%esi
453582:	0f b7 f8             	movzwl %ax,%edi
453585:	6a 30                	push   $0x30
453587:	89 75 fc             	mov    %esi,-0x4(%ebp)
45358a:	0f b7 06             	movzwl (%esi),%eax
45358d:	83 c1 d0             	add    $0xffffffd0,%ecx
453590:	03 f9                	add    %ecx,%edi
453592:	59                   	pop    %ecx
453593:	66 3b c1             	cmp    %cx,%ax
453596:	73 e0                	jae    0x453578
453598:	8b 55 8c             	mov    -0x74(%ebp),%edx
45359b:	8b 5d b4             	mov    -0x4c(%ebp),%ebx
45359e:	66 39 1e             	cmp    %bx,(%esi)
4535a1:	0f 85 a3 10 00 00    	jne    0x45464a
4535a7:	6a 2d                	push   $0x2d
4535a9:	58                   	pop    %eax
4535aa:	3b d0                	cmp    %eax,%edx
4535ac:	0f 85 93 01 00 00    	jne    0x453745
4535b2:	85 ff                	test   %edi,%edi
4535b4:	0f 84 8c 10 00 00    	je     0x454646
4535ba:	8b 55 28             	mov    0x28(%ebp),%edx
4535bd:	8b 42 40             	mov    0x40(%edx),%eax
4535c0:	2b c7                	sub    %edi,%eax
4535c2:	8d 78 01             	lea    0x1(%eax),%edi
4535c5:	85 ff                	test   %edi,%edi
4535c7:	0f 8f 28 04 00 00    	jg     0x4539f5
4535cd:	6a 0f                	push   $0xf
4535cf:	e9 aa 10 00 00       	jmp    0x45467e
4535d4:	8b 5d 28             	mov    0x28(%ebp),%ebx
4535d7:	33 c9                	xor    %ecx,%ecx
4535d9:	e9 e6 46 fc ff       	jmp    0x417cc4
4535de:	6a 2d                	push   $0x2d
4535e0:	5f                   	pop    %edi
4535e1:	3b c7                	cmp    %edi,%eax
4535e3:	74 38                	je     0x45361d
4535e5:	83 f8 4a             	cmp    $0x4a,%eax
4535e8:	74 21                	je     0x45360b
4535ea:	83 f8 55             	cmp    $0x55,%eax
4535ed:	74 11                	je     0x453600
4535ef:	83 f8 58             	cmp    $0x58,%eax
4535f2:	0f 85 17 10 00 00    	jne    0x45460f
4535f8:	83 09 40             	orl    $0x40,(%ecx)
4535fb:	e9 01 47 fc ff       	jmp    0x417d01
453600:	81 09 00 02 00 00    	orl    $0x200,(%ecx)
453606:	e9 f6 46 fc ff       	jmp    0x417d01
45360b:	81 09 00 00 08 00    	orl    $0x80000,(%ecx)
453611:	81 4b 64 00 04 00 00 	orl    $0x400,0x64(%ebx)
453618:	e9 e4 46 fc ff       	jmp    0x417d01
45361d:	8d 4d dc             	lea    -0x24(%ebp),%ecx
453620:	e9 dc 46 fc ff       	jmp    0x417d01
453625:	83 f8 6d             	cmp    $0x6d,%eax
453628:	74 22                	je     0x45364c
45362a:	6a 73                	push   $0x73
45362c:	5f                   	pop    %edi
45362d:	3b c7                	cmp    %edi,%eax
45362f:	74 13                	je     0x453644
453631:	6a 78                	push   $0x78
453633:	5f                   	pop    %edi
453634:	3b c7                	cmp    %edi,%eax
453636:	0f 85 d3 0f 00 00    	jne    0x45460f
45363c:	83 09 08             	orl    $0x8,(%ecx)
45363f:	e9 bd 46 fc ff       	jmp    0x417d01
453644:	6a 04                	push   $0x4
453646:	58                   	pop    %eax
453647:	e9 b3 46 fc ff       	jmp    0x417cff
45364c:	09 11                	or     %edx,(%ecx)
45364e:	e9 ae 46 fc ff       	jmp    0x417d01
453653:	8b 45 2c             	mov    0x2c(%ebp),%eax
453656:	85 c0                	test   %eax,%eax
453658:	74 08                	je     0x453662
45365a:	39 08                	cmp    %ecx,(%eax)
45365c:	0f 85 d7 46 fc ff    	jne    0x417d39
453662:	89 53 60             	mov    %edx,0x60(%ebx)
453665:	e9 f2 46 fc ff       	jmp    0x417d5c
45366a:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
45366d:	6a 52                	push   $0x52
45366f:	5f                   	pop    %edi
453670:	8b 55 f8             	mov    -0x8(%ebp),%edx
453673:	e9 f0 42 fc ff       	jmp    0x417968
453678:	39 48 7c             	cmp    %ecx,0x7c(%eax)
45367b:	0f 84 0b 43 fc ff    	je     0x41798c
453681:	89 4d f0             	mov    %ecx,-0x10(%ebp)
453684:	89 48 7c             	mov    %ecx,0x7c(%eax)
453687:	e9 03 43 fc ff       	jmp    0x41798f
45368c:	39 70 40             	cmp    %esi,0x40(%eax)
45368f:	0f 87 c6 43 fc ff    	ja     0x417a5b
453695:	8b 75 f8             	mov    -0x8(%ebp),%esi
453698:	b9 82 00 00 00       	mov    $0x82,%ecx
45369d:	66 89 0e             	mov    %cx,(%esi)
4536a0:	e9 97 43 fc ff       	jmp    0x417a3c
4536a5:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4536a9:	0f 85 ac 43 fc ff    	jne    0x417a5b
4536af:	33 c0                	xor    %eax,%eax
4536b1:	8b ce                	mov    %esi,%ecx
4536b3:	6a 78                	push   $0x78
4536b5:	8b d0                	mov    %eax,%edx
4536b7:	5f                   	pop    %edi
4536b8:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4536bc:	42                   	inc    %edx
4536bd:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
4536c0:	66 39 39             	cmp    %di,(%ecx)
4536c3:	75 f3                	jne    0x4536b8
4536c5:	8b 7d 8c             	mov    -0x74(%ebp),%edi
4536c8:	b8 91 00 00 00       	mov    $0x91,%eax
4536cd:	66 39 46 04          	cmp    %ax,0x4(%esi)
4536d1:	75 10                	jne    0x4536e3
4536d3:	3b 55 f4             	cmp    -0xc(%ebp),%edx
4536d6:	0f 8f 43 0f 00 00    	jg     0x45461f
4536dc:	8b d8                	mov    %eax,%ebx
4536de:	e9 78 43 fc ff       	jmp    0x417a5b
4536e3:	6a 02                	push   $0x2
4536e5:	58                   	pop    %eax
4536e6:	3b d0                	cmp    %eax,%edx
4536e8:	0f 8f 3f 0f 00 00    	jg     0x45462d
4536ee:	3b 55 f4             	cmp    -0xc(%ebp),%edx
4536f1:	0f 85 64 43 fc ff    	jne    0x417a5b
4536f7:	83 c8 ff             	or     $0xffffffff,%eax
4536fa:	0b c8                	or     %eax,%ecx
4536fc:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
453702:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
453708:	e9 54 43 fc ff       	jmp    0x417a61
45370d:	85 c9                	test   %ecx,%ecx
45370f:	78 17                	js     0x453728
453711:	8b 9d 28 ff ff ff    	mov    -0xd8(%ebp),%ebx
453717:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
45371a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45371d:	89 5d 9c             	mov    %ebx,-0x64(%ebp)
453720:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
453726:	eb 04                	jmp    0x45372c
453728:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
45372c:	83 4d 94 ff          	orl    $0xffffffff,-0x6c(%ebp)
453730:	e9 9d 43 fc ff       	jmp    0x417ad2
453735:	6a 7d                	push   $0x7d
453737:	59                   	pop    %ecx
453738:	3b d9                	cmp    %ecx,%ebx
45373a:	0f 85 35 41 fc ff    	jne    0x417875
453740:	e9 8d 43 fc ff       	jmp    0x417ad2
453745:	6a 2b                	push   $0x2b
453747:	58                   	pop    %eax
453748:	3b d0                	cmp    %eax,%edx
45374a:	0f 85 a2 02 00 00    	jne    0x4539f2
453750:	85 ff                	test   %edi,%edi
453752:	0f 84 ee 0e 00 00    	je     0x454646
453758:	8b 55 28             	mov    0x28(%ebp),%edx
45375b:	03 7a 40             	add    0x40(%edx),%edi
45375e:	e9 92 02 00 00       	jmp    0x4539f5
453763:	8b 75 fc             	mov    -0x4(%ebp),%esi
453766:	6a 3c                	push   $0x3c
453768:	5f                   	pop    %edi
453769:	0f b7 46 02          	movzwl 0x2(%esi),%eax
45376d:	66 3b c7             	cmp    %di,%ax
453770:	74 1c                	je     0x45378e
453772:	66 3b 85 20 ff ff ff 	cmp    -0xe0(%ebp),%ax
453779:	74 13                	je     0x45378e
45377b:	66 3b 85 d8 fe ff ff 	cmp    -0x128(%ebp),%ax
453782:	74 0a                	je     0x45378e
453784:	6a 45                	push   $0x45
453786:	58                   	pop    %eax
453787:	89 02                	mov    %eax,(%edx)
453789:	e9 ec e6 ff ff       	jmp    0x451e7a
45378e:	83 c6 02             	add    $0x2,%esi
453791:	89 5d e8             	mov    %ebx,-0x18(%ebp)
453794:	89 75 fc             	mov    %esi,-0x4(%ebp)
453797:	0f b7 06             	movzwl (%esi),%eax
45379a:	66 3b c7             	cmp    %di,%ax
45379d:	75 07                	jne    0x4537a6
45379f:	6a 3e                	push   $0x3e
4537a1:	58                   	pop    %eax
4537a2:	8b d8                	mov    %eax,%ebx
4537a4:	eb 14                	jmp    0x4537ba
4537a6:	6a 27                	push   $0x27
4537a8:	33 db                	xor    %ebx,%ebx
4537aa:	59                   	pop    %ecx
4537ab:	66 3b c1             	cmp    %cx,%ax
4537ae:	6a 7d                	push   $0x7d
4537b0:	0f 95 c3             	setne  %bl
4537b3:	4b                   	dec    %ebx
4537b4:	83 e3 aa             	and    $0xffffffaa,%ebx
4537b7:	58                   	pop    %eax
4537b8:	03 d8                	add    %eax,%ebx
4537ba:	6a 30                	push   $0x30
4537bc:	59                   	pop    %ecx
4537bd:	6a 02                	push   $0x2
4537bf:	58                   	pop    %eax
4537c0:	03 f0                	add    %eax,%esi
4537c2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4537c5:	89 75 dc             	mov    %esi,-0x24(%ebp)
4537c8:	89 75 c8             	mov    %esi,-0x38(%ebp)
4537cb:	0f b7 06             	movzwl (%esi),%eax
4537ce:	66 3b c1             	cmp    %cx,%ax
4537d1:	72 13                	jb     0x4537e6
4537d3:	6a 39                	push   $0x39
4537d5:	59                   	pop    %ecx
4537d6:	66 3b c1             	cmp    %cx,%ax
4537d9:	77 0b                	ja     0x4537e6
4537db:	c7 02 54 00 00 00    	movl   $0x54,(%edx)
4537e1:	e9 cc 0e 00 00       	jmp    0x4546b2
4537e6:	bf ff 00 00 00       	mov    $0xff,%edi
4537eb:	66 3b c7             	cmp    %di,%ax
4537ee:	77 25                	ja     0x453815
4537f0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4537f3:	6a 02                	push   $0x2
4537f5:	5a                   	pop    %edx
4537f6:	8b 49 0c             	mov    0xc(%ecx),%ecx
4537f9:	0f b7 c0             	movzwl %ax,%eax
4537fc:	f6 04 08 10          	testb  $0x10,(%eax,%ecx,1)
453800:	74 0d                	je     0x45380f
453802:	03 f2                	add    %edx,%esi
453804:	89 75 fc             	mov    %esi,-0x4(%ebp)
453807:	0f b7 06             	movzwl (%esi),%eax
45380a:	66 3b c7             	cmp    %di,%ax
45380d:	76 ea                	jbe    0x4537f9
45380f:	8b 55 0c             	mov    0xc(%ebp),%edx
453812:	89 75 dc             	mov    %esi,-0x24(%ebp)
453815:	8b 45 c8             	mov    -0x38(%ebp),%eax
453818:	8b fe                	mov    %esi,%edi
45381a:	2b f8                	sub    %eax,%edi
45381c:	d1 ff                	sar    $1,%edi
45381e:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
453822:	74 77                	je     0x45389b
453824:	85 ff                	test   %edi,%edi
453826:	0f 84 2a 0e 00 00    	je     0x454656
45382c:	66 39 1e             	cmp    %bx,(%esi)
45382f:	0f 85 1d 0e 00 00    	jne    0x454652
453835:	6a 20                	push   $0x20
453837:	59                   	pop    %ecx
453838:	3b f9                	cmp    %ecx,%edi
45383a:	0f 8f 0e 0e 00 00    	jg     0x45464e
453840:	8b 55 28             	mov    0x28(%ebp),%edx
453843:	33 c9                	xor    %ecx,%ecx
453845:	89 4d ec             	mov    %ecx,-0x14(%ebp)
453848:	8b 5a 30             	mov    0x30(%edx),%ebx
45384b:	8b 72 28             	mov    0x28(%edx),%esi
45384e:	85 db                	test   %ebx,%ebx
453850:	7e 28                	jle    0x45387a
453852:	3b 7e 04             	cmp    0x4(%esi),%edi
453855:	75 15                	jne    0x45386c
453857:	8b 16                	mov    (%esi),%edx
453859:	8b c8                	mov    %eax,%ecx
45385b:	57                   	push   %edi
45385c:	e8 97 b1 03 00       	call   0x48e9f8
453861:	59                   	pop    %ecx
453862:	8b 4d ec             	mov    -0x14(%ebp),%ecx
453865:	85 c0                	test   %eax,%eax
453867:	74 0e                	je     0x453877
453869:	8b 45 c8             	mov    -0x38(%ebp),%eax
45386c:	41                   	inc    %ecx
45386d:	83 c6 0c             	add    $0xc,%esi
453870:	89 4d ec             	mov    %ecx,-0x14(%ebp)
453873:	3b cb                	cmp    %ebx,%ecx
453875:	7c db                	jl     0x453852
453877:	8b 55 28             	mov    0x28(%ebp),%edx
45387a:	3b cb                	cmp    %ebx,%ecx
45387c:	7d 05                	jge    0x453883
45387e:	8b 7e 08             	mov    0x8(%esi),%edi
453881:	eb 04                	jmp    0x453887
453883:	33 c0                	xor    %eax,%eax
453885:	8b f8                	mov    %eax,%edi
453887:	8b 45 e8             	mov    -0x18(%ebp),%eax
45388a:	89 7d c8             	mov    %edi,-0x38(%ebp)
45388d:	85 c0                	test   %eax,%eax
45388f:	75 03                	jne    0x453894
453891:	ff 42 54             	incl   0x54(%edx)
453894:	8b 55 2c             	mov    0x2c(%ebp),%edx
453897:	ff 02                	incl   (%edx)
453899:	eb 6c                	jmp    0x453907
45389b:	8b 55 28             	mov    0x28(%ebp),%edx
45389e:	8b 4a 2c             	mov    0x2c(%edx),%ecx
4538a1:	8b 5a 30             	mov    0x30(%edx),%ebx
4538a4:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4538a7:	33 c9                	xor    %ecx,%ecx
4538a9:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4538ac:	85 db                	test   %ebx,%ebx
4538ae:	7e 40                	jle    0x4538f0
4538b0:	8b f2                	mov    %edx,%esi
4538b2:	8b 55 b8             	mov    -0x48(%ebp),%edx
4538b5:	57                   	push   %edi
4538b6:	83 c2 02             	add    $0x2,%edx
4538b9:	8b c8                	mov    %eax,%ecx
4538bb:	e8 38 b1 03 00       	call   0x48e9f8
4538c0:	8b 55 b8             	mov    -0x48(%ebp),%edx
4538c3:	59                   	pop    %ecx
4538c4:	85 c0                	test   %eax,%eax
4538c6:	75 0c                	jne    0x4538d4
4538c8:	66 39 44 7a 02       	cmp    %ax,0x2(%edx,%edi,2)
4538cd:	75 05                	jne    0x4538d4
4538cf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4538d2:	eb 17                	jmp    0x4538eb
4538d4:	8b 46 34             	mov    0x34(%esi),%eax
4538d7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4538da:	41                   	inc    %ecx
4538db:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4538de:	8d 14 42             	lea    (%edx,%eax,2),%edx
4538e1:	8b 45 c8             	mov    -0x38(%ebp),%eax
4538e4:	89 55 b8             	mov    %edx,-0x48(%ebp)
4538e7:	3b cb                	cmp    %ebx,%ecx
4538e9:	7c ca                	jl     0x4538b5
4538eb:	8b 75 dc             	mov    -0x24(%ebp),%esi
4538ee:	eb 03                	jmp    0x4538f3
4538f0:	8b 55 b8             	mov    -0x48(%ebp),%edx
4538f3:	3b cb                	cmp    %ebx,%ecx
4538f5:	0f 8d d2 fc ff ff    	jge    0x4535cd
4538fb:	0f b7 3a             	movzwl (%edx),%edi
4538fe:	8b 45 e8             	mov    -0x18(%ebp),%eax
453901:	8b 55 2c             	mov    0x2c(%ebp),%edx
453904:	89 7d c8             	mov    %edi,-0x38(%ebp)
453907:	85 c0                	test   %eax,%eax
453909:	0f 85 e3 00 00 00    	jne    0x4539f2
45390f:	8b 75 28             	mov    0x28(%ebp),%esi
453912:	85 d2                	test   %edx,%edx
453914:	0f 85 04 02 00 00    	jne    0x453b1e
45391a:	39 46 78             	cmp    %eax,0x78(%esi)
45391d:	0f 84 fb 01 00 00    	je     0x453b1e