48e8d9:	7e 6f                	jle    0x48e94a
48e8db:	2b fe                	sub    %esi,%edi
48e8dd:	4a                   	dec    %edx
48e8de:	3b 73 7c             	cmp    0x7c(%ebx),%esi
48e8e1:	73 ef                	jae    0x48e8d2
48e8e3:	0f b7 04 37          	movzwl (%edi,%esi,1),%eax
48e8e7:	0f b7 0e             	movzwl (%esi),%ecx
48e8ea:	89 45 08             	mov    %eax,0x8(%ebp)
48e8ed:	3d ff 00 00 00       	cmp    $0xff,%eax
48e8f2:	77 10                	ja     0x48e904
48e8f4:	8b 43 3c             	mov    0x3c(%ebx),%eax
48e8f7:	8b 5d 08             	mov    0x8(%ebp),%ebx
48e8fa:	0f b6 1c 18          	movzbl (%eax,%ebx,1),%ebx
48e8fe:	89 5d 08             	mov    %ebx,0x8(%ebp)
48e901:	8b 5d 0c             	mov    0xc(%ebp),%ebx
48e904:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
48e90a:	77 07                	ja     0x48e913
48e90c:	8b 43 3c             	mov    0x3c(%ebx),%eax
48e90f:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
48e913:	39 4d 08             	cmp    %ecx,0x8(%ebp)
48e916:	0f 85 c4 fe ff ff    	jne    0x48e7e0
48e91c:	83 c6 02             	add    $0x2,%esi
48e91f:	85 d2                	test   %edx,%edx
48e921:	7f ba                	jg     0x48e8dd
48e923:	eb 25                	jmp    0x48e94a
48e925:	85 d2                	test   %edx,%edx
48e927:	7e 21                	jle    0x48e94a
48e929:	8b 5b 7c             	mov    0x7c(%ebx),%ebx
48e92c:	4a                   	dec    %edx
48e92d:	3b f3                	cmp    %ebx,%esi
48e92f:	73 a1                	jae    0x48e8d2
48e931:	66 8b 0f             	mov    (%edi),%cx
48e934:	83 c7 02             	add    $0x2,%edi
48e937:	66 8b 06             	mov    (%esi),%ax
48e93a:	83 c6 02             	add    $0x2,%esi
48e93d:	66 3b c8             	cmp    %ax,%cx
48e940:	0f 85 9a fe ff ff    	jne    0x48e7e0
48e946:	85 d2                	test   %edx,%edx
48e948:	7f e2                	jg     0x48e92c
48e94a:	2b 75 f8             	sub    -0x8(%ebp),%esi
48e94d:	d1 fe                	sar    $1,%esi
48e94f:	8b c6                	mov    %esi,%eax
48e951:	5f                   	pop    %edi
48e952:	5e                   	pop    %esi
48e953:	5b                   	pop    %ebx
48e954:	8b e5                	mov    %ebp,%esp
48e956:	5d                   	pop    %ebp
48e957:	c3                   	ret
48e958:	55                   	push   %ebp
48e959:	8b ec                	mov    %esp,%ebp
48e95b:	51                   	push   %ecx
48e95c:	8b 45 0c             	mov    0xc(%ebp),%eax
48e95f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48e962:	53                   	push   %ebx
48e963:	8b da                	mov    %edx,%ebx
48e965:	56                   	push   %esi
48e966:	57                   	push   %edi
48e967:	85 c0                	test   %eax,%eax
48e969:	78 53                	js     0x48e9be
48e96b:	3b 45 08             	cmp    0x8(%ebp),%eax
48e96e:	7d 4e                	jge    0x48e9be
48e970:	03 c0                	add    %eax,%eax
48e972:	89 45 0c             	mov    %eax,0xc(%ebp)
48e975:	8b 74 83 04          	mov    0x4(%ebx,%eax,4),%esi
48e979:	2b 34 83             	sub    (%ebx,%eax,4),%esi
48e97c:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
48e983:	50                   	push   %eax
48e984:	ff 15 4c 57 4a 00    	call   *0x4a574c
48e98a:	8b f8                	mov    %eax,%edi
48e98c:	59                   	pop    %ecx
48e98d:	85 ff                	test   %edi,%edi
48e98f:	75 04                	jne    0x48e995
48e991:	6a fa                	push   $0xfffffffa
48e993:	eb 2b                	jmp    0x48e9c0
48e995:	8b 4d 0c             	mov    0xc(%ebp),%ecx
48e998:	8d 04 36             	lea    (%esi,%esi,1),%eax
48e99b:	50                   	push   %eax
48e99c:	8b 45 fc             	mov    -0x4(%ebp),%eax
48e99f:	8b 0c 8b             	mov    (%ebx,%ecx,4),%ecx
48e9a2:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
48e9a5:	51                   	push   %ecx
48e9a6:	57                   	push   %edi
48e9a7:	e8 d4 26 f9 ff       	call   0x421080
48e9ac:	8b 4d 10             	mov    0x10(%ebp),%ecx
48e9af:	83 c4 0c             	add    $0xc,%esp
48e9b2:	33 c0                	xor    %eax,%eax
48e9b4:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
48e9b8:	8b c6                	mov    %esi,%eax
48e9ba:	89 39                	mov    %edi,(%ecx)
48e9bc:	eb 03                	jmp    0x48e9c1
48e9be:	6a f9                	push   $0xfffffff9
48e9c0:	58                   	pop    %eax
48e9c1:	5f                   	pop    %edi
48e9c2:	5e                   	pop    %esi
48e9c3:	5b                   	pop    %ebx
48e9c4:	8b e5                	mov    %ebp,%esp
48e9c6:	5d                   	pop    %ebp
48e9c7:	c3                   	ret
48e9c8:	2b ca                	sub    %edx,%ecx
48e9ca:	56                   	push   %esi
48e9cb:	0f b7 04 11          	movzwl (%ecx,%edx,1),%eax
48e9cf:	66 85 c0             	test   %ax,%ax
48e9d2:	75 05                	jne    0x48e9d9
48e9d4:	66 39 02             	cmp    %ax,(%edx)
48e9d7:	74 1b                	je     0x48e9f4
48e9d9:	0f b7 32             	movzwl (%edx),%esi
48e9dc:	83 c2 02             	add    $0x2,%edx
48e9df:	66 3b c6             	cmp    %si,%ax
48e9e2:	74 e7                	je     0x48e9cb
48e9e4:	66 3b f0             	cmp    %ax,%si
48e9e7:	5e                   	pop    %esi
48e9e8:	1b c0                	sbb    %eax,%eax
48e9ea:	f7 d8                	neg    %eax
48e9ec:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
48e9f3:	c3                   	ret
48e9f4:	33 c0                	xor    %eax,%eax
48e9f6:	5e                   	pop    %esi
48e9f7:	c3                   	ret
48e9f8:	55                   	push   %ebp
48e9f9:	8b ec                	mov    %esp,%ebp
48e9fb:	8b 45 08             	mov    0x8(%ebp),%eax
48e9fe:	56                   	push   %esi
48e9ff:	57                   	push   %edi
48ea00:	85 c0                	test   %eax,%eax
48ea02:	74 16                	je     0x48ea1a
48ea04:	2b ca                	sub    %edx,%ecx
48ea06:	0f b7 34 11          	movzwl (%ecx,%edx,1),%esi
48ea0a:	48                   	dec    %eax
48ea0b:	0f b7 3a             	movzwl (%edx),%edi
48ea0e:	8d 52 02             	lea    0x2(%edx),%edx
48ea11:	66 3b fe             	cmp    %si,%di
48ea14:	75 0a                	jne    0x48ea20
48ea16:	85 c0                	test   %eax,%eax
48ea18:	75 ec                	jne    0x48ea06
48ea1a:	33 c0                	xor    %eax,%eax
48ea1c:	5f                   	pop    %edi
48ea1d:	5e                   	pop    %esi
48ea1e:	5d                   	pop    %ebp
48ea1f:	c3                   	ret
48ea20:	1b c0                	sbb    %eax,%eax
48ea22:	f7 d8                	neg    %eax
48ea24:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
48ea2b:	eb ef                	jmp    0x48ea1c
48ea2d:	55                   	push   %ebp
48ea2e:	8b ec                	mov    %esp,%ebp
48ea30:	53                   	push   %ebx
48ea31:	56                   	push   %esi
48ea32:	57                   	push   %edi
48ea33:	6a 02                	push   $0x2
48ea35:	8b f1                	mov    %ecx,%esi
48ea37:	5f                   	pop    %edi
48ea38:	2b f7                	sub    %edi,%esi
48ea3a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
48ea3e:	74 3f                	je     0x48ea7f
48ea40:	66 8b 06             	mov    (%esi),%ax
48ea43:	bb 00 fc 00 00       	mov    $0xfc00,%ebx
48ea48:	66 23 c3             	and    %bx,%ax
48ea4b:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
48ea50:	66 3b c1             	cmp    %cx,%ax
48ea53:	75 02                	jne    0x48ea57
48ea55:	2b f7                	sub    %edi,%esi
48ea57:	0f b7 0e             	movzwl (%esi),%ecx
48ea5a:	8b c1                	mov    %ecx,%eax
48ea5c:	23 c3                	and    %ebx,%eax
48ea5e:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48ea63:	75 1d                	jne    0x48ea82
48ea65:	0f b7 46 02          	movzwl 0x2(%esi),%eax
48ea69:	bb ff 03 00 00       	mov    $0x3ff,%ebx
48ea6e:	23 cb                	and    %ebx,%ecx
48ea70:	23 c3                	and    %ebx,%eax
48ea72:	c1 e1 0a             	shl    $0xa,%ecx
48ea75:	0b c8                	or     %eax,%ecx
48ea77:	81 c1 00 00 01 00    	add    $0x10000,%ecx
48ea7d:	eb 03                	jmp    0x48ea82
48ea7f:	0f b7 0e             	movzwl (%esi),%ecx
48ea82:	3b d7                	cmp    %edi,%edx
48ea84:	75 18                	jne    0x48ea9e
48ea86:	83 f9 0a             	cmp    $0xa,%ecx
48ea89:	74 3d                	je     0x48eac8
48ea8b:	83 f9 0d             	cmp    $0xd,%ecx
48ea8e:	74 04                	je     0x48ea94
48ea90:	33 c0                	xor    %eax,%eax
48ea92:	eb 4d                	jmp    0x48eae1
48ea94:	8b 4d 0c             	mov    0xc(%ebp),%ecx
48ea97:	33 d2                	xor    %edx,%edx
48ea99:	42                   	inc    %edx
48ea9a:	89 11                	mov    %edx,(%ecx)
48ea9c:	eb 26                	jmp    0x48eac4
48ea9e:	83 f9 0a             	cmp    $0xa,%ecx
48eaa1:	74 25                	je     0x48eac8
48eaa3:	76 eb                	jbe    0x48ea90
48eaa5:	33 d2                	xor    %edx,%edx
48eaa7:	42                   	inc    %edx
48eaa8:	83 f9 0d             	cmp    $0xd,%ecx
48eaab:	76 12                	jbe    0x48eabf
48eaad:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
48eab3:	74 0a                	je     0x48eabf
48eab5:	8d 81 d8 df ff ff    	lea    -0x2028(%ecx),%eax
48eabb:	3b c2                	cmp    %edx,%eax
48eabd:	77 d1                	ja     0x48ea90
48eabf:	8b 45 0c             	mov    0xc(%ebp),%eax
48eac2:	89 10                	mov    %edx,(%eax)
48eac4:	8b c2                	mov    %edx,%eax
48eac6:	eb 19                	jmp    0x48eae1
48eac8:	33 d2                	xor    %edx,%edx
48eaca:	3b 75 08             	cmp    0x8(%ebp),%esi
48eacd:	76 07                	jbe    0x48ead6
48eacf:	66 83 7e fe 0d       	cmpw   $0xd,-0x2(%esi)
48ead4:	74 03                	je     0x48ead9
48ead6:	8d 7a 01             	lea    0x1(%edx),%edi
48ead9:	8b 45 0c             	mov    0xc(%ebp),%eax
48eadc:	89 38                	mov    %edi,(%eax)
48eade:	8d 42 01             	lea    0x1(%edx),%eax
48eae1:	5f                   	pop    %edi
48eae2:	5e                   	pop    %esi
48eae3:	5b                   	pop    %ebx
48eae4:	5d                   	pop    %ebp
48eae5:	c3                   	ret
48eae6:	55                   	push   %ebp
48eae7:	8b ec                	mov    %esp,%ebp
48eae9:	83 ec 0c             	sub    $0xc,%esp
48eaec:	53                   	push   %ebx
48eaed:	8b da                	mov    %edx,%ebx
48eaef:	33 d2                	xor    %edx,%edx
48eaf1:	56                   	push   %esi
48eaf2:	42                   	inc    %edx
48eaf3:	57                   	push   %edi
48eaf4:	0f b7 03             	movzwl (%ebx),%eax
48eaf7:	8b f9                	mov    %ecx,%edi
48eaf9:	0f b6 f0             	movzbl %al,%esi
48eafc:	23 f2                	and    %edx,%esi
48eafe:	89 45 fc             	mov    %eax,-0x4(%ebp)
48eb01:	81 ff 00 01 00 00    	cmp    $0x100,%edi
48eb07:	73 46                	jae    0x48eb4f
48eb09:	a8 04                	test   $0x4,%al
48eb0b:	75 1f                	jne    0x48eb2c
48eb0d:	a8 02                	test   $0x2,%al
48eb0f:	0f 84 7d 03 00 00    	je     0x48ee92
48eb15:	83 e1 07             	and    $0x7,%ecx
48eb18:	c1 ef 03             	shr    $0x3,%edi
48eb1b:	d2 e2                	shl    %cl,%dl
48eb1d:	6a 00                	push   $0x0
48eb1f:	58                   	pop    %eax
48eb20:	84 54 1f 02          	test   %dl,0x2(%edi,%ebx,1)
48eb24:	0f 95 c0             	setne  %al
48eb27:	e9 68 03 00 00       	jmp    0x48ee94
48eb2c:	a8 02                	test   $0x2,%al
48eb2e:	74 1f                	je     0x48eb4f
48eb30:	8b c7                	mov    %edi,%eax
48eb32:	83 e1 07             	and    $0x7,%ecx
48eb35:	c1 e8 03             	shr    $0x3,%eax
48eb38:	d3 e2                	shl    %cl,%edx
48eb3a:	84 54 18 02          	test   %dl,0x2(%eax,%ebx,1)
48eb3e:	74 0c                	je     0x48eb4c
48eb40:	33 c0                	xor    %eax,%eax
48eb42:	85 f6                	test   %esi,%esi
48eb44:	0f 94 c0             	sete   %al
48eb47:	e9 48 03 00 00       	jmp    0x48ee94
48eb4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
48eb4f:	6a 02                	push   $0x2
48eb51:	59                   	pop    %ecx
48eb52:	03 d9                	add    %ecx,%ebx
48eb54:	22 c1                	and    %cl,%al
48eb56:	74 03                	je     0x48eb5b
48eb58:	83 c3 20             	add    $0x20,%ebx
48eb5b:	0f b7 0b             	movzwl (%ebx),%ecx
48eb5e:	66 85 c9             	test   %cx,%cx
48eb61:	0f 84 2b 03 00 00    	je     0x48ee92
48eb67:	8b c7                	mov    %edi,%eax
48eb69:	c7 45 fc 80 00 00 00 	movl   $0x80,-0x4(%ebp)
48eb70:	99                   	cltd
48eb71:	f7 7d fc             	idivl  -0x4(%ebp)
48eb74:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
48eb7b:	89 55 fc             	mov    %edx,-0x4(%ebp)
48eb7e:	89 45 f8             	mov    %eax,-0x8(%ebp)
48eb81:	33 c0                	xor    %eax,%eax
48eb83:	83 c3 02             	add    $0x2,%ebx
48eb86:	40                   	inc    %eax
48eb87:	6a 02                	push   $0x2
48eb89:	66 3b c8             	cmp    %ax,%cx
48eb8c:	58                   	pop    %eax
48eb8d:	75 44                	jne    0x48ebd3
48eb8f:	0f b7 0b             	movzwl (%ebx),%ecx
48eb92:	03 d8                	add    %eax,%ebx
48eb94:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
48eb98:	74 2c                	je     0x48ebc6
48eb9a:	8b c1                	mov    %ecx,%eax
48eb9c:	25 00 fc 00 00       	and    $0xfc00,%eax
48eba1:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48eba6:	75 1e                	jne    0x48ebc6
48eba8:	0f b7 03             	movzwl (%ebx),%eax
48ebab:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
48ebb1:	25 ff 03 00 00       	and    $0x3ff,%eax
48ebb6:	c1 e1 0a             	shl    $0xa,%ecx
48ebb9:	0b c8                	or     %eax,%ecx
48ebbb:	6a 02                	push   $0x2
48ebbd:	58                   	pop    %eax
48ebbe:	81 c1 00 00 01 00    	add    $0x10000,%ecx
48ebc4:	03 d8                	add    %eax,%ebx
48ebc6:	3b f9                	cmp    %ecx,%edi
48ebc8:	0f 84 72 ff ff ff    	je     0x48eb40
48ebce:	e9 b3 02 00 00       	jmp    0x48ee86
48ebd3:	66 3b c8             	cmp    %ax,%cx
48ebd6:	0f 85 83 00 00 00    	jne    0x48ec5f
48ebdc:	0f b7 0b             	movzwl (%ebx),%ecx
48ebdf:	03 d8                	add    %eax,%ebx
48ebe1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
48ebe5:	74 5e                	je     0x48ec45
48ebe7:	8b c1                	mov    %ecx,%eax
48ebe9:	25 00 fc 00 00       	and    $0xfc00,%eax
48ebee:	6a 02                	push   $0x2
48ebf0:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48ebf5:	75 1c                	jne    0x48ec13
48ebf7:	0f b7 03             	movzwl (%ebx),%eax
48ebfa:	ba ff 03 00 00       	mov    $0x3ff,%edx
48ebff:	23 ca                	and    %edx,%ecx
48ec01:	23 c2                	and    %edx,%eax
48ec03:	c1 e1 0a             	shl    $0xa,%ecx
48ec06:	0b c8                	or     %eax,%ecx
48ec08:	58                   	pop    %eax
48ec09:	81 c1 00 00 01 00    	add    $0x10000,%ecx
48ec0f:	03 d8                	add    %eax,%ebx
48ec11:	eb 01                	jmp    0x48ec14
48ec13:	58                   	pop    %eax
48ec14:	0f b7 13             	movzwl (%ebx),%edx
48ec17:	03 d8                	add    %eax,%ebx
48ec19:	8b c2                	mov    %edx,%eax
48ec1b:	25 00 fc 00 00       	and    $0xfc00,%eax
48ec20:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48ec25:	75 23                	jne    0x48ec4a
48ec27:	0f b7 03             	movzwl (%ebx),%eax
48ec2a:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
48ec30:	25 ff 03 00 00       	and    $0x3ff,%eax
48ec35:	c1 e2 0a             	shl    $0xa,%edx
48ec38:	0b d0                	or     %eax,%edx
48ec3a:	6a 02                	push   $0x2
48ec3c:	81 c2 00 00 01 00    	add    $0x10000,%edx
48ec42:	58                   	pop    %eax
48ec43:	eb 03                	jmp    0x48ec48
48ec45:	0f b7 13             	movzwl (%ebx),%edx
48ec48:	03 d8                	add    %eax,%ebx
48ec4a:	3b f9                	cmp    %ecx,%edi
48ec4c:	0f 82 31 02 00 00    	jb     0x48ee83
48ec52:	3b fa                	cmp    %edx,%edi
48ec54:	0f 86 e6 fe ff ff    	jbe    0x48eb40
48ec5a:	e9 24 02 00 00       	jmp    0x48ee83
48ec5f:	8b 45 f8             	mov    -0x8(%ebp),%eax
48ec62:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
48ec69:	c1 e0 07             	shl    $0x7,%eax
48ec6c:	03 c2                	add    %edx,%eax