47f877:	bf 70 4e 4b 00       	mov    $0x4b4e70,%edi
47f87c:	89 45 84             	mov    %eax,-0x7c(%ebp)
47f87f:	83 ef 02             	sub    $0x2,%edi
47f882:	e9 f9 82 f8 ff       	jmp    0x407b80
47f887:	8d 55 80             	lea    -0x80(%ebp),%edx
47f88a:	8b cf                	mov    %edi,%ecx
47f88c:	e8 4b 11 ff ff       	call   0x4709dc
47f891:	85 c0                	test   %eax,%eax
47f893:	0f 84 db 84 f8 ff    	je     0x407d74
47f899:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47f89c:	33 c0                	xor    %eax,%eax
47f89e:	66 83 7f 02 3a       	cmpw   $0x3a,0x2(%edi)
47f8a3:	0f 95 c0             	setne  %al
47f8a6:	48                   	dec    %eax
47f8a7:	83 e0 ee             	and    $0xffffffee,%eax
47f8aa:	83 c0 1f             	add    $0x1f,%eax
47f8ad:	89 01                	mov    %eax,(%ecx)
47f8af:	8b 45 08             	mov    0x8(%ebp),%eax
47f8b2:	89 38                	mov    %edi,(%eax)
47f8b4:	33 c0                	xor    %eax,%eax
47f8b6:	e9 77 81 f8 ff       	jmp    0x407a32
47f8bb:	8b 4d 28             	mov    0x28(%ebp),%ecx
47f8be:	f7 41 60 00 00 00 02 	testl  $0x2000000,0x60(%ecx)
47f8c5:	0f 84 dd 84 f8 ff    	je     0x407da8
47f8cb:	8b 55 f8             	mov    -0x8(%ebp),%edx
47f8ce:	f7 d8                	neg    %eax
47f8d0:	1b c0                	sbb    %eax,%eax
47f8d2:	25 70 ff ff ff       	and    $0xffffff70,%eax
47f8d7:	05 9d 00 00 00       	add    $0x9d,%eax
47f8dc:	66 89 02             	mov    %ax,(%edx)
47f8df:	8b 45 d0             	mov    -0x30(%ebp),%eax
47f8e2:	83 c2 02             	add    $0x2,%edx
47f8e5:	89 55 f8             	mov    %edx,-0x8(%ebp)
47f8e8:	83 f8 fe             	cmp    $0xfffffffe,%eax
47f8eb:	75 06                	jne    0x47f8f3
47f8ed:	83 c8 ff             	or     $0xffffffff,%eax
47f8f0:	89 45 d0             	mov    %eax,-0x30(%ebp)
47f8f3:	8b 4d 90             	mov    -0x70(%ebp),%ecx
47f8f6:	8b 7d fc             	mov    -0x4(%ebp),%edi
47f8f9:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
47f8ff:	89 45 8c             	mov    %eax,-0x74(%ebp)
47f902:	e9 79 82 f8 ff       	jmp    0x407b80
47f907:	0f b7 1f             	movzwl (%edi),%ebx
47f90a:	8b c3                	mov    %ebx,%eax
47f90c:	25 00 fc 00 00       	and    $0xfc00,%eax
47f911:	3d 00 d8 00 00       	cmp    $0xd800,%eax
47f916:	0f 85 df 84 f8 ff    	jne    0x407dfb
47f91c:	0f b7 47 02          	movzwl 0x2(%edi),%eax
47f920:	83 c7 02             	add    $0x2,%edi
47f923:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
47f929:	c1 e3 0a             	shl    $0xa,%ebx
47f92c:	25 ff 03 00 00       	and    $0x3ff,%eax
47f931:	0b d8                	or     %eax,%ebx
47f933:	81 c3 00 00 01 00    	add    $0x10000,%ebx
47f939:	89 7d fc             	mov    %edi,-0x4(%ebp)
47f93c:	e9 ba 84 f8 ff       	jmp    0x407dfb
47f941:	2b f2                	sub    %edx,%esi
47f943:	d1 fe                	sar    $1,%esi
47f945:	01 31                	add    %esi,(%ecx)
47f947:	8b f2                	mov    %edx,%esi
47f949:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
47f950:	89 75 e8             	mov    %esi,-0x18(%ebp)
47f953:	89 75 a4             	mov    %esi,-0x5c(%ebp)
47f956:	e9 af 84 f8 ff       	jmp    0x407e0a
47f95b:	83 fb 5c             	cmp    $0x5c,%ebx
47f95e:	0f 85 c2 84 f8 ff    	jne    0x407e26
47f964:	66 83 7f 02 45       	cmpw   $0x45,0x2(%edi)
47f969:	0f 85 b7 84 f8 ff    	jne    0x407e26
47f96f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47f972:	83 c7 02             	add    $0x2,%edi
47f975:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
47f97c:	33 c0                	xor    %eax,%eax
47f97e:	e9 19 85 f8 ff       	jmp    0x407e9c
47f983:	0f b7 77 02          	movzwl 0x2(%edi),%esi
47f987:	83 fe 3a             	cmp    $0x3a,%esi
47f98a:	74 0e                	je     0x47f99a
47f98c:	83 fe 2e             	cmp    $0x2e,%esi
47f98f:	74 09                	je     0x47f99a
47f991:	83 fe 3d             	cmp    $0x3d,%esi
47f994:	0f 85 8c 84 f8 ff    	jne    0x407e26
47f99a:	8d 55 80             	lea    -0x80(%ebp),%edx
47f99d:	8b cf                	mov    %edi,%ecx
47f99f:	e8 38 10 ff ff       	call   0x4709dc
47f9a4:	85 c0                	test   %eax,%eax
47f9a6:	0f 84 7a 84 f8 ff    	je     0x407e26
47f9ac:	33 c0                	xor    %eax,%eax
47f9ae:	89 45 98             	mov    %eax,-0x68(%ebp)
47f9b1:	8b 45 28             	mov    0x28(%ebp),%eax
47f9b4:	8b 58 08             	mov    0x8(%eax),%ebx
47f9b7:	83 fe 3a             	cmp    $0x3a,%esi
47f9ba:	0f 85 7e 26 00 00    	jne    0x48203e
47f9c0:	83 c7 04             	add    $0x4,%edi
47f9c3:	89 7d fc             	mov    %edi,-0x4(%ebp)
47f9c6:	66 83 3f 5e          	cmpw   $0x5e,(%edi)
47f9ca:	75 13                	jne    0x47f9df
47f9cc:	be 01 00 00 00       	mov    $0x1,%esi
47f9d1:	83 c7 02             	add    $0x2,%edi
47f9d4:	89 75 98             	mov    %esi,-0x68(%ebp)
47f9d7:	89 75 e4             	mov    %esi,-0x1c(%ebp)
47f9da:	89 7d fc             	mov    %edi,-0x4(%ebp)
47f9dd:	eb 03                	jmp    0x47f9e2
47f9df:	8b 75 98             	mov    -0x68(%ebp),%esi
47f9e2:	8b 55 80             	mov    -0x80(%ebp),%edx
47f9e5:	2b d7                	sub    %edi,%edx
47f9e7:	d1 fa                	sar    $1,%edx
47f9e9:	8b cf                	mov    %edi,%ecx
47f9eb:	e8 a1 0f ff ff       	call   0x470991
47f9f0:	8b c8                	mov    %eax,%ecx
47f9f2:	85 c9                	test   %ecx,%ecx
47f9f4:	0f 88 2f 26 00 00    	js     0x482029
47f9fa:	8b 55 f4             	mov    -0xc(%ebp),%edx
47f9fd:	f6 c2 01             	test   $0x1,%dl
47fa00:	74 0b                	je     0x47fa0d
47fa02:	33 c0                	xor    %eax,%eax
47fa04:	83 f9 02             	cmp    $0x2,%ecx
47fa07:	0f 9e c0             	setle  %al
47fa0a:	48                   	dec    %eax
47fa0b:	23 c8                	and    %eax,%ecx
47fa0d:	f7 c2 00 00 00 20    	test   $0x20000000,%edx
47fa13:	74 7a                	je     0x47fa8f
47fa15:	8b c6                	mov    %esi,%eax
47fa17:	f7 d8                	neg    %eax
47fa19:	1b c0                	sbb    %eax,%eax
47fa1b:	83 e0 0e             	and    $0xe,%eax
47fa1e:	03 c1                	add    %ecx,%eax
47fa20:	8b 3c 85 88 ff 4b 00 	mov    0x4bff88(,%eax,4),%edi
47fa27:	85 ff                	test   %edi,%edi
47fa29:	74 17                	je     0x47fa42
47fa2b:	8b 45 80             	mov    -0x80(%ebp),%eax
47fa2e:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fa31:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fa34:	83 c0 02             	add    $0x2,%eax
47fa37:	89 45 84             	mov    %eax,-0x7c(%ebp)
47fa3a:	83 c7 fe             	add    $0xfffffffe,%edi
47fa3d:	e9 54 84 f8 ff       	jmp    0x407e96
47fa42:	8b c1                	mov    %ecx,%eax
47fa44:	83 e8 08             	sub    $0x8,%eax
47fa47:	74 12                	je     0x47fa5b
47fa49:	48                   	dec    %eax
47fa4a:	74 08                	je     0x47fa54
47fa4c:	48                   	dec    %eax
47fa4d:	75 40                	jne    0x47fa8f
47fa4f:	8d 48 0d             	lea    0xd(%eax),%ecx
47fa52:	eb 0c                	jmp    0x47fa60
47fa54:	b9 0c 00 00 00       	mov    $0xc,%ecx
47fa59:	eb 05                	jmp    0x47fa60
47fa5b:	b9 0b 00 00 00       	mov    $0xb,%ecx
47fa60:	8b 7d 80             	mov    -0x80(%ebp),%edi
47fa63:	33 c0                	xor    %eax,%eax
47fa65:	85 f6                	test   %esi,%esi
47fa67:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fa6a:	0f 95 c0             	setne  %al
47fa6d:	83 c6 06             	add    $0x6,%esi
47fa70:	89 75 a4             	mov    %esi,-0x5c(%ebp)
47fa73:	83 c0 03             	add    $0x3,%eax
47fa76:	66 89 46 fa          	mov    %ax,-0x6(%esi)
47fa7a:	66 89 4e fc          	mov    %cx,-0x4(%esi)
47fa7e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fa81:	33 c0                	xor    %eax,%eax
47fa83:	66 89 46 fe          	mov    %ax,-0x2(%esi)
47fa87:	83 c7 02             	add    $0x2,%edi
47fa8a:	e9 04 84 f8 ff       	jmp    0x407e93
47fa8f:	8d 34 49             	lea    (%ecx,%ecx,2),%esi
47fa92:	6a 20                	push   $0x20
47fa94:	8b 04 b5 28 60 4b 00 	mov    0x4b6028(,%esi,4),%eax
47fa9b:	03 c3                	add    %ebx,%eax
47fa9d:	50                   	push   %eax
47fa9e:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
47faa4:	50                   	push   %eax
47faa5:	e8 d6 f3 f9 ff       	call   0x41ee80
47faaa:	8b 04 b5 2c 60 4b 00 	mov    0x4b602c(,%esi,4),%eax
47fab1:	8b 0c b5 30 60 4b 00 	mov    0x4b6030(,%esi,4),%ecx
47fab8:	83 c4 0c             	add    $0xc,%esp
47fabb:	85 c0                	test   %eax,%eax
47fabd:	78 2d                	js     0x47faec
47fabf:	33 d2                	xor    %edx,%edx
47fac1:	8d 34 18             	lea    (%eax,%ebx,1),%esi
47fac4:	85 c9                	test   %ecx,%ecx
47fac6:	78 12                	js     0x47fada
47fac8:	8a 04 16             	mov    (%esi,%edx,1),%al
47facb:	08 84 15 c8 fe ff ff 	or     %al,-0x138(%ebp,%edx,1)
47fad2:	42                   	inc    %edx
47fad3:	83 fa 20             	cmp    $0x20,%edx
47fad6:	72 f0                	jb     0x47fac8
47fad8:	eb 12                	jmp    0x47faec
47fada:	8a 04 16             	mov    (%esi,%edx,1),%al
47fadd:	f6 d0                	not    %al
47fadf:	20 84 15 c8 fe ff ff 	and    %al,-0x138(%ebp,%edx,1)
47fae6:	42                   	inc    %edx
47fae7:	83 fa 20             	cmp    $0x20,%edx
47faea:	72 ee                	jb     0x47fada
47faec:	85 c9                	test   %ecx,%ecx
47faee:	79 02                	jns    0x47faf2
47faf0:	f7 d9                	neg    %ecx
47faf2:	83 f9 01             	cmp    $0x1,%ecx
47faf5:	75 09                	jne    0x47fb00
47faf7:	80 a5 c9 fe ff ff c3 	andb   $0xc3,-0x137(%ebp)
47fafe:	eb 0c                	jmp    0x47fb0c
47fb00:	83 f9 02             	cmp    $0x2,%ecx
47fb03:	75 07                	jne    0x47fb0c
47fb05:	80 a5 d3 fe ff ff 7f 	andb   $0x7f,-0x12d(%ebp)
47fb0c:	8b 45 98             	mov    -0x68(%ebp),%eax
47fb0f:	33 c9                	xor    %ecx,%ecx
47fb11:	85 c0                	test   %eax,%eax
47fb13:	74 18                	je     0x47fb2d
47fb15:	8a 84 0d c8 fe ff ff 	mov    -0x138(%ebp,%ecx,1),%al
47fb1c:	f6 d0                	not    %al
47fb1e:	08 84 0d 28 ff ff ff 	or     %al,-0xd8(%ebp,%ecx,1)
47fb25:	41                   	inc    %ecx
47fb26:	83 f9 20             	cmp    $0x20,%ecx
47fb29:	72 ea                	jb     0x47fb15
47fb2b:	eb 14                	jmp    0x47fb41
47fb2d:	8a 84 0d c8 fe ff ff 	mov    -0x138(%ebp,%ecx,1),%al
47fb34:	08 84 0d 28 ff ff ff 	or     %al,-0xd8(%ebp,%ecx,1)
47fb3b:	41                   	inc    %ecx
47fb3c:	83 f9 20             	cmp    $0x20,%ecx
47fb3f:	72 ec                	jb     0x47fb2d
47fb41:	8b 7d 80             	mov    -0x80(%ebp),%edi
47fb44:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fb47:	b9 01 00 00 00       	mov    $0x1,%ecx
47fb4c:	83 c7 02             	add    $0x2,%edi
47fb4f:	89 4d d8             	mov    %ecx,-0x28(%ebp)
47fb52:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
47fb59:	e9 38 83 f8 ff       	jmp    0x407e96
47fb5e:	83 fe 05             	cmp    $0x5,%esi
47fb61:	75 08                	jne    0x47fb6b
47fb63:	8d 5e 03             	lea    0x3(%esi),%ebx
47fb66:	e9 c7 8b f8 ff       	jmp    0x408732
47fb6b:	83 fe 0c             	cmp    $0xc,%esi
47fb6e:	0f 84 f4 24 00 00    	je     0x482068
47fb74:	83 fe 1a             	cmp    $0x1a,%esi
47fb77:	75 32                	jne    0x47fbab
47fb79:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fb7c:	66 83 7f 02 5c       	cmpw   $0x5c,0x2(%edi)
47fb81:	75 15                	jne    0x47fb98
47fb83:	66 83 7f 04 45       	cmpw   $0x45,0x4(%edi)
47fb88:	75 0e                	jne    0x47fb98
47fb8a:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fb8d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fb90:	83 c7 04             	add    $0x4,%edi
47fb93:	e9 fe 82 f8 ff       	jmp    0x407e96
47fb98:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fb9b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fb9e:	b8 01 00 00 00       	mov    $0x1,%eax
47fba3:	89 45 cc             	mov    %eax,-0x34(%ebp)
47fba6:	e9 ee 82 f8 ff       	jmp    0x407e99
47fbab:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fbae:	83 fe 19             	cmp    $0x19,%esi
47fbb1:	0f 84 4b 02 00 00    	je     0x47fe02
47fbb7:	83 45 f0 02          	addl   $0x2,-0x10(%ebp)
47fbbb:	8b 57 08             	mov    0x8(%edi),%edx
47fbbe:	41                   	inc    %ecx
47fbbf:	8d 46 fa             	lea    -0x6(%esi),%eax
47fbc2:	89 4d d8             	mov    %ecx,-0x28(%ebp)
47fbc5:	83 f8 1c             	cmp    $0x1c,%eax
47fbc8:	0f 87 13 02 00 00    	ja     0x47fde1
47fbce:	0f b6 80 63 23 48 00 	movzbl 0x482363(%eax),%eax
47fbd5:	ff 24 85 2f 23 48 00 	jmp    *0x48232f(,%eax,4)
47fbdc:	8b 3c b5 fc fe 4b 00 	mov    0x4bfefc(,%esi,4),%edi
47fbe3:	8b 45 fc             	mov    -0x4(%ebp),%eax
47fbe6:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fbe9:	83 ef 02             	sub    $0x2,%edi
47fbec:	49                   	dec    %ecx
47fbed:	89 45 84             	mov    %eax,-0x7c(%ebp)
47fbf0:	89 4d d8             	mov    %ecx,-0x28(%ebp)
47fbf3:	e9 9e 82 f8 ff       	jmp    0x407e96
47fbf8:	33 c9                	xor    %ecx,%ecx
47fbfa:	8a 44 0a 40          	mov    0x40(%edx,%ecx,1),%al
47fbfe:	08 84 0d 28 ff ff ff 	or     %al,-0xd8(%ebp,%ecx,1)
47fc05:	41                   	inc    %ecx
47fc06:	83 f9 20             	cmp    $0x20,%ecx
47fc09:	72 ef                	jb     0x47fbfa
47fc0b:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fc0e:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fc11:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fc14:	e9 7d 82 f8 ff       	jmp    0x407e96
47fc19:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
47fc20:	33 c9                	xor    %ecx,%ecx
47fc22:	8a 44 0a 40          	mov    0x40(%edx,%ecx,1),%al
47fc26:	f6 d0                	not    %al
47fc28:	08 84 0d 28 ff ff ff 	or     %al,-0xd8(%ebp,%ecx,1)
47fc2f:	41                   	inc    %ecx
47fc30:	83 f9 20             	cmp    $0x20,%ecx
47fc33:	72 ed                	jb     0x47fc22
47fc35:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fc38:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fc3b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fc3e:	e9 53 82 f8 ff       	jmp    0x407e96
47fc43:	33 c9                	xor    %ecx,%ecx
47fc45:	8a 84 0a a0 00 00 00 	mov    0xa0(%edx,%ecx,1),%al
47fc4c:	08 84 0d 28 ff ff ff 	or     %al,-0xd8(%ebp,%ecx,1)
47fc53:	41                   	inc    %ecx
47fc54:	83 f9 20             	cmp    $0x20,%ecx
47fc57:	72 ec                	jb     0x47fc45
47fc59:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fc5c:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fc5f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fc62:	e9 2f 82 f8 ff       	jmp    0x407e96
47fc67:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
47fc6e:	33 c9                	xor    %ecx,%ecx
47fc70:	8a 84 0a a0 00 00 00 	mov    0xa0(%edx,%ecx,1),%al
47fc77:	f6 d0                	not    %al
47fc79:	08 84 0d 28 ff ff ff 	or     %al,-0xd8(%ebp,%ecx,1)
47fc80:	41                   	inc    %ecx
47fc81:	83 f9 20             	cmp    $0x20,%ecx
47fc84:	72 ea                	jb     0x47fc70
47fc86:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fc89:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fc8c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fc8f:	e9 02 82 f8 ff       	jmp    0x407e96
47fc94:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
47fc9a:	33 f6                	xor    %esi,%esi
47fc9c:	2b d0                	sub    %eax,%edx
47fc9e:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
47fca4:	03 ce                	add    %esi,%ecx
47fca6:	46                   	inc    %esi
47fca7:	8a 04 11             	mov    (%ecx,%edx,1),%al
47fcaa:	08 01                	or     %al,(%ecx)
47fcac:	83 fe 20             	cmp    $0x20,%esi
47fcaf:	72 ed                	jb     0x47fc9e
47fcb1:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fcb4:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fcb7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fcba:	e9 d7 81 f8 ff       	jmp    0x407e96
47fcbf:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
47fcc5:	33 f6                	xor    %esi,%esi
47fcc7:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
47fcce:	2b d0                	sub    %eax,%edx
47fcd0:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
47fcd6:	03 ce                	add    %esi,%ecx
47fcd8:	46                   	inc    %esi
47fcd9:	8a 04 11             	mov    (%ecx,%edx,1),%al
47fcdc:	f6 d0                	not    %al
47fcde:	08 01                	or     %al,(%ecx)
47fce0:	83 fe 20             	cmp    $0x20,%esi
47fce3:	72 eb                	jb     0x47fcd0
47fce5:	8b 7d fc             	mov    -0x4(%ebp),%edi
47fce8:	8b 75 e8             	mov    -0x18(%ebp),%esi
47fceb:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47fcee:	e9 a3 81 f8 ff       	jmp    0x407e96
47fcf3:	6a ff                	push   $0xffffffff
47fcf5:	68 10 66 4b 00       	push   $0x4b6610
47fcfa:	eb 07                	jmp    0x47fd03
47fcfc:	6a ff                	push   $0xffffffff
47fcfe:	68 5c 61 4b 00       	push   $0x4b615c
47fd03:	57                   	push   %edi
47fd04:	53                   	push   %ebx
47fd05:	8d 55 a4             	lea    -0x5c(%ebp),%edx
47fd08:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
47fd0e:	e8 3b 09 ff ff       	call   0x47064e