4186ad:	57                   	push   %edi
4186ae:	8b f9                	mov    %ecx,%edi
4186b0:	89 7d fc             	mov    %edi,-0x4(%ebp)
4186b3:	8b 55 08             	mov    0x8(%ebp),%edx
4186b6:	e8 11 00 00 00       	call   0x4186cc
4186bb:	8b c8                	mov    %eax,%ecx
4186bd:	85 c9                	test   %ecx,%ecx
4186bf:	0f 85 b1 ca 03 00    	jne    0x455176
4186c5:	5f                   	pop    %edi
4186c6:	5e                   	pop    %esi
4186c7:	5b                   	pop    %ebx
4186c8:	8b e5                	mov    %ebp,%esp
4186ca:	5d                   	pop    %ebp
4186cb:	c3                   	ret
4186cc:	55                   	push   %ebp
4186cd:	8b ec                	mov    %esp,%ebp
4186cf:	51                   	push   %ecx
4186d0:	51                   	push   %ecx
4186d1:	0f b7 01             	movzwl (%ecx),%eax
4186d4:	53                   	push   %ebx
4186d5:	56                   	push   %esi
4186d6:	57                   	push   %edi
4186d7:	8b fa                	mov    %edx,%edi
4186d9:	66 85 c0             	test   %ax,%ax
4186dc:	74 76                	je     0x418754
4186de:	6a 10                	push   $0x10
4186e0:	5e                   	pop    %esi
4186e1:	bb 95 00 00 00       	mov    $0x95,%ebx
4186e6:	89 75 f8             	mov    %esi,-0x8(%ebp)
4186e9:	c7 45 fc 0f 00 00 00 	movl   $0xf,-0x4(%ebp)
4186f0:	66 83 f8 75          	cmp    $0x75,%ax
4186f4:	0f 84 90 00 00 00    	je     0x41878a
4186fa:	66 83 f8 70          	cmp    $0x70,%ax
4186fe:	74 78                	je     0x418778
418700:	0f b7 d0             	movzwl %ax,%edx
418703:	3b d3                	cmp    %ebx,%edx
418705:	0f 8f fb ca 03 00    	jg     0x455206
41870b:	74 74                	je     0x418781
41870d:	83 fa 55             	cmp    $0x55,%edx
418710:	7c 24                	jl     0x418736
418712:	83 fa 5a             	cmp    $0x5a,%edx
418715:	0f 8e d0 ca 03 00    	jle    0x4551eb
41871b:	83 fa 5d             	cmp    $0x5d,%edx
41871e:	0f 8e ac ca 03 00    	jle    0x4551d0
418724:	83 fa 60             	cmp    $0x60,%edx
418727:	0f 8e be ca 03 00    	jle    0x4551eb
41872d:	83 fa 61             	cmp    $0x61,%edx
418730:	0f 84 9a ca 03 00    	je     0x4551d0
418736:	0f b6 82 50 57 4a 00 	movzbl 0x4a5750(%edx),%eax
41873d:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
418740:	85 ff                	test   %edi,%edi
418742:	74 08                	je     0x41874c
418744:	8d 42 e3             	lea    -0x1d(%edx),%eax
418747:	83 f8 37             	cmp    $0x37,%eax
41874a:	76 11                	jbe    0x41875d
41874c:	0f b7 01             	movzwl (%ecx),%eax
41874f:	66 85 c0             	test   %ax,%ax
418752:	75 9c                	jne    0x4186f0
418754:	33 c0                	xor    %eax,%eax
418756:	5f                   	pop    %edi
418757:	5e                   	pop    %esi
418758:	5b                   	pop    %ebx
418759:	8b e5                	mov    %ebp,%esp
41875b:	5d                   	pop    %ebp
41875c:	c3                   	ret
41875d:	66 8b 41 fe          	mov    -0x2(%ecx),%ax
418761:	ba 00 fc 00 00       	mov    $0xfc00,%edx
418766:	66 23 c2             	and    %dx,%ax
418769:	ba 00 d8 00 00       	mov    $0xd800,%edx
41876e:	66 3b c2             	cmp    %dx,%ax
418771:	75 d9                	jne    0x41874c
418773:	83 c1 02             	add    $0x2,%ecx
418776:	eb d4                	jmp    0x41874c
418778:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
41877c:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41877f:	eb cb                	jmp    0x41874c
418781:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
418785:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
418788:	eb ac                	jmp    0x418736
41878a:	8b c1                	mov    %ecx,%eax
41878c:	eb c8                	jmp    0x418756
41878e:	55                   	push   %ebp
41878f:	8b ec                	mov    %esp,%ebp
418791:	83 ec 28             	sub    $0x28,%esp
418794:	53                   	push   %ebx
418795:	56                   	push   %esi
418796:	8b f1                	mov    %ecx,%esi
418798:	b8 a2 00 00 00       	mov    $0xa2,%eax
41879d:	57                   	push   %edi
41879e:	8b da                	mov    %edx,%ebx
4187a0:	0f b7 0e             	movzwl (%esi),%ecx
4187a3:	66 8b f9             	mov    %cx,%di
4187a6:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4187a9:	66 3b f8             	cmp    %ax,%di
4187ac:	0f 83 8f 00 00 00    	jae    0x418841
4187b2:	6a 07                	push   $0x7
4187b4:	5a                   	pop    %edx
4187b5:	8d 41 df             	lea    -0x21(%ecx),%eax
4187b8:	66 83 f8 40          	cmp    $0x40,%ax
4187bc:	0f 86 63 01 00 00    	jbe    0x418925
4187c2:	6a 70                	push   $0x70
4187c4:	58                   	pop    %eax
4187c5:	66 83 ff 6e          	cmp    $0x6e,%di
4187c9:	0f 84 d1 00 00 00    	je     0x4188a0
4187cf:	66 83 ff 6f          	cmp    $0x6f,%di
4187d3:	0f 84 c7 00 00 00    	je     0x4188a0
4187d9:	66 3b f8             	cmp    %ax,%di
4187dc:	0f 84 be 00 00 00    	je     0x4188a0
4187e2:	6a 70                	push   $0x70
4187e4:	0f b7 cf             	movzwl %di,%ecx
4187e7:	5a                   	pop    %edx
4187e8:	3b ca                	cmp    %edx,%ecx
4187ea:	7f 5c                	jg     0x418848
4187ec:	0f 84 9e ca 03 00    	je     0x455290
4187f2:	83 f9 5d             	cmp    $0x5d,%ecx
4187f5:	0f 8f 8e 00 00 00    	jg     0x418889
4187fb:	83 f9 5b             	cmp    $0x5b,%ecx
4187fe:	0f 8d 71 ca 03 00    	jge    0x455275
418804:	85 c9                	test   %ecx,%ecx
418806:	74 39                	je     0x418841
418808:	83 f9 54             	cmp    $0x54,%ecx
41880b:	0f 8f 97 01 00 00    	jg     0x4189a8
418811:	0f b6 81 50 57 4a 00 	movzbl 0x4a5750(%ecx),%eax
418818:	8d 34 46             	lea    (%esi,%eax,2),%esi
41881b:	85 db                	test   %ebx,%ebx
41881d:	74 08                	je     0x418827
41881f:	8d 41 e3             	lea    -0x1d(%ecx),%eax
418822:	83 f8 37             	cmp    $0x37,%eax
418825:	76 47                	jbe    0x41886e
418827:	0f b7 0e             	movzwl (%esi),%ecx
41882a:	b8 a2 00 00 00       	mov    $0xa2,%eax
41882f:	66 8b f9             	mov    %cx,%di
418832:	89 4d fc             	mov    %ecx,-0x4(%ebp)
418835:	6a 07                	push   $0x7
418837:	5a                   	pop    %edx
418838:	66 3b f8             	cmp    %ax,%di
41883b:	0f 82 74 ff ff ff    	jb     0x4187b5
418841:	5f                   	pop    %edi
418842:	5e                   	pop    %esi
418843:	5b                   	pop    %ebx
418844:	8b e5                	mov    %ebp,%esp
418846:	5d                   	pop    %ebp
418847:	c3                   	ret
418848:	8b c1                	mov    %ecx,%eax
41884a:	2d 95 00 00 00       	sub    $0x95,%eax
41884f:	0f 84 3b ca 03 00    	je     0x455290
418855:	48                   	dec    %eax
418856:	48                   	dec    %eax
418857:	0f 84 33 ca 03 00    	je     0x455290
41885d:	48                   	dec    %eax
41885e:	48                   	dec    %eax
41885f:	0f 84 2b ca 03 00    	je     0x455290
418865:	48                   	dec    %eax
418866:	48                   	dec    %eax
418867:	75 a8                	jne    0x418811
418869:	e9 22 ca 03 00       	jmp    0x455290
41886e:	66 8b 46 fe          	mov    -0x2(%esi),%ax
418872:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
418877:	66 23 c1             	and    %cx,%ax
41887a:	b9 00 d8 00 00       	mov    $0xd800,%ecx
41887f:	66 3b c1             	cmp    %cx,%ax
418882:	75 a3                	jne    0x418827
418884:	83 c6 02             	add    $0x2,%esi
418887:	eb 9e                	jmp    0x418827
418889:	83 f9 60             	cmp    $0x60,%ecx
41888c:	0f 8e 1f 01 00 00    	jle    0x4189b1
418892:	83 f9 61             	cmp    $0x61,%ecx
418895:	0f 85 76 ff ff ff    	jne    0x418811
41889b:	e9 d5 c9 03 00       	jmp    0x455275
4188a0:	66 3b f8             	cmp    %ax,%di
4188a3:	0f 84 c0 c9 03 00    	je     0x455269
4188a9:	8d 7e 22             	lea    0x22(%esi),%edi
4188ac:	0f b7 07             	movzwl (%edi),%eax
4188af:	89 45 fc             	mov    %eax,-0x4(%ebp)
4188b2:	83 c0 9e             	add    $0xffffff9e,%eax
4188b5:	66 3b c2             	cmp    %dx,%ax
4188b8:	77 5d                	ja     0x418917
4188ba:	8d 45 d8             	lea    -0x28(%ebp),%eax
4188bd:	8b d3                	mov    %ebx,%edx
4188bf:	50                   	push   %eax
4188c0:	8b 45 08             	mov    0x8(%ebp),%eax
4188c3:	8b ce                	mov    %esi,%ecx
4188c5:	ff 70 04             	push   0x4(%eax)
4188c8:	e8 34 04 00 00       	call   0x418d01
4188cd:	8a 4d fc             	mov    -0x4(%ebp),%cl
4188d0:	8b d3                	mov    %ebx,%edx
4188d2:	f6 d1                	not    %cl
4188d4:	c7 45 f8 e8 03 00 00 	movl   $0x3e8,-0x8(%ebp)
4188db:	0f b6 c9             	movzbl %cl,%ecx
4188de:	83 e1 01             	and    $0x1,%ecx
4188e1:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4188e4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4188e7:	51                   	push   %ecx
4188e8:	50                   	push   %eax
4188e9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4188ec:	51                   	push   %ecx
4188ed:	ff 75 08             	push   0x8(%ebp)
4188f0:	8b c8                	mov    %eax,%ecx
4188f2:	e8 17 01 00 00       	call   0x418a0e
4188f7:	83 c4 18             	add    $0x18,%esp
4188fa:	85 c0                	test   %eax,%eax
4188fc:	74 19                	je     0x418917
4188fe:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
418902:	83 c0 9e             	add    $0xffffff9e,%eax
418905:	83 f8 07             	cmp    $0x7,%eax
418908:	77 0d                	ja     0x418917
41890a:	ff 24 85 ee 89 41 00 	jmp    *0x4189ee(,%eax,4)
418911:	6a 6a                	push   $0x6a
418913:	58                   	pop    %eax
418914:	66 89 07             	mov    %ax,(%edi)
418917:	0f b7 06             	movzwl (%esi),%eax
41891a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41891d:	66 8b f8             	mov    %ax,%di
418920:	e9 bd fe ff ff       	jmp    0x4187e2
418925:	e8 40 07 00 00       	call   0x41906a
41892a:	6a 21                	push   $0x21
41892c:	59                   	pop    %ecx
41892d:	66 2b c8             	sub    %ax,%cx
418930:	66 03 f9             	add    %cx,%di
418933:	66 83 ff 28          	cmp    $0x28,%di
418937:	0f 87 94 00 00 00    	ja     0x4189d1
41893d:	8d 45 d8             	lea    -0x28(%ebp),%eax
418940:	8b d3                	mov    %ebx,%edx
418942:	50                   	push   %eax
418943:	8b 45 08             	mov    0x8(%ebp),%eax
418946:	8b ce                	mov    %esi,%ecx
418948:	ff 70 04             	push   0x4(%eax)
41894b:	e8 b1 03 00 00       	call   0x418d01
418950:	59                   	pop    %ecx
418951:	59                   	pop    %ecx
418952:	6a 21                	push   $0x21
418954:	59                   	pop    %ecx
418955:	66 3b f9             	cmp    %cx,%di
418958:	74 7e                	je     0x4189d8
41895a:	66 83 ff 23          	cmp    $0x23,%di
41895e:	74 78                	je     0x4189d8
418960:	66 83 ff 25          	cmp    $0x25,%di
418964:	74 72                	je     0x4189d8
418966:	66 83 ff 27          	cmp    $0x27,%di
41896a:	74 6c                	je     0x4189d8
41896c:	33 c9                	xor    %ecx,%ecx
41896e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
418971:	c7 45 f8 e8 03 00 00 	movl   $0x3e8,-0x8(%ebp)
418978:	85 c0                	test   %eax,%eax
41897a:	74 9b                	je     0x418917
41897c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
41897f:	8b d3                	mov    %ebx,%edx
418981:	51                   	push   %ecx
418982:	50                   	push   %eax
418983:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418986:	51                   	push   %ecx
418987:	ff 75 08             	push   0x8(%ebp)
41898a:	8b c8                	mov    %eax,%ecx
41898c:	e8 7d 00 00 00       	call   0x418a0e
418991:	83 c4 10             	add    $0x10,%esp
418994:	85 c0                	test   %eax,%eax
418996:	0f 84 7b ff ff ff    	je     0x418917
41899c:	e9 87 c8 03 00       	jmp    0x455228
4189a1:	6a 6c                	push   $0x6c
4189a3:	e9 6b ff ff ff       	jmp    0x418913
4189a8:	83 f9 5a             	cmp    $0x5a,%ecx
4189ab:	0f 8f 60 fe ff ff    	jg     0x418811
4189b1:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4189b5:	6a 10                	push   $0x10
4189b7:	5a                   	pop    %edx
4189b8:	66 3b c2             	cmp    %dx,%ax
4189bb:	74 0c                	je     0x4189c9
4189bd:	6a 0f                	push   $0xf
4189bf:	5a                   	pop    %edx
4189c0:	66 3b c2             	cmp    %dx,%ax
4189c3:	0f 85 48 fe ff ff    	jne    0x418811
4189c9:	83 c6 04             	add    $0x4,%esi
4189cc:	e9 40 fe ff ff       	jmp    0x418811
4189d1:	33 c0                	xor    %eax,%eax
4189d3:	e9 7a ff ff ff       	jmp    0x418952
4189d8:	33 c9                	xor    %ecx,%ecx
4189da:	41                   	inc    %ecx
4189db:	eb 91                	jmp    0x41896e
4189dd:	6a 6b                	push   $0x6b
4189df:	e9 2f ff ff ff       	jmp    0x418913
4189e4:	6a 6d                	push   $0x6d
4189e6:	e9 28 ff ff ff       	jmp    0x418913
4189eb:	8d 49 00             	lea    0x0(%ecx),%ecx
4189ee:	11 89 41 00 11 89    	adc    %ecx,-0x76eeffbf(%ecx)
4189f4:	41                   	inc    %ecx
4189f5:	00 dd                	add    %bl,%ch
4189f7:	89 41 00             	mov    %eax,0x0(%ecx)
4189fa:	dd 89 41 00 a1 89    	fisttpll -0x765effbf(%ecx)
418a00:	41                   	inc    %ecx
418a01:	00 a1 89 41 00 e4    	add    %ah,-0x1bffbe77(%ecx)
418a07:	89 41 00             	mov    %eax,0x0(%ecx)
418a0a:	e4 89                	in     $0x89,%al
418a0c:	41                   	inc    %ecx
418a0d:	00 55 8b             	add    %dl,-0x75(%ebp)
418a10:	ec                   	in     (%dx),%al
418a11:	83 ec 40             	sub    $0x40,%esp
418a14:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
418a18:	89 55 f4             	mov    %edx,-0xc(%ebp)
418a1b:	8b 55 14             	mov    0x14(%ebp),%edx
418a1e:	53                   	push   %ebx
418a1f:	8b d9                	mov    %ecx,%ebx
418a21:	8b 02                	mov    (%edx),%eax
418a23:	85 c0                	test   %eax,%eax
418a25:	0f 84 b8 02 00 00    	je     0x418ce3
418a2b:	57                   	push   %edi
418a2c:	6a 77                	push   $0x77
418a2e:	48                   	dec    %eax
418a2f:	c7 45 ec 83 00 00 00 	movl   $0x83,-0x14(%ebp)
418a36:	59                   	pop    %ecx
418a37:	89 02                	mov    %eax,(%edx)
418a39:	c7 45 e4 81 00 00 00 	movl   $0x81,-0x1c(%ebp)
418a40:	c7 45 e0 82 00 00 00 	movl   $0x82,-0x20(%ebp)
418a47:	c7 45 e8 85 00 00 00 	movl   $0x85,-0x18(%ebp)
418a4e:	56                   	push   %esi
418a4f:	8b 7d 0c             	mov    0xc(%ebp),%edi
418a52:	0f b7 03             	movzwl (%ebx),%eax
418a55:	83 f8 76             	cmp    $0x76,%eax
418a58:	0f 84 8c 02 00 00    	je     0x418cea
418a5e:	66 3b c1             	cmp    %cx,%ax
418a61:	0f 84 68 02 00 00    	je     0x418ccf
418a67:	0f b7 f0             	movzwl %ax,%esi
418a6a:	b8 83 00 00 00       	mov    $0x83,%eax
418a6f:	3b f0                	cmp    %eax,%esi
418a71:	0f 8f e2 00 00 00    	jg     0x418b59
418a77:	83 c0 fe             	add    $0xfffffffe,%eax
418a7a:	3b f0                	cmp    %eax,%esi
418a7c:	0f 8d f3 01 00 00    	jge    0x418c75
418a82:	85 f6                	test   %esi,%esi
418a84:	0f 84 01 ce 03 00    	je     0x45588b
418a8a:	83 fe 78             	cmp    $0x78,%esi
418a8d:	0f 84 aa 01 00 00    	je     0x418c3d
418a93:	83 fe 7b             	cmp    $0x7b,%esi
418a96:	0f 84 ef cd 03 00    	je     0x45588b
418a9c:	8b 55 f4             	mov    -0xc(%ebp),%edx
418a9f:	8d 45 c0             	lea    -0x40(%ebp),%eax
418aa2:	50                   	push   %eax
418aa3:	8b 45 08             	mov    0x8(%ebp),%eax
418aa6:	8b cb                	mov    %ebx,%ecx
418aa8:	ff 70 04             	push   0x4(%eax)
418aab:	e8 51 02 00 00       	call   0x418d01
418ab0:	8b d8                	mov    %eax,%ebx
418ab2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
418ab5:	59                   	pop    %ecx
418ab6:	59                   	pop    %ecx
418ab7:	85 db                	test   %ebx,%ebx
418ab9:	0f 84 09 02 00 00    	je     0x418cc8
418abf:	8b 17                	mov    (%edi),%edx
418ac1:	83 fa 1d             	cmp    $0x1d,%edx
418ac4:	0f 84 15 c8 03 00    	je     0x4552df
418aca:	8b 4d c0             	mov    -0x40(%ebp),%ecx