46b7d9:	89 0c 07             	mov    %ecx,(%edi,%eax,1)
46b7dc:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b7df:	ff 37                	push   (%edi)
46b7e1:	2b c3                	sub    %ebx,%eax
46b7e3:	d1 e8                	shr    $1,%eax
46b7e5:	50                   	push   %eax
46b7e6:	51                   	push   %ecx
46b7e7:	e8 7b c6 ff ff       	call   0x467e67
46b7ec:	83 c4 0c             	add    $0xc,%esp
46b7ef:	85 c0                	test   %eax,%eax
46b7f1:	0f 85 d3 01 00 00    	jne    0x46b9ca
46b7f7:	8b 0f                	mov    (%edi),%ecx
46b7f9:	8d 51 02             	lea    0x2(%ecx),%edx
46b7fc:	66 8b 01             	mov    (%ecx),%ax
46b7ff:	83 c1 02             	add    $0x2,%ecx
46b802:	66 3b c6             	cmp    %si,%ax
46b805:	75 f5                	jne    0x46b7fc
46b807:	8b 45 e8             	mov    -0x18(%ebp),%eax
46b80a:	2b ca                	sub    %edx,%ecx
46b80c:	d1 f9                	sar    $1,%ecx
46b80e:	83 c7 04             	add    $0x4,%edi
46b811:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
46b814:	83 c3 02             	add    $0x2,%ebx
46b817:	40                   	inc    %eax
46b818:	89 45 e8             	mov    %eax,-0x18(%ebp)
46b81b:	83 f8 02             	cmp    $0x2,%eax
46b81e:	72 a1                	jb     0x46b7c1
46b820:	eb 01                	jmp    0x46b823
46b822:	43                   	inc    %ebx
46b823:	f6 c3 01             	test   $0x1,%bl
46b826:	75 fa                	jne    0x46b822
46b828:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
46b82c:	8b 7d f4             	mov    -0xc(%ebp),%edi
46b82f:	75 2f                	jne    0x46b860
46b831:	8b c3                	mov    %ebx,%eax
46b833:	d1 e8                	shr    $1,%eax
46b835:	8d 0c 47             	lea    (%edi,%eax,2),%ecx
46b838:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b83b:	89 8f 54 01 00 00    	mov    %ecx,0x154(%edi)
46b841:	ff b0 54 01 00 00    	push   0x154(%eax)
46b847:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b84a:	2b c3                	sub    %ebx,%eax
46b84c:	d1 e8                	shr    $1,%eax
46b84e:	50                   	push   %eax
46b84f:	51                   	push   %ecx
46b850:	e8 12 c6 ff ff       	call   0x467e67
46b855:	83 c4 0c             	add    $0xc,%esp
46b858:	85 c0                	test   %eax,%eax
46b85a:	0f 85 6a 01 00 00    	jne    0x46b9ca
46b860:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b863:	8b 88 54 01 00 00    	mov    0x154(%eax),%ecx
46b869:	8d 51 02             	lea    0x2(%ecx),%edx
46b86c:	66 8b 01             	mov    (%ecx),%ax
46b86f:	83 c1 02             	add    $0x2,%ecx
46b872:	66 3b c6             	cmp    %si,%ax
46b875:	75 f5                	jne    0x46b86c
46b877:	2b ca                	sub    %edx,%ecx
46b879:	d1 f9                	sar    $1,%ecx
46b87b:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
46b87e:	83 c3 02             	add    $0x2,%ebx
46b881:	eb 01                	jmp    0x46b884
46b883:	43                   	inc    %ebx
46b884:	f6 c3 01             	test   $0x1,%bl
46b887:	75 fa                	jne    0x46b883
46b889:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
46b88d:	75 2f                	jne    0x46b8be
46b88f:	8b c3                	mov    %ebx,%eax
46b891:	d1 e8                	shr    $1,%eax
46b893:	8d 0c 47             	lea    (%edi,%eax,2),%ecx
46b896:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b899:	89 8f 58 01 00 00    	mov    %ecx,0x158(%edi)
46b89f:	ff b0 58 01 00 00    	push   0x158(%eax)
46b8a5:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b8a8:	2b c3                	sub    %ebx,%eax
46b8aa:	d1 e8                	shr    $1,%eax
46b8ac:	50                   	push   %eax
46b8ad:	51                   	push   %ecx
46b8ae:	e8 b4 c5 ff ff       	call   0x467e67
46b8b3:	83 c4 0c             	add    $0xc,%esp
46b8b6:	85 c0                	test   %eax,%eax
46b8b8:	0f 85 0c 01 00 00    	jne    0x46b9ca
46b8be:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b8c1:	8b 88 58 01 00 00    	mov    0x158(%eax),%ecx
46b8c7:	8d 51 02             	lea    0x2(%ecx),%edx
46b8ca:	66 8b 01             	mov    (%ecx),%ax
46b8cd:	83 c1 02             	add    $0x2,%ecx
46b8d0:	66 3b c6             	cmp    %si,%ax
46b8d3:	75 f5                	jne    0x46b8ca
46b8d5:	2b ca                	sub    %edx,%ecx
46b8d7:	d1 f9                	sar    $1,%ecx
46b8d9:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
46b8dc:	83 c3 02             	add    $0x2,%ebx
46b8df:	eb 01                	jmp    0x46b8e2
46b8e1:	43                   	inc    %ebx
46b8e2:	f6 c3 01             	test   $0x1,%bl
46b8e5:	75 fa                	jne    0x46b8e1
46b8e7:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
46b8eb:	75 2f                	jne    0x46b91c
46b8ed:	8b c3                	mov    %ebx,%eax
46b8ef:	d1 e8                	shr    $1,%eax
46b8f1:	8d 0c 47             	lea    (%edi,%eax,2),%ecx
46b8f4:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b8f7:	89 8f 5c 01 00 00    	mov    %ecx,0x15c(%edi)
46b8fd:	ff b0 5c 01 00 00    	push   0x15c(%eax)
46b903:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b906:	2b c3                	sub    %ebx,%eax
46b908:	d1 e8                	shr    $1,%eax
46b90a:	50                   	push   %eax
46b90b:	51                   	push   %ecx
46b90c:	e8 56 c5 ff ff       	call   0x467e67
46b911:	83 c4 0c             	add    $0xc,%esp
46b914:	85 c0                	test   %eax,%eax
46b916:	0f 85 ae 00 00 00    	jne    0x46b9ca
46b91c:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b91f:	8b 88 5c 01 00 00    	mov    0x15c(%eax),%ecx
46b925:	8d 51 02             	lea    0x2(%ecx),%edx
46b928:	66 8b 01             	mov    (%ecx),%ax
46b92b:	83 c1 02             	add    $0x2,%ecx
46b92e:	66 3b c6             	cmp    %si,%ax
46b931:	75 f5                	jne    0x46b928
46b933:	2b ca                	sub    %edx,%ecx
46b935:	d1 f9                	sar    $1,%ecx
46b937:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
46b93a:	83 c3 02             	add    $0x2,%ebx
46b93d:	eb 01                	jmp    0x46b940
46b93f:	43                   	inc    %ebx
46b940:	f6 c3 01             	test   $0x1,%bl
46b943:	75 fa                	jne    0x46b93f
46b945:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
46b949:	75 2b                	jne    0x46b976
46b94b:	8b c3                	mov    %ebx,%eax
46b94d:	d1 e8                	shr    $1,%eax
46b94f:	8d 0c 47             	lea    (%edi,%eax,2),%ecx
46b952:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b955:	89 8f 60 01 00 00    	mov    %ecx,0x160(%edi)
46b95b:	ff b0 60 01 00 00    	push   0x160(%eax)
46b961:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b964:	2b c3                	sub    %ebx,%eax
46b966:	d1 e8                	shr    $1,%eax
46b968:	50                   	push   %eax
46b969:	51                   	push   %ecx
46b96a:	e8 f8 c4 ff ff       	call   0x467e67
46b96f:	83 c4 0c             	add    $0xc,%esp
46b972:	85 c0                	test   %eax,%eax
46b974:	75 54                	jne    0x46b9ca
46b976:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b979:	8b 88 60 01 00 00    	mov    0x160(%eax),%ecx
46b97f:	8d 51 02             	lea    0x2(%ecx),%edx
46b982:	66 8b 01             	mov    (%ecx),%ax
46b985:	83 c1 02             	add    $0x2,%ecx
46b988:	66 3b c6             	cmp    %si,%ax
46b98b:	75 f5                	jne    0x46b982
46b98d:	2b ca                	sub    %edx,%ecx
46b98f:	8b 55 f8             	mov    -0x8(%ebp),%edx
46b992:	d1 f9                	sar    $1,%ecx
46b994:	42                   	inc    %edx
46b995:	89 55 f8             	mov    %edx,-0x8(%ebp)
46b998:	8d 79 01             	lea    0x1(%ecx),%edi
46b99b:	8d 3c 7b             	lea    (%ebx,%edi,2),%edi
46b99e:	83 fa 02             	cmp    $0x2,%edx
46b9a1:	7d 0b                	jge    0x46b9ae
46b9a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
46b9a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46b9a9:	e9 5d f9 ff ff       	jmp    0x46b30b
46b9ae:	8b 75 f4             	mov    -0xc(%ebp),%esi
46b9b1:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
46b9b5:	5b                   	pop    %ebx
46b9b6:	74 0a                	je     0x46b9c2
46b9b8:	8b 4d d8             	mov    -0x28(%ebp),%ecx
46b9bb:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
46b9c2:	5f                   	pop    %edi
46b9c3:	8b c6                	mov    %esi,%eax
46b9c5:	5e                   	pop    %esi
46b9c6:	8b e5                	mov    %ebp,%esp
46b9c8:	5d                   	pop    %ebp
46b9c9:	c3                   	ret
46b9ca:	56                   	push   %esi
46b9cb:	56                   	push   %esi
46b9cc:	56                   	push   %esi
46b9cd:	56                   	push   %esi
46b9ce:	56                   	push   %esi
46b9cf:	e8 2f 13 fe ff       	call   0x44cd03
46b9d4:	cc                   	int3
46b9d5:	8b ff                	mov    %edi,%edi
46b9d7:	55                   	push   %ebp
46b9d8:	8b ec                	mov    %esp,%ebp
46b9da:	6a 00                	push   $0x0
46b9dc:	ff 75 18             	push   0x18(%ebp)
46b9df:	ff 75 14             	push   0x14(%ebp)
46b9e2:	ff 75 10             	push   0x10(%ebp)
46b9e5:	ff 75 0c             	push   0xc(%ebp)
46b9e8:	ff 75 08             	push   0x8(%ebp)
46b9eb:	e8 05 00 00 00       	call   0x46b9f5
46b9f0:	83 c4 18             	add    $0x18,%esp
46b9f3:	5d                   	pop    %ebp
46b9f4:	c3                   	ret
46b9f5:	8b ff                	mov    %edi,%edi
46b9f7:	55                   	push   %ebp
46b9f8:	8b ec                	mov    %esp,%ebp
46b9fa:	83 ec 24             	sub    $0x24,%esp
46b9fd:	57                   	push   %edi
46b9fe:	8b 7d 08             	mov    0x8(%ebp),%edi
46ba01:	85 ff                	test   %edi,%edi
46ba03:	75 17                	jne    0x46ba1c
46ba05:	e8 25 14 fe ff       	call   0x44ce2f
46ba0a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46ba10:	e8 c1 12 fe ff       	call   0x44ccd6
46ba15:	33 c0                	xor    %eax,%eax
46ba17:	e9 55 01 00 00       	jmp    0x46bb71
46ba1c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
46ba20:	74 e3                	je     0x46ba05
46ba22:	56                   	push   %esi
46ba23:	8b 75 10             	mov    0x10(%ebp),%esi
46ba26:	33 c0                	xor    %eax,%eax
46ba28:	66 89 07             	mov    %ax,(%edi)
46ba2b:	85 f6                	test   %esi,%esi
46ba2d:	75 17                	jne    0x46ba46
46ba2f:	e8 fb 13 fe ff       	call   0x44ce2f
46ba34:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46ba3a:	e8 97 12 fe ff       	call   0x44ccd6
46ba3f:	33 c0                	xor    %eax,%eax
46ba41:	e9 2a 01 00 00       	jmp    0x46bb70
46ba46:	ff 75 1c             	push   0x1c(%ebp)
46ba49:	8d 4d dc             	lea    -0x24(%ebp),%ecx
46ba4c:	e8 b7 35 fe ff       	call   0x44f008
46ba51:	8b 55 18             	mov    0x18(%ebp),%edx
46ba54:	85 d2                	test   %edx,%edx
46ba56:	75 0c                	jne    0x46ba64
46ba58:	8b 45 e0             	mov    -0x20(%ebp),%eax
46ba5b:	8b 90 9c 00 00 00    	mov    0x9c(%eax),%edx
46ba61:	89 55 18             	mov    %edx,0x18(%ebp)
46ba64:	8b 45 0c             	mov    0xc(%ebp),%eax
46ba67:	8b cf                	mov    %edi,%ecx
46ba69:	53                   	push   %ebx
46ba6a:	33 db                	xor    %ebx,%ebx
46ba6c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46ba6f:	89 45 f8             	mov    %eax,-0x8(%ebp)
46ba72:	85 c0                	test   %eax,%eax
46ba74:	0f 86 b7 00 00 00    	jbe    0x46bb31
46ba7a:	0f b7 3e             	movzwl (%esi),%edi
46ba7d:	89 7d f0             	mov    %edi,-0x10(%ebp)
46ba80:	0f b7 ff             	movzwl %di,%edi
46ba83:	85 ff                	test   %edi,%edi
46ba85:	8b 7d 08             	mov    0x8(%ebp),%edi
46ba88:	0f 84 8a 00 00 00    	je     0x46bb18
46ba8e:	8b 7d f0             	mov    -0x10(%ebp),%edi
46ba91:	66 83 ff 25          	cmp    $0x25,%di
46ba95:	8b 7d 08             	mov    0x8(%ebp),%edi
46ba98:	74 1b                	je     0x46bab5
46ba9a:	8b 45 f0             	mov    -0x10(%ebp),%eax
46ba9d:	83 c6 02             	add    $0x2,%esi
46baa0:	66 89 01             	mov    %ax,(%ecx)
46baa3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46baa6:	8b 45 f8             	mov    -0x8(%ebp),%eax
46baa9:	83 c1 02             	add    $0x2,%ecx
46baac:	48                   	dec    %eax
46baad:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46bab0:	89 45 f8             	mov    %eax,-0x8(%ebp)
46bab3:	eb 58                	jmp    0x46bb0d
46bab5:	39 5d 14             	cmp    %ebx,0x14(%ebp)
46bab8:	0f 84 8f 00 00 00    	je     0x46bb4d
46babe:	83 c6 02             	add    $0x2,%esi
46bac1:	88 5d ec             	mov    %bl,-0x14(%ebp)
46bac4:	66 83 3e 23          	cmpw   $0x23,(%esi)
46bac8:	75 07                	jne    0x46bad1
46baca:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
46bace:	83 c6 02             	add    $0x2,%esi
46bad1:	0f b7 06             	movzwl (%esi),%eax
46bad4:	83 f8 45             	cmp    $0x45,%eax
46bad7:	74 05                	je     0x46bade
46bad9:	83 f8 4f             	cmp    $0x4f,%eax
46badc:	75 03                	jne    0x46bae1
46bade:	83 c6 02             	add    $0x2,%esi
46bae1:	ff 75 ec             	push   -0x14(%ebp)
46bae4:	8d 45 f8             	lea    -0x8(%ebp),%eax
46bae7:	52                   	push   %edx
46bae8:	50                   	push   %eax
46bae9:	8d 45 f4             	lea    -0xc(%ebp),%eax
46baec:	50                   	push   %eax
46baed:	ff 75 14             	push   0x14(%ebp)
46baf0:	0f b7 06             	movzwl (%esi),%eax
46baf3:	50                   	push   %eax
46baf4:	8d 45 e0             	lea    -0x20(%ebp),%eax
46baf7:	50                   	push   %eax
46baf8:	e8 73 e4 ff ff       	call   0x469f70
46bafd:	83 c4 1c             	add    $0x1c,%esp
46bb00:	84 c0                	test   %al,%al
46bb02:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bb05:	74 22                	je     0x46bb29
46bb07:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46bb0a:	83 c6 02             	add    $0x2,%esi
46bb0d:	8b 55 18             	mov    0x18(%ebp),%edx
46bb10:	85 c0                	test   %eax,%eax
46bb12:	0f 85 62 ff ff ff    	jne    0x46ba7a
46bb18:	85 c0                	test   %eax,%eax
46bb1a:	74 15                	je     0x46bb31
46bb1c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46bb1f:	33 c0                	xor    %eax,%eax
46bb21:	66 89 01             	mov    %ax,(%ecx)
46bb24:	2b 5d f8             	sub    -0x8(%ebp),%ebx
46bb27:	eb 34                	jmp    0x46bb5d
46bb29:	85 c0                	test   %eax,%eax
46bb2b:	74 04                	je     0x46bb31
46bb2d:	b1 01                	mov    $0x1,%cl
46bb2f:	eb 02                	jmp    0x46bb33
46bb31:	8a cb                	mov    %bl,%cl
46bb33:	33 d2                	xor    %edx,%edx
46bb35:	66 89 17             	mov    %dx,(%edi)
46bb38:	84 c9                	test   %cl,%cl
46bb3a:	75 11                	jne    0x46bb4d
46bb3c:	85 c0                	test   %eax,%eax
46bb3e:	75 0d                	jne    0x46bb4d
46bb40:	e8 ea 12 fe ff       	call   0x44ce2f
46bb45:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
46bb4b:	eb 10                	jmp    0x46bb5d
46bb4d:	e8 dd 12 fe ff       	call   0x44ce2f
46bb52:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46bb58:	e8 79 11 fe ff       	call   0x44ccd6
46bb5d:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
46bb61:	74 0a                	je     0x46bb6d
46bb63:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46bb66:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
46bb6d:	8b c3                	mov    %ebx,%eax
46bb6f:	5b                   	pop    %ebx
46bb70:	5e                   	pop    %esi
46bb71:	5f                   	pop    %edi
46bb72:	8b e5                	mov    %ebp,%esp
46bb74:	5d                   	pop    %ebp
46bb75:	c3                   	ret
46bb76:	8b ff                	mov    %edi,%edi
46bb78:	55                   	push   %ebp
46bb79:	8b ec                	mov    %esp,%ebp
46bb7b:	ff 75 18             	push   0x18(%ebp)
46bb7e:	6a 00                	push   $0x0
46bb80:	ff 75 14             	push   0x14(%ebp)
46bb83:	ff 75 10             	push   0x10(%ebp)
46bb86:	ff 75 0c             	push   0xc(%ebp)
46bb89:	ff 75 08             	push   0x8(%ebp)
46bb8c:	e8 64 fe ff ff       	call   0x46b9f5
46bb91:	83 c4 18             	add    $0x18,%esp
46bb94:	5d                   	pop    %ebp
46bb95:	c3                   	ret
46bb96:	8b ff                	mov    %edi,%edi
46bb98:	55                   	push   %ebp
46bb99:	8b ec                	mov    %esp,%ebp
46bb9b:	6a 00                	push   $0x0
46bb9d:	6a 00                	push   $0x0
46bb9f:	ff 75 14             	push   0x14(%ebp)
46bba2:	ff 75 10             	push   0x10(%ebp)
46bba5:	ff 75 0c             	push   0xc(%ebp)