4175ba:	2b c3                	sub    %ebx,%eax
4175bc:	83 e0 fe             	and    $0xfffffffe,%eax
4175bf:	50                   	push   %eax
4175c0:	53                   	push   %ebx
4175c1:	51                   	push   %ecx
4175c2:	e8 59 0a 01 00       	call   0x428020
4175c7:	2b 9d 50 ff ff ff    	sub    -0xb0(%ebp),%ebx
4175cd:	83 c4 0c             	add    $0xc,%esp
4175d0:	8b 55 f8             	mov    -0x8(%ebp),%edx
4175d3:	8b 75 fc             	mov    -0x4(%ebp),%esi
4175d6:	d1 fb                	sar    $1,%ebx
4175d8:	f7 db                	neg    %ebx
4175da:	8d 14 5a             	lea    (%edx,%ebx,2),%edx
4175dd:	8b 9d 50 ff ff ff    	mov    -0xb0(%ebp),%ebx
4175e3:	89 55 f8             	mov    %edx,-0x8(%ebp)
4175e6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4175e9:	e9 51 fd ff ff       	jmp    0x41733f
4175ee:	8d 7e 02             	lea    0x2(%esi),%edi
4175f1:	ba b8 fb 48 00       	mov    $0x48fbb8,%edx
4175f6:	6a 06                	push   $0x6
4175f8:	8b cf                	mov    %edi,%ecx
4175fa:	e8 96 0d 00 00       	call   0x418395
4175ff:	59                   	pop    %ecx
417600:	85 c0                	test   %eax,%eax
417602:	0f 84 29 c6 03 00    	je     0x453c31
417608:	6a 06                	push   $0x6
41760a:	ba b0 fb 48 00       	mov    $0x48fbb0,%edx
41760f:	8b cf                	mov    %edi,%ecx
417611:	e8 7f 0d 00 00       	call   0x418395
417616:	59                   	pop    %ecx
417617:	85 c0                	test   %eax,%eax
417619:	0f 84 1f c6 03 00    	je     0x453c3e
41761f:	8b 45 f8             	mov    -0x8(%ebp),%eax
417622:	6a 3a                	push   $0x3a
417624:	89 45 f0             	mov    %eax,-0x10(%ebp)
417627:	0f b7 07             	movzwl (%edi),%eax
41762a:	5b                   	pop    %ebx
41762b:	66 3b c3             	cmp    %bx,%ax
41762e:	0f 84 17 c6 03 00    	je     0x453c4b
417634:	6a 2e                	push   $0x2e
417636:	59                   	pop    %ecx
417637:	66 3b c1             	cmp    %cx,%ax
41763a:	0f 84 0b c6 03 00    	je     0x453c4b
417640:	6a 3d                	push   $0x3d
417642:	59                   	pop    %ecx
417643:	66 3b c1             	cmp    %cx,%ax
417646:	0f 84 ff c5 03 00    	je     0x453c4b
41764c:	33 c0                	xor    %eax,%eax
41764e:	6a 02                	push   $0x2
417650:	89 45 dc             	mov    %eax,-0x24(%ebp)
417653:	5f                   	pop    %edi
417654:	6a 5c                	push   $0x5c
417656:	59                   	pop    %ecx
417657:	6a 45                	push   $0x45
417659:	5a                   	pop    %edx
41765a:	03 f7                	add    %edi,%esi
41765c:	89 75 fc             	mov    %esi,-0x4(%ebp)
41765f:	0f b7 1e             	movzwl (%esi),%ebx
417662:	89 5d e8             	mov    %ebx,-0x18(%ebp)
417665:	3b d9                	cmp    %ecx,%ebx
417667:	0f 84 46 0b 00 00    	je     0x4181b3
41766d:	85 c0                	test   %eax,%eax
41766f:	75 09                	jne    0x41767a
417671:	83 fb 5e             	cmp    $0x5e,%ebx
417674:	0f 84 ff c5 03 00    	je     0x453c79
41767a:	6a 5d                	push   $0x5d
41767c:	59                   	pop    %ecx
41767d:	3b d9                	cmp    %ecx,%ebx
41767f:	0f 84 ff c5 03 00    	je     0x453c84
417685:	8b 7d f8             	mov    -0x8(%ebp),%edi
417688:	33 d2                	xor    %edx,%edx
41768a:	6a 20                	push   $0x20
41768c:	58                   	pop    %eax
41768d:	50                   	push   %eax
41768e:	83 c7 06             	add    $0x6,%edi
417691:	89 55 d8             	mov    %edx,-0x28(%ebp)
417694:	52                   	push   %edx
417695:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
41769b:	89 55 98             	mov    %edx,-0x68(%ebp)
41769e:	50                   	push   %eax
41769f:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4176a2:	89 7d ec             	mov    %edi,-0x14(%ebp)
4176a5:	89 7d 80             	mov    %edi,-0x80(%ebp)
4176a8:	89 55 e0             	mov    %edx,-0x20(%ebp)
4176ab:	89 55 a8             	mov    %edx,-0x58(%ebp)
4176ae:	89 55 c8             	mov    %edx,-0x38(%ebp)
4176b1:	e8 6a b9 00 00       	call   0x423020
4176b6:	8b 75 fc             	mov    -0x4(%ebp),%esi
4176b9:	83 c4 0c             	add    $0xc,%esp
4176bc:	85 db                	test   %ebx,%ebx
4176be:	0f 84 65 cc 03 00    	je     0x454329
4176c4:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
4176c8:	74 16                	je     0x4176e0
4176ca:	8b c3                	mov    %ebx,%eax
4176cc:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
4176d1:	23 c1                	and    %ecx,%eax
4176d3:	ba 00 d8 00 00       	mov    $0xd800,%edx
4176d8:	3b c2                	cmp    %edx,%eax
4176da:	0f 84 e9 c5 03 00    	je     0x453cc9
4176e0:	8b 55 2c             	mov    0x2c(%ebp),%edx
4176e3:	85 d2                	test   %edx,%edx
4176e5:	74 0b                	je     0x4176f2
4176e7:	8b 4d 80             	mov    -0x80(%ebp),%ecx
4176ea:	3b f9                	cmp    %ecx,%edi
4176ec:	0f 87 0e c6 03 00    	ja     0x453d00
4176f2:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
4176f6:	0f 85 1d c6 03 00    	jne    0x453d19
4176fc:	83 fb 5b             	cmp    $0x5b,%ebx
4176ff:	0f 84 3b c6 03 00    	je     0x453d40
417705:	6a 5c                	push   $0x5c
417707:	58                   	pop    %eax
417708:	3b d8                	cmp    %eax,%ebx
41770a:	0f 84 cf 0a 00 00    	je     0x4181df
417710:	8b 55 0c             	mov    0xc(%ebp),%edx
417713:	33 c9                	xor    %ecx,%ecx
417715:	6a 5c                	push   $0x5c
417717:	5f                   	pop    %edi
417718:	66 39 7e 02          	cmp    %di,0x2(%esi)
41771c:	0f 84 ae 0b 00 00    	je     0x4182d0
417722:	6a 0d                	push   $0xd
417724:	58                   	pop    %eax
417725:	8b ce                	mov    %esi,%ecx
417727:	3b d8                	cmp    %eax,%ebx
417729:	0f 84 9c ca 03 00    	je     0x4541cb
41772f:	6a 0a                	push   $0xa
417731:	58                   	pop    %eax
417732:	3b d8                	cmp    %eax,%ebx
417734:	0f 84 91 ca 03 00    	je     0x4541cb
41773a:	8b 7d d0             	mov    -0x30(%ebp),%edi
41773d:	85 ff                	test   %edi,%edi
41773f:	75 0d                	jne    0x41774e
417741:	6a 2d                	push   $0x2d
417743:	58                   	pop    %eax
417744:	66 39 46 02          	cmp    %ax,0x2(%esi)
417748:	0f 84 7f 07 00 00    	je     0x417ecd
41774e:	8b 45 a8             	mov    -0x58(%ebp),%eax
417751:	6a 02                	push   $0x2
417753:	59                   	pop    %ecx
417754:	3b c1                	cmp    %ecx,%eax
417756:	0f 8c d8 00 00 00    	jl     0x417834
41775c:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
417760:	75 0b                	jne    0x41776d
417762:	8b 55 f4             	mov    -0xc(%ebp),%edx
417765:	3b c2                	cmp    %edx,%eax
417767:	0f 84 7e 03 00 00    	je     0x417aeb
41776d:	53                   	push   %ebx
41776e:	53                   	push   %ebx
41776f:	ff 75 28             	push   0x28(%ebp)
417772:	ff 75 cc             	push   -0x34(%ebp)
417775:	8d 55 ec             	lea    -0x14(%ebp),%edx
417778:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
41777e:	e8 82 0b 00 00       	call   0x418305
417783:	83 c4 10             	add    $0x10,%esp
417786:	01 45 e0             	add    %eax,-0x20(%ebp)
417789:	8b 7d ec             	mov    -0x14(%ebp),%edi
41778c:	8b 75 fc             	mov    -0x4(%ebp),%esi
41778f:	89 7d e4             	mov    %edi,-0x1c(%ebp)
417792:	8b 45 d0             	mov    -0x30(%ebp),%eax
417795:	8b 55 d8             	mov    -0x28(%ebp),%edx
417798:	6a 02                	push   $0x2
41779a:	5b                   	pop    %ebx
41779b:	03 f3                	add    %ebx,%esi
41779d:	89 75 fc             	mov    %esi,-0x4(%ebp)
4177a0:	0f b7 1e             	movzwl (%esi),%ebx
4177a3:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4177a6:	85 db                	test   %ebx,%ebx
4177a8:	0f 84 57 cb 03 00    	je     0x454305
4177ae:	83 fb 5d             	cmp    $0x5d,%ebx
4177b1:	0f 85 0d ff ff ff    	jne    0x4176c4
4177b7:	85 c0                	test   %eax,%eax
4177b9:	0f 85 05 ff ff ff    	jne    0x4176c4
4177bf:	8b 75 80             	mov    -0x80(%ebp),%esi
4177c2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4177c5:	3b fe                	cmp    %esi,%edi
4177c7:	77 03                	ja     0x4177cc
4177c9:	8b 45 98             	mov    -0x68(%ebp),%eax
4177cc:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
4177cf:	83 fb fe             	cmp    $0xfffffffe,%ebx
4177d2:	0f 84 c3 07 00 00    	je     0x417f9b
4177d8:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4177db:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
4177de:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
4177e1:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4177e4:	8b 5d ac             	mov    -0x54(%ebp),%ebx
4177e7:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
4177ea:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4177ed:	89 5d a8             	mov    %ebx,-0x58(%ebp)
4177f0:	85 c0                	test   %eax,%eax
4177f2:	0f 85 a2 cc 03 00    	jne    0x45449a
4177f8:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
4177fb:	85 db                	test   %ebx,%ebx
4177fd:	74 06                	je     0x417805
4177ff:	2b fe                	sub    %esi,%edi
417801:	d1 ff                	sar    $1,%edi
417803:	01 3b                	add    %edi,(%ebx)
417805:	8b 4d dc             	mov    -0x24(%ebp),%ecx
417808:	33 c0                	xor    %eax,%eax
41780a:	8b 7d f8             	mov    -0x8(%ebp),%edi
41780d:	3b ca                	cmp    %edx,%ecx
41780f:	6a 6e                	push   $0x6e
417811:	5a                   	pop    %edx
417812:	0f 95 c0             	setne  %al
417815:	03 c2                	add    %edx,%eax
417817:	6a 02                	push   $0x2
417819:	5a                   	pop    %edx
41781a:	66 89 07             	mov    %ax,(%edi)
41781d:	03 fa                	add    %edx,%edi
41781f:	85 db                	test   %ebx,%ebx
417821:	0f 84 10 04 00 00    	je     0x417c37
417827:	6a 20                	push   $0x20
417829:	58                   	pop    %eax
41782a:	03 f8                	add    %eax,%edi
41782c:	89 7d f8             	mov    %edi,-0x8(%ebp)
41782f:	e9 e1 fc ff ff       	jmp    0x417515
417834:	40                   	inc    %eax
417835:	89 45 a8             	mov    %eax,-0x58(%ebp)
417838:	e9 1f ff ff ff       	jmp    0x41775c
41783d:	8b 55 a4             	mov    -0x5c(%ebp),%edx
417840:	83 4d 94 ff          	orl    $0xffffffff,-0x6c(%ebp)
417844:	89 55 d8             	mov    %edx,-0x28(%ebp)
417847:	8b 55 ac             	mov    -0x54(%ebp),%edx
41784a:	89 55 a8             	mov    %edx,-0x58(%ebp)
41784d:	8b 55 f4             	mov    -0xc(%ebp),%edx
417850:	3b da                	cmp    %edx,%ebx
417852:	0f 85 01 cc 03 00    	jne    0x454459
417858:	0f b7 c0             	movzwl %ax,%eax
41785b:	3b da                	cmp    %edx,%ebx
41785d:	8b 55 f8             	mov    -0x8(%ebp),%edx
417860:	89 45 9c             	mov    %eax,-0x64(%ebp)
417863:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
417869:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41786c:	0f 85 01 cc 03 00    	jne    0x454473
417872:	8b 75 fc             	mov    -0x4(%ebp),%esi
417875:	8b 5d f0             	mov    -0x10(%ebp),%ebx
417878:	e9 a1 fc ff ff       	jmp    0x41751e
41787d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417880:	8b 45 a0             	mov    -0x60(%ebp),%eax
417883:	e9 17 fb ff ff       	jmp    0x41739f
417888:	33 db                	xor    %ebx,%ebx
41788a:	89 75 90             	mov    %esi,-0x70(%ebp)
41788d:	8b 75 28             	mov    0x28(%ebp),%esi
417890:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
417896:	53                   	push   %ebx
417897:	ff 75 cc             	push   -0x34(%ebp)
41789a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41789d:	ff 76 40             	push   0x40(%esi)
4178a0:	ff 75 0c             	push   0xc(%ebp)
4178a3:	e8 1c 0b 00 00       	call   0x4183c4
4178a8:	8b 55 0c             	mov    0xc(%ebp),%edx
4178ab:	83 c4 10             	add    $0x10,%esp
4178ae:	8b f8                	mov    %eax,%edi
4178b0:	39 1a                	cmp    %ebx,(%edx)
4178b2:	0f 85 45 0a 00 00    	jne    0x4182fd
4178b8:	85 ff                	test   %edi,%edi
4178ba:	0f 85 74 07 00 00    	jne    0x418034
4178c0:	81 bd 6c ff ff ff ff 	cmpl   $0xffff,-0x94(%ebp)
4178c7:	ff 00 00
4178ca:	0f 87 36 bb 03 00    	ja     0x453406
4178d0:	66 8b bd 6c ff ff ff 	mov    -0x94(%ebp),%di
4178d7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4178da:	66 89 bd 08 ff ff ff 	mov    %di,-0xf8(%ebp)
4178e1:	8b da                	mov    %edx,%ebx
4178e3:	89 7d e8             	mov    %edi,-0x18(%ebp)
4178e6:	e9 36 fb ff ff       	jmp    0x417421
4178eb:	6a 02                	push   $0x2
4178ed:	5b                   	pop    %ebx
4178ee:	03 f3                	add    %ebx,%esi
4178f0:	6a 3f                	push   $0x3f
4178f2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4178f5:	58                   	pop    %eax
4178f6:	0f b7 16             	movzwl (%esi),%edx
4178f9:	66 3b d0             	cmp    %ax,%dx
4178fc:	0f 84 60 03 00 00    	je     0x417c62
417902:	6a 2a                	push   $0x2a
417904:	58                   	pop    %eax
417905:	66 3b d0             	cmp    %ax,%dx
417908:	0f 84 74 a5 03 00    	je     0x451e82
41790e:	8b 5d 28             	mov    0x28(%ebp),%ebx
417911:	8b 45 cc             	mov    -0x34(%ebp),%eax
417914:	89 4d e0             	mov    %ecx,-0x20(%ebp)
417917:	6a 3f                	push   $0x3f
417919:	8b 4b 20             	mov    0x20(%ebx),%ecx
41791c:	2b 4b 10             	sub    0x10(%ebx),%ecx
41791f:	d1 f9                	sar    $1,%ecx
417921:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
417927:	33 c9                	xor    %ecx,%ecx
417929:	5f                   	pop    %edi
41792a:	89 45 b4             	mov    %eax,-0x4c(%ebp)
41792d:	c7 45 e4 85 00 00 00 	movl   $0x85,-0x1c(%ebp)
417934:	89 4d c8             	mov    %ecx,-0x38(%ebp)
417937:	66 3b d7             	cmp    %di,%dx
41793a:	0f 84 34 03 00 00    	je     0x417c74
417940:	a9 00 10 00 00       	test   $0x1000,%eax
417945:	0f 85 25 09 00 00    	jne    0x418270
41794b:	8b 55 f8             	mov    -0x8(%ebp),%edx
41794e:	ff 43 40             	incl   0x40(%ebx)
417951:	66 8b 43 40          	mov    0x40(%ebx),%ax
417955:	66 89 42 04          	mov    %ax,0x4(%edx)
417959:	8b 45 f4             	mov    -0xc(%ebp),%eax
41795c:	89 45 e0             	mov    %eax,-0x20(%ebp)
41795f:	8b 75 fc             	mov    -0x4(%ebp),%esi
417962:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
417965:	6a 52                	push   $0x52
417967:	5f                   	pop    %edi
417968:	8b 45 28             	mov    0x28(%ebp),%eax
41796b:	ff 40 58             	incl   0x58(%eax)
41796e:	81 78 58 fa 00 00 00 	cmpl   $0xfa,0x58(%eax)
417975:	0f 8f 78 09 00 00    	jg     0x4182f3
41797b:	8d 43 83             	lea    -0x7d(%ebx),%eax
41797e:	33 c9                	xor    %ecx,%ecx
417980:	83 f8 03             	cmp    $0x3,%eax
417983:	8b 45 28             	mov    0x28(%ebp),%eax
417986:	0f 86 ec bc 03 00    	jbe    0x453678
41798c:	89 55 f0             	mov    %edx,-0x10(%ebp)
41798f:	66 89 1a             	mov    %bx,(%edx)
417992:	8b 78 68             	mov    0x68(%eax),%edi
417995:	8b 70 40             	mov    0x40(%eax),%esi
417998:	8b 45 2c             	mov    0x2c(%ebp),%eax
41799b:	f7 d8                	neg    %eax
41799d:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
4179a3:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4179a9:	89 55 bc             	mov    %edx,-0x44(%ebp)
4179ac:	1b c0                	sbb    %eax,%eax
4179ae:	89 7d 8c             	mov    %edi,-0x74(%ebp)
4179b1:	23 c1                	and    %ecx,%eax
4179b3:	b9 87 00 00 00       	mov    $0x87,%ecx
4179b8:	3b d9                	cmp    %ecx,%ebx
4179ba:	0f 84 d4 08 00 00    	je     0x418294
4179c0:	33 c9                	xor    %ecx,%ecx
4179c2:	8b d1                	mov    %ecx,%edx
4179c4:	83 fb 7f             	cmp    $0x7f,%ebx
4179c7:	0f 84 d1 08 00 00    	je     0x41829e
4179cd:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
4179d3:	0f 84 c5 08 00 00    	je     0x41829e
4179d9:	50                   	push   %eax
4179da:	ff 75 28             	push   0x28(%ebp)
4179dd:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4179e3:	ff 75 20             	push   0x20(%ebp)
4179e6:	50                   	push   %eax
4179e7:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
4179ed:	50                   	push   %eax
4179ee:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
4179f4:	50                   	push   %eax
4179f5:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
4179fb:	50                   	push   %eax
4179fc:	8b 45 24             	mov    0x24(%ebp),%eax
4179ff:	03 c2                	add    %edx,%eax
417a01:	8d 55 bc             	lea    -0x44(%ebp),%edx
417a04:	50                   	push   %eax
417a05:	ff 75 e0             	push   -0x20(%ebp)