48e53f:	5d                   	pop    %ebp
48e540:	c3                   	ret
48e541:	55                   	push   %ebp
48e542:	8b ec                	mov    %esp,%ebp
48e544:	83 ec 50             	sub    $0x50,%esp
48e547:	53                   	push   %ebx
48e548:	56                   	push   %esi
48e549:	57                   	push   %edi
48e54a:	8b f9                	mov    %ecx,%edi
48e54c:	8b da                	mov    %edx,%ebx
48e54e:	89 7d f8             	mov    %edi,-0x8(%ebp)
48e551:	8b 37                	mov    (%edi),%esi
48e553:	83 c6 02             	add    $0x2,%esi
48e556:	0f b7 06             	movzwl (%esi),%eax
48e559:	66 85 c0             	test   %ax,%ax
48e55c:	74 36                	je     0x48e594
48e55e:	33 d2                	xor    %edx,%edx
48e560:	89 13                	mov    %edx,(%ebx)
48e562:	83 f8 7b             	cmp    $0x7b,%eax
48e565:	75 4a                	jne    0x48e5b1
48e567:	66 83 7e 02 5e       	cmpw   $0x5e,0x2(%esi)
48e56c:	75 09                	jne    0x48e577
48e56e:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
48e574:	83 c6 02             	add    $0x2,%esi
48e577:	8b c2                	mov    %edx,%eax
48e579:	83 c6 02             	add    $0x2,%esi
48e57c:	0f b7 0e             	movzwl (%esi),%ecx
48e57f:	66 85 c9             	test   %cx,%cx
48e582:	74 10                	je     0x48e594
48e584:	83 f9 7d             	cmp    $0x7d,%ecx
48e587:	74 1f                	je     0x48e5a8
48e589:	66 89 4c 45 b0       	mov    %cx,-0x50(%ebp,%eax,2)
48e58e:	40                   	inc    %eax
48e58f:	83 f8 1f             	cmp    $0x1f,%eax
48e592:	7c e5                	jl     0x48e579
48e594:	8b 45 10             	mov    0x10(%ebp),%eax
48e597:	c7 00 2e 00 00 00    	movl   $0x2e,(%eax)
48e59d:	33 c0                	xor    %eax,%eax
48e59f:	89 37                	mov    %esi,(%edi)
48e5a1:	5f                   	pop    %edi
48e5a2:	5e                   	pop    %esi
48e5a3:	5b                   	pop    %ebx
48e5a4:	8b e5                	mov    %ebp,%esp
48e5a6:	5d                   	pop    %ebp
48e5a7:	c3                   	ret
48e5a8:	33 c9                	xor    %ecx,%ecx
48e5aa:	66 89 4c 45 b0       	mov    %cx,-0x50(%ebp,%eax,2)
48e5af:	eb 0a                	jmp    0x48e5bb
48e5b1:	66 89 45 b0          	mov    %ax,-0x50(%ebp)
48e5b5:	33 c0                	xor    %eax,%eax
48e5b7:	66 89 45 b2          	mov    %ax,-0x4e(%ebp)
48e5bb:	b8 a9 00 00 00       	mov    $0xa9,%eax
48e5c0:	89 37                	mov    %esi,(%edi)
48e5c2:	89 45 f4             	mov    %eax,-0xc(%ebp)
48e5c5:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
48e5c8:	8d 45 b0             	lea    -0x50(%ebp),%eax
48e5cb:	d1 f9                	sar    $1,%ecx
48e5cd:	89 45 fc             	mov    %eax,-0x4(%ebp)
48e5d0:	6b c1 06             	imul   $0x6,%ecx,%eax
48e5d3:	0f b7 98 80 8f 4b 00 	movzwl 0x4b8f80(%eax),%ebx
48e5da:	81 c3 20 8a 4b 00    	add    $0x4b8a20,%ebx
48e5e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
48e5e3:	0f b7 38             	movzwl (%eax),%edi
48e5e6:	66 85 ff             	test   %di,%di
48e5e9:	75 05                	jne    0x48e5f0
48e5eb:	80 3b 00             	cmpb   $0x0,(%ebx)
48e5ee:	74 4c                	je     0x48e63c
48e5f0:	0f b7 38             	movzwl (%eax),%edi
48e5f3:	83 c0 02             	add    $0x2,%eax
48e5f6:	89 45 fc             	mov    %eax,-0x4(%ebp)
48e5f9:	0f b6 03             	movzbl (%ebx),%eax
48e5fc:	43                   	inc    %ebx
48e5fd:	89 7d f0             	mov    %edi,-0x10(%ebp)
48e600:	66 3b f8             	cmp    %ax,%di
48e603:	8b 7d f8             	mov    -0x8(%ebp),%edi
48e606:	74 d8                	je     0x48e5e0
48e608:	66 3b 45 f0          	cmp    -0x10(%ebp),%ax
48e60c:	1b c0                	sbb    %eax,%eax
48e60e:	f7 d8                	neg    %eax
48e610:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
48e617:	85 c0                	test   %eax,%eax
48e619:	74 21                	je     0x48e63c
48e61b:	7e 08                	jle    0x48e625
48e61d:	8b 45 f4             	mov    -0xc(%ebp),%eax
48e620:	8d 51 01             	lea    0x1(%ecx),%edx
48e623:	eb 05                	jmp    0x48e62a
48e625:	8b c1                	mov    %ecx,%eax
48e627:	89 45 f4             	mov    %eax,-0xc(%ebp)
48e62a:	3b d0                	cmp    %eax,%edx
48e62c:	7c 97                	jl     0x48e5c5
48e62e:	8b 45 10             	mov    0x10(%ebp),%eax
48e631:	c7 00 2f 00 00 00    	movl   $0x2f,(%eax)
48e637:	e9 61 ff ff ff       	jmp    0x48e59d
48e63c:	6b f1 06             	imul   $0x6,%ecx,%esi
48e63f:	33 c0                	xor    %eax,%eax
48e641:	8b 4d 08             	mov    0x8(%ebp),%ecx
48e644:	40                   	inc    %eax
48e645:	0f b7 96 82 8f 4b 00 	movzwl 0x4b8f82(%esi),%edx
48e64c:	89 11                	mov    %edx,(%ecx)
48e64e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
48e651:	0f b7 96 84 8f 4b 00 	movzwl 0x4b8f84(%esi),%edx
48e658:	89 11                	mov    %edx,(%ecx)
48e65a:	e9 42 ff ff ff       	jmp    0x48e5a1
48e65f:	0f b7 01             	movzwl (%ecx),%eax
48e662:	53                   	push   %ebx
48e663:	56                   	push   %esi
48e664:	57                   	push   %edi
48e665:	6a 30                	push   $0x30
48e667:	5a                   	pop    %edx
48e668:	66 3b c2             	cmp    %dx,%ax
48e66b:	72 45                	jb     0x48e6b2
48e66d:	6a 39                	push   $0x39
48e66f:	5f                   	pop    %edi
48e670:	66 3b c7             	cmp    %di,%ax
48e673:	77 3d                	ja     0x48e6b2
48e675:	6a 02                	push   $0x2
48e677:	5e                   	pop    %esi
48e678:	eb 05                	jmp    0x48e67f
48e67a:	66 3b c7             	cmp    %di,%ax
48e67d:	77 0a                	ja     0x48e689
48e67f:	03 ce                	add    %esi,%ecx
48e681:	0f b7 01             	movzwl (%ecx),%eax
48e684:	66 3b c2             	cmp    %dx,%ax
48e687:	73 f1                	jae    0x48e67a
48e689:	0f b7 01             	movzwl (%ecx),%eax
48e68c:	6a 7d                	push   $0x7d
48e68e:	5b                   	pop    %ebx
48e68f:	66 3b c3             	cmp    %bx,%ax
48e692:	75 05                	jne    0x48e699
48e694:	33 c0                	xor    %eax,%eax
48e696:	40                   	inc    %eax
48e697:	eb 1b                	jmp    0x48e6b4
48e699:	03 ce                	add    %esi,%ecx
48e69b:	83 f8 2c             	cmp    $0x2c,%eax
48e69e:	75 12                	jne    0x48e6b2
48e6a0:	0f b7 01             	movzwl (%ecx),%eax
48e6a3:	66 3b c3             	cmp    %bx,%ax
48e6a6:	74 ec                	je     0x48e694
48e6a8:	66 3b c2             	cmp    %dx,%ax
48e6ab:	72 05                	jb     0x48e6b2
48e6ad:	66 3b c7             	cmp    %di,%ax
48e6b0:	76 0b                	jbe    0x48e6bd
48e6b2:	33 c0                	xor    %eax,%eax
48e6b4:	5f                   	pop    %edi
48e6b5:	5e                   	pop    %esi
48e6b6:	5b                   	pop    %ebx
48e6b7:	c3                   	ret
48e6b8:	66 3b c7             	cmp    %di,%ax
48e6bb:	77 0a                	ja     0x48e6c7
48e6bd:	03 ce                	add    %esi,%ecx
48e6bf:	0f b7 01             	movzwl (%ecx),%eax
48e6c2:	66 3b c2             	cmp    %dx,%ax
48e6c5:	73 f1                	jae    0x48e6b8
48e6c7:	33 c0                	xor    %eax,%eax
48e6c9:	66 39 19             	cmp    %bx,(%ecx)
48e6cc:	0f 94 c0             	sete   %al
48e6cf:	eb e3                	jmp    0x48e6b4
48e6d1:	55                   	push   %ebp
48e6d2:	8b ec                	mov    %esp,%ebp
48e6d4:	51                   	push   %ecx
48e6d5:	53                   	push   %ebx
48e6d6:	56                   	push   %esi
48e6d7:	8b da                	mov    %edx,%ebx
48e6d9:	c7 45 fc 39 00 00 00 	movl   $0x39,-0x4(%ebp)
48e6e0:	57                   	push   %edi
48e6e1:	33 d2                	xor    %edx,%edx
48e6e3:	8b f1                	mov    %ecx,%esi
48e6e5:	83 cf ff             	or     $0xffffffff,%edi
48e6e8:	eb 1c                	jmp    0x48e706
48e6ea:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
48e6ee:	77 21                	ja     0x48e711
48e6f0:	6b ca 0a             	imul   $0xa,%edx,%ecx
48e6f3:	83 c6 02             	add    $0x2,%esi
48e6f6:	0f b7 d0             	movzwl %ax,%edx
48e6f9:	83 c2 d0             	add    $0xffffffd0,%edx
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