48e6fc:	03 d1                	add    %ecx,%edx
48e6fe:	81 fa ff ff 00 00    	cmp    $0xffff,%edx
48e704:	7f 28                	jg     0x48e72e
48e706:	0f b7 06             	movzwl (%esi),%eax
48e709:	6a 30                	push   $0x30
48e70b:	59                   	pop    %ecx
48e70c:	66 3b c1             	cmp    %cx,%ax
48e70f:	73 d9                	jae    0x48e6ea
48e711:	6a 7d                	push   $0x7d
48e713:	58                   	pop    %eax
48e714:	89 45 fc             	mov    %eax,-0x4(%ebp)
48e717:	66 39 06             	cmp    %ax,(%esi)
48e71a:	75 1d                	jne    0x48e739
48e71c:	8b fa                	mov    %edx,%edi
48e71e:	8b 45 08             	mov    0x8(%ebp),%eax
48e721:	89 13                	mov    %edx,(%ebx)
48e723:	89 38                	mov    %edi,(%eax)
48e725:	5f                   	pop    %edi
48e726:	8b c6                	mov    %esi,%eax
48e728:	5e                   	pop    %esi
48e729:	5b                   	pop    %ebx
48e72a:	8b e5                	mov    %ebp,%esp
48e72c:	5d                   	pop    %ebp
48e72d:	c3                   	ret
48e72e:	8b 45 0c             	mov    0xc(%ebp),%eax
48e731:	c7 00 05 00 00 00    	movl   $0x5,(%eax)
48e737:	eb ec                	jmp    0x48e725
48e739:	83 c6 02             	add    $0x2,%esi
48e73c:	0f b7 06             	movzwl (%esi),%eax
48e73f:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
48e743:	74 d9                	je     0x48e71e
48e745:	33 ff                	xor    %edi,%edi
48e747:	eb 24                	jmp    0x48e76d
48e749:	6a 39                	push   $0x39
48e74b:	59                   	pop    %ecx
48e74c:	66 3b c1             	cmp    %cx,%ax
48e74f:	77 21                	ja     0x48e772
48e751:	6b cf 0a             	imul   $0xa,%edi,%ecx
48e754:	83 c6 02             	add    $0x2,%esi
48e757:	0f b7 f8             	movzwl %ax,%edi
48e75a:	83 c7 d0             	add    $0xffffffd0,%edi
48e75d:	03 f9                	add    %ecx,%edi
48e75f:	81 ff ff ff 00 00    	cmp    $0xffff,%edi
48e765:	7f c7                	jg     0x48e72e
48e767:	0f b7 06             	movzwl (%esi),%eax
48e76a:	6a 30                	push   $0x30
48e76c:	59                   	pop    %ecx
48e76d:	66 3b c1             	cmp    %cx,%ax
48e770:	73 d7                	jae    0x48e749
48e772:	3b fa                	cmp    %edx,%edi
48e774:	7d a8                	jge    0x48e71e
48e776:	8b 45 0c             	mov    0xc(%ebp),%eax
48e779:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
48e77f:	eb a4                	jmp    0x48e725
48e781:	55                   	push   %ebp
48e782:	8b ec                	mov    %esp,%ebp
48e784:	8b 45 0c             	mov    0xc(%ebp),%eax
48e787:	56                   	push   %esi
48e788:	33 f6                	xor    %esi,%esi
48e78a:	8b 40 08             	mov    0x8(%eax),%eax
48e78d:	03 d0                	add    %eax,%edx
48e78f:	8a 04 32             	mov    (%edx,%esi,1),%al
48e792:	f6 d0                	not    %al
48e794:	08 04 0e             	or     %al,(%esi,%ecx,1)
48e797:	46                   	inc    %esi
48e798:	83 fe 20             	cmp    $0x20,%esi
48e79b:	72 f2                	jb     0x48e78f
48e79d:	5e                   	pop    %esi
48e79e:	5d                   	pop    %ebp
48e79f:	c3                   	ret
48e7a0:	55                   	push   %ebp
48e7a1:	8b ec                	mov    %esp,%ebp
48e7a3:	8b 45 0c             	mov    0xc(%ebp),%eax
48e7a6:	56                   	push   %esi
48e7a7:	33 f6                	xor    %esi,%esi
48e7a9:	8b 40 08             	mov    0x8(%eax),%eax
48e7ac:	03 d0                	add    %eax,%edx
48e7ae:	8a 04 32             	mov    (%edx,%esi,1),%al
48e7b1:	08 04 0e             	or     %al,(%esi,%ecx,1)
48e7b4:	46                   	inc    %esi
48e7b5:	83 fe 20             	cmp    $0x20,%esi
48e7b8:	72 f4                	jb     0x48e7ae
48e7ba:	5e                   	pop    %esi
48e7bb:	5d                   	pop    %ebp
48e7bc:	c3                   	ret
48e7bd:	55                   	push   %ebp
48e7be:	8b ec                	mov    %esp,%ebp
48e7c0:	51                   	push   %ecx
48e7c1:	51                   	push   %ecx
48e7c2:	53                   	push   %ebx
48e7c3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
48e7c6:	56                   	push   %esi
48e7c7:	8b f2                	mov    %edx,%esi
48e7c9:	8b 55 08             	mov    0x8(%ebp),%edx
48e7cc:	89 75 f8             	mov    %esi,-0x8(%ebp)
48e7cf:	8b 43 0c             	mov    0xc(%ebx),%eax
48e7d2:	57                   	push   %edi
48e7d3:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
48e7d6:	8b 43 78             	mov    0x78(%ebx),%eax
48e7d9:	8d 3c 48             	lea    (%eax,%ecx,2),%edi
48e7dc:	85 d2                	test   %edx,%edx
48e7de:	79 08                	jns    0x48e7e8
48e7e0:	83 c8 ff             	or     $0xffffffff,%eax
48e7e3:	e9 69 01 00 00       	jmp    0x48e951
48e7e8:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
48e7ec:	0f 84 33 01 00 00    	je     0x48e925
48e7f2:	83 7b 50 00          	cmpl   $0x0,0x50(%ebx)
48e7f6:	0f 84 db 00 00 00    	je     0x48e8d7
48e7fc:	8d 04 57             	lea    (%edi,%edx,2),%eax
48e7ff:	89 45 08             	mov    %eax,0x8(%ebp)
48e802:	3b f8                	cmp    %eax,%edi
48e804:	0f 83 40 01 00 00    	jae    0x48e94a
48e80a:	8b 43 7c             	mov    0x7c(%ebx),%eax
48e80d:	89 45 fc             	mov    %eax,-0x4(%ebp)
48e810:	ba ff 03 00 00       	mov    $0x3ff,%edx
48e815:	3b f0                	cmp    %eax,%esi
48e817:	0f 83 b5 00 00 00    	jae    0x48e8d2
48e81d:	0f b7 0e             	movzwl (%esi),%ecx
48e820:	83 c6 02             	add    $0x2,%esi
48e823:	8b c1                	mov    %ecx,%eax
48e825:	25 00 fc 00 00       	and    $0xfc00,%eax
48e82a:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48e82f:	75 15                	jne    0x48e846
48e831:	0f b7 06             	movzwl (%esi),%eax
48e834:	23 ca                	and    %edx,%ecx
48e836:	c1 e1 0a             	shl    $0xa,%ecx
48e839:	23 c2                	and    %edx,%eax
48e83b:	0b c8                	or     %eax,%ecx
48e83d:	81 c1 00 00 01 00    	add    $0x10000,%ecx
48e843:	83 c6 02             	add    $0x2,%esi
48e846:	0f b7 1f             	movzwl (%edi),%ebx
48e849:	83 c7 02             	add    $0x2,%edi
48e84c:	8b c3                	mov    %ebx,%eax
48e84e:	25 00 fc 00 00       	and    $0xfc00,%eax
48e853:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48e858:	75 15                	jne    0x48e86f
48e85a:	0f b7 07             	movzwl (%edi),%eax
48e85d:	23 da                	and    %edx,%ebx
48e85f:	c1 e3 0a             	shl    $0xa,%ebx
48e862:	23 c2                	and    %edx,%eax
48e864:	0b d8                	or     %eax,%ebx
48e866:	81 c3 00 00 01 00    	add    $0x10000,%ebx
48e86c:	83 c7 02             	add    $0x2,%edi
48e86f:	8b c3                	mov    %ebx,%eax
48e871:	c7 45 0c 80 00 00 00 	movl   $0x80,0xc(%ebp)
48e878:	99                   	cltd
48e879:	f7 7d 0c             	idivl  0xc(%ebp)
48e87c:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
48e883:	c1 e0 07             	shl    $0x7,%eax
48e886:	03 c2                	add    %edx,%eax
48e888:	0f b7 14 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%edx
48e88f:	00
48e890:	3b cb                	cmp    %ebx,%ecx
48e892:	74 2d                	je     0x48e8c1
48e894:	8b 04 d5 54 2f 4a 00 	mov    0x4a2f54(,%edx,8),%eax
48e89b:	03 c3                	add    %ebx,%eax
48e89d:	3b c8                	cmp    %eax,%ecx
48e89f:	74 20                	je     0x48e8c1
48e8a1:	0f b6 04 d5 53 2f 4a 	movzbl 0x4a2f53(,%edx,8),%eax
48e8a8:	00
48e8a9:	8d 04 85 d0 45 4a 00 	lea    0x4a45d0(,%eax,4),%eax
48e8b0:	8b 10                	mov    (%eax),%edx
48e8b2:	3b ca                	cmp    %edx,%ecx
48e8b4:	0f 82 26 ff ff ff    	jb     0x48e7e0
48e8ba:	83 c0 04             	add    $0x4,%eax
48e8bd:	3b ca                	cmp    %edx,%ecx
48e8bf:	75 ef                	jne    0x48e8b0
48e8c1:	3b 7d 08             	cmp    0x8(%ebp),%edi
48e8c4:	0f 83 80 00 00 00    	jae    0x48e94a
48e8ca:	8b 45 fc             	mov    -0x4(%ebp),%eax
48e8cd:	e9 3e ff ff ff       	jmp    0x48e810
48e8d2:	6a fe                	push   $0xfffffffe
48e8d4:	58                   	pop    %eax
48e8d5:	eb 7a                	jmp    0x48e951
48e8d7:	85 d2                	test   %edx,%edx
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