4318ff:	0f b7 c1             	movzwl %cx,%eax
431902:	f6 80 60 b9 4a 00 08 	testb  $0x8,0x4ab960(%eax)
431909:	74 42                	je     0x43194d
43190b:	b8 20 00 00 00       	mov    $0x20,%eax
431910:	66 89 06             	mov    %ax,(%esi)
431913:	83 c6 02             	add    $0x2,%esi
431916:	66 83 f9 0d          	cmp    $0xd,%cx
43191a:	0f 85 60 ff ff ff    	jne    0x431880
431920:	66 83 3e 0a          	cmpw   $0xa,(%esi)
431924:	0f 85 56 ff ff ff    	jne    0x431880
43192a:	85 d2                	test   %edx,%edx
43192c:	74 14                	je     0x431942
43192e:	8b c6                	mov    %esi,%eax
431930:	2b c2                	sub    %edx,%eax
431932:	50                   	push   %eax
431933:	52                   	push   %edx
431934:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
431937:	2b d0                	sub    %eax,%edx
431939:	52                   	push   %edx
43193a:	e8 e1 9c 03 00       	call   0x46b620
43193f:	83 c4 0c             	add    $0xc,%esp
431942:	83 c6 02             	add    $0x2,%esi
431945:	43                   	inc    %ebx
431946:	8b d6                	mov    %esi,%edx
431948:	e9 2b ff ff ff       	jmp    0x431878
43194d:	66 83 f9 26          	cmp    $0x26,%cx
431951:	75 17                	jne    0x43196a
431953:	8d 55 f4             	lea    -0xc(%ebp),%edx
431956:	8b ce                	mov    %esi,%ecx
431958:	e8 e3 66 ff ff       	call   0x428040
43195d:	8b 5d f8             	mov    -0x8(%ebp),%ebx
431960:	8b f0                	mov    %eax,%esi
431962:	8b 55 f4             	mov    -0xc(%ebp),%edx
431965:	e9 16 ff ff ff       	jmp    0x431880
43196a:	66 85 c9             	test   %cx,%cx
43196d:	74 08                	je     0x431977
43196f:	83 c6 02             	add    $0x2,%esi
431972:	e9 09 ff ff ff       	jmp    0x431880
431977:	5f                   	pop    %edi
431978:	5e                   	pop    %esi
431979:	33 c0                	xor    %eax,%eax
43197b:	5b                   	pop    %ebx
43197c:	8b e5                	mov    %ebp,%esp
43197e:	5d                   	pop    %ebp
43197f:	c3                   	ret
431980:	8b c6                	mov    %esi,%eax
431982:	85 d2                	test   %edx,%edx
431984:	74 16                	je     0x43199c
431986:	2b c2                	sub    %edx,%eax
431988:	8d 3c 1b             	lea    (%ebx,%ebx,1),%edi
43198b:	50                   	push   %eax
43198c:	52                   	push   %edx
43198d:	2b d7                	sub    %edi,%edx
43198f:	52                   	push   %edx
431990:	e8 8b 9c 03 00       	call   0x46b620
431995:	8b c6                	mov    %esi,%eax
431997:	83 c4 0c             	add    $0xc,%esp
43199a:	2b c7                	sub    %edi,%eax
43199c:	33 c9                	xor    %ecx,%ecx
43199e:	5f                   	pop    %edi
43199f:	66 89 08             	mov    %cx,(%eax)
4319a2:	8d 46 02             	lea    0x2(%esi),%eax
4319a5:	5e                   	pop    %esi
4319a6:	5b                   	pop    %ebx
4319a7:	8b e5                	mov    %ebp,%esp
4319a9:	5d                   	pop    %ebp
4319aa:	c3                   	ret
4319ab:	cc                   	int3
4319ac:	cc                   	int3
4319ad:	cc                   	int3
4319ae:	cc                   	int3
4319af:	cc                   	int3
4319b0:	55                   	push   %ebp
4319b1:	8b ec                	mov    %esp,%ebp
4319b3:	83 ec 0c             	sub    $0xc,%esp
4319b6:	53                   	push   %ebx
4319b7:	56                   	push   %esi
4319b8:	8b 75 08             	mov    0x8(%ebp),%esi
4319bb:	33 d2                	xor    %edx,%edx
4319bd:	57                   	push   %edi
4319be:	bf 80 00 00 00       	mov    $0x80,%edi
4319c3:	33 db                	xor    %ebx,%ebx
4319c5:	89 7d fc             	mov    %edi,-0x4(%ebp)
4319c8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4319cb:	89 55 f4             	mov    %edx,-0xc(%ebp)
4319ce:	66 90                	xchg   %ax,%ax
4319d0:	0f b7 0e             	movzwl (%esi),%ecx
4319d3:	8b c1                	mov    %ecx,%eax
4319d5:	66 3b c7             	cmp    %di,%ax
4319d8:	73 09                	jae    0x4319e3
4319da:	f6 80 60 b9 4a 00 01 	testb  $0x1,0x4ab960(%eax)
4319e1:	75 49                	jne    0x431a2c
4319e3:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4319e7:	8b f8                	mov    %eax,%edi
4319e9:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
4319ed:	73 09                	jae    0x4319f8
4319ef:	f6 80 60 b9 4a 00 01 	testb  $0x1,0x4ab960(%eax)
4319f6:	75 38                	jne    0x431a30
4319f8:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4319fc:	8b f8                	mov    %eax,%edi
4319fe:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
431a02:	73 09                	jae    0x431a0d
431a04:	f6 80 60 b9 4a 00 01 	testb  $0x1,0x4ab960(%eax)
431a0b:	75 28                	jne    0x431a35
431a0d:	0f b7 46 06          	movzwl 0x6(%esi),%eax
431a11:	8b f8                	mov    %eax,%edi
431a13:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
431a17:	73 09                	jae    0x431a22
431a19:	f6 80 60 b9 4a 00 01 	testb  $0x1,0x4ab960(%eax)
431a20:	75 18                	jne    0x431a3a
431a22:	83 c6 08             	add    $0x8,%esi
431a25:	bf 80 00 00 00       	mov    $0x80,%edi
431a2a:	eb a4                	jmp    0x4319d0
431a2c:	8b c1                	mov    %ecx,%eax
431a2e:	eb 14                	jmp    0x431a44
431a30:	83 c6 02             	add    $0x2,%esi
431a33:	eb 08                	jmp    0x431a3d
431a35:	83 c6 04             	add    $0x4,%esi
431a38:	eb 03                	jmp    0x431a3d
431a3a:	83 c6 06             	add    $0x6,%esi
431a3d:	8b c7                	mov    %edi,%eax
431a3f:	bf 80 00 00 00       	mov    $0x80,%edi
431a44:	66 83 f8 3c          	cmp    $0x3c,%ax
431a48:	0f 84 91 00 00 00    	je     0x431adf
431a4e:	66 83 f8 0d          	cmp    $0xd,%ax
431a52:	75 37                	jne    0x431a8b
431a54:	b8 0a 00 00 00       	mov    $0xa,%eax
431a59:	66 89 06             	mov    %ax,(%esi)
431a5c:	83 c6 02             	add    $0x2,%esi
431a5f:	66 39 06             	cmp    %ax,(%esi)
431a62:	0f 85 68 ff ff ff    	jne    0x4319d0
431a68:	85 d2                	test   %edx,%edx
431a6a:	74 14                	je     0x431a80
431a6c:	8b c6                	mov    %esi,%eax
431a6e:	2b c2                	sub    %edx,%eax
431a70:	50                   	push   %eax
431a71:	52                   	push   %edx
431a72:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
431a75:	2b d0                	sub    %eax,%edx
431a77:	52                   	push   %edx
431a78:	e8 a3 9b 03 00       	call   0x46b620
431a7d:	83 c4 0c             	add    $0xc,%esp
431a80:	83 c6 02             	add    $0x2,%esi
431a83:	43                   	inc    %ebx
431a84:	8b d6                	mov    %esi,%edx
431a86:	e9 3d ff ff ff       	jmp    0x4319c8
431a8b:	66 83 f8 26          	cmp    $0x26,%ax
431a8f:	75 17                	jne    0x431aa8
431a91:	8d 55 f4             	lea    -0xc(%ebp),%edx
431a94:	8b ce                	mov    %esi,%ecx
431a96:	e8 a5 65 ff ff       	call   0x428040
431a9b:	8b 5d f8             	mov    -0x8(%ebp),%ebx
431a9e:	8b f0                	mov    %eax,%esi
431aa0:	8b 55 f4             	mov    -0xc(%ebp),%edx
431aa3:	e9 28 ff ff ff       	jmp    0x4319d0
431aa8:	66 85 c0             	test   %ax,%ax
431aab:	74 08                	je     0x431ab5
431aad:	83 c6 02             	add    $0x2,%esi
431ab0:	e9 1b ff ff ff       	jmp    0x4319d0
431ab5:	8b c6                	mov    %esi,%eax
431ab7:	85 d2                	test   %edx,%edx
431ab9:	74 16                	je     0x431ad1
431abb:	2b c2                	sub    %edx,%eax
431abd:	8d 3c 1b             	lea    (%ebx,%ebx,1),%edi
431ac0:	50                   	push   %eax
431ac1:	52                   	push   %edx
431ac2:	2b d7                	sub    %edi,%edx
431ac4:	52                   	push   %edx
431ac5:	e8 56 9b 03 00       	call   0x46b620
431aca:	8b c6                	mov    %esi,%eax
431acc:	83 c4 0c             	add    $0xc,%esp
431acf:	2b c7                	sub    %edi,%eax
431ad1:	33 c9                	xor    %ecx,%ecx
431ad3:	5f                   	pop    %edi
431ad4:	66 89 08             	mov    %cx,(%eax)
431ad7:	8b c6                	mov    %esi,%eax
431ad9:	5e                   	pop    %esi
431ada:	5b                   	pop    %ebx
431adb:	8b e5                	mov    %ebp,%esp
431add:	5d                   	pop    %ebp
431ade:	c3                   	ret
431adf:	8b c6                	mov    %esi,%eax
431ae1:	85 d2                	test   %edx,%edx
431ae3:	74 16                	je     0x431afb
431ae5:	2b c2                	sub    %edx,%eax
431ae7:	8d 3c 1b             	lea    (%ebx,%ebx,1),%edi
431aea:	50                   	push   %eax
431aeb:	52                   	push   %edx
431aec:	2b d7                	sub    %edi,%edx
431aee:	52                   	push   %edx
431aef:	e8 2c 9b 03 00       	call   0x46b620
431af4:	8b c6                	mov    %esi,%eax
431af6:	83 c4 0c             	add    $0xc,%esp
431af9:	2b c7                	sub    %edi,%eax
431afb:	33 c9                	xor    %ecx,%ecx
431afd:	5f                   	pop    %edi
431afe:	66 89 08             	mov    %cx,(%eax)
431b01:	8d 46 02             	lea    0x2(%esi),%eax
431b04:	5e                   	pop    %esi
431b05:	5b                   	pop    %ebx
431b06:	8b e5                	mov    %ebp,%esp
431b08:	5d                   	pop    %ebp
431b09:	c3                   	ret
431b0a:	cc                   	int3
431b0b:	cc                   	int3
431b0c:	cc                   	int3
431b0d:	cc                   	int3
431b0e:	cc                   	int3
431b0f:	cc                   	int3
431b10:	55                   	push   %ebp
431b11:	8b ec                	mov    %esp,%ebp
431b13:	51                   	push   %ecx
431b14:	53                   	push   %ebx
431b15:	56                   	push   %esi
431b16:	8b 75 08             	mov    0x8(%ebp),%esi
431b19:	8b c1                	mov    %ecx,%eax
431b1b:	89 45 fc             	mov    %eax,-0x4(%ebp)
431b1e:	8b da                	mov    %edx,%ebx
431b20:	57                   	push   %edi
431b21:	8b f8                	mov    %eax,%edi
431b23:	85 f6                	test   %esi,%esi
431b25:	0f 84 8e 00 00 00    	je     0x431bb9
431b2b:	ba 00 d8 00 00       	mov    $0xd800,%edx
431b30:	0f b7 0b             	movzwl (%ebx),%ecx
431b33:	8b c1                	mov    %ecx,%eax
431b35:	66 3b ca             	cmp    %dx,%cx
431b38:	72 67                	jb     0x431ba1
431b3a:	8d 88 00 20 ff ff    	lea    -0xe000(%eax),%ecx
431b40:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
431b46:	72 59                	jb     0x431ba1
431b48:	8d 88 00 28 ff ff    	lea    -0xd800(%eax),%ecx
431b4e:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
431b54:	73 50                	jae    0x431ba6
431b56:	83 fe 02             	cmp    $0x2,%esi
431b59:	72 4b                	jb     0x431ba6
431b5b:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
431b5f:	8d 8a 00 24 ff ff    	lea    -0xdc00(%edx),%ecx
431b65:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
431b6b:	73 27                	jae    0x431b94
431b6d:	25 ff 03 00 00       	and    $0x3ff,%eax
431b72:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
431b78:	83 c0 40             	add    $0x40,%eax
431b7b:	c1 e0 0a             	shl    $0xa,%eax
431b7e:	03 c2                	add    %edx,%eax
431b80:	ba 00 d8 00 00       	mov    $0xd800,%edx
431b85:	89 07                	mov    %eax,(%edi)
431b87:	83 c7 04             	add    $0x4,%edi
431b8a:	83 ee 02             	sub    $0x2,%esi
431b8d:	b8 04 00 00 00       	mov    $0x4,%eax
431b92:	eb 18                	jmp    0x431bac
431b94:	4e                   	dec    %esi
431b95:	b8 02 00 00 00       	mov    $0x2,%eax
431b9a:	ba 00 d8 00 00       	mov    $0xd800,%edx
431b9f:	eb 0b                	jmp    0x431bac
431ba1:	89 07                	mov    %eax,(%edi)
431ba3:	83 c7 04             	add    $0x4,%edi
431ba6:	4e                   	dec    %esi
431ba7:	b8 02 00 00 00       	mov    $0x2,%eax
431bac:	03 d8                	add    %eax,%ebx
431bae:	85 f6                	test   %esi,%esi
431bb0:	0f 85 7a ff ff ff    	jne    0x431b30
431bb6:	8b 45 fc             	mov    -0x4(%ebp),%eax
431bb9:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
431bbd:	8b 75 fc             	mov    -0x4(%ebp),%esi
431bc0:	0f 84 cc 00 00 00    	je     0x431c92
431bc6:	8b c8                	mov    %eax,%ecx
431bc8:	33 db                	xor    %ebx,%ebx
431bca:	8b c7                	mov    %edi,%eax
431bcc:	33 d2                	xor    %edx,%edx
431bce:	2b c6                	sub    %esi,%eax
431bd0:	83 c0 03             	add    $0x3,%eax
431bd3:	c1 e8 02             	shr    $0x2,%eax
431bd6:	3b f7                	cmp    %edi,%esi
431bd8:	0f 47 c3             	cmova  %ebx,%eax
431bdb:	85 c0                	test   %eax,%eax
431bdd:	0f 84 9e 00 00 00    	je     0x431c81
431be3:	83 f8 08             	cmp    $0x8,%eax
431be6:	0f 82 95 00 00 00    	jb     0x431c81
431bec:	0f 28 2d 00 74 4b 00 	movaps 0x4b7400,%xmm5
431bf3:	bb 10 00 00 00       	mov    $0x10,%ebx
431bf8:	0f 28 35 e0 73 4b 00 	movaps 0x4b73e0,%xmm6
431bff:	83 e0 f8             	and    $0xfffffff8,%eax
431c02:	66 0f 6e db          	movd   %ebx,%xmm3
431c06:	bb 08 00 00 00       	mov    $0x8,%ebx
431c0b:	66 0f 6e e3          	movd   %ebx,%xmm4
431c0f:	90                   	nop
431c10:	0f 10 09             	movups (%ecx),%xmm1
431c13:	03 d3                	add    %ebx,%edx
431c15:	0f 28 d6             	movaps %xmm6,%xmm2
431c18:	66 0f db d1          	pand   %xmm1,%xmm2
431c1c:	0f 28 c1             	movaps %xmm1,%xmm0
431c1f:	66 0f f2 c3          	pslld  %xmm3,%xmm0
431c23:	66 0f eb d0          	por    %xmm0,%xmm2
431c27:	0f 28 c5             	movaps %xmm5,%xmm0
431c2a:	66 0f db c1          	pand   %xmm1,%xmm0
431c2e:	66 0f d2 cb          	psrld  %xmm3,%xmm1
431c32:	66 0f f2 d4          	pslld  %xmm4,%xmm2
431c36:	66 0f eb c1          	por    %xmm1,%xmm0
431c3a:	66 0f d2 c4          	psrld  %xmm4,%xmm0
431c3e:	66 0f eb d0          	por    %xmm0,%xmm2
431c42:	0f 11 11             	movups %xmm2,(%ecx)
431c45:	0f 10 49 10          	movups 0x10(%ecx),%xmm1
431c49:	0f 28 d6             	movaps %xmm6,%xmm2
431c4c:	0f 28 c1             	movaps %xmm1,%xmm0
431c4f:	66 0f db d1          	pand   %xmm1,%xmm2
431c53:	66 0f f2 c3          	pslld  %xmm3,%xmm0
431c57:	66 0f eb d0          	por    %xmm0,%xmm2
431c5b:	0f 28 c5             	movaps %xmm5,%xmm0
431c5e:	66 0f db c1          	pand   %xmm1,%xmm0
431c62:	66 0f d2 cb          	psrld  %xmm3,%xmm1
431c66:	66 0f f2 d4          	pslld  %xmm4,%xmm2
431c6a:	66 0f eb c1          	por    %xmm1,%xmm0
431c6e:	66 0f d2 c4          	psrld  %xmm4,%xmm0
431c72:	66 0f eb d0          	por    %xmm0,%xmm2
431c76:	0f 11 51 10          	movups %xmm2,0x10(%ecx)
431c7a:	83 c1 20             	add    $0x20,%ecx
431c7d:	3b d0                	cmp    %eax,%edx
431c7f:	75 8f                	jne    0x431c10
431c81:	3b cf                	cmp    %edi,%ecx
431c83:	74 0d                	je     0x431c92
431c85:	8b 01                	mov    (%ecx),%eax
431c87:	0f c8                	bswap  %eax
431c89:	89 01                	mov    %eax,(%ecx)
431c8b:	83 c1 04             	add    $0x4,%ecx
431c8e:	3b cf                	cmp    %edi,%ecx
431c90:	75 f3                	jne    0x431c85
431c92:	2b fe                	sub    %esi,%edi
431c94:	83 e7 fc             	and    $0xfffffffc,%edi
431c97:	8b c7                	mov    %edi,%eax
431c99:	5f                   	pop    %edi
431c9a:	5e                   	pop    %esi
431c9b:	5b                   	pop    %ebx
431c9c:	8b e5                	mov    %ebp,%esp
431c9e:	5d                   	pop    %ebp
431c9f:	c3                   	ret
431ca0:	55                   	push   %ebp
431ca1:	8b ec                	mov    %esp,%ebp
431ca3:	83 ec 0c             	sub    $0xc,%esp
431ca6:	53                   	push   %ebx
431ca7:	56                   	push   %esi
431ca8:	8b f2                	mov    %edx,%esi
431caa:	8b d9                	mov    %ecx,%ebx
431cac:	8b 55 10             	mov    0x10(%ebp),%edx
431caf:	89 5d f8             	mov    %ebx,-0x8(%ebp)
431cb2:	57                   	push   %edi
431cb3:	85 d2                	test   %edx,%edx
431cb5:	75 2c                	jne    0x431ce3
431cb7:	8b 06                	mov    (%esi),%eax
431cb9:	8b 7d 08             	mov    0x8(%ebp),%edi
431cbc:	85 c7                	test   %eax,%edi