51b719:	66 89 46 46          	mov    %ax,0x46(%esi)
51b71d:	eb 11                	jmp    0x51b730
51b71f:	56                   	push   %esi
51b720:	e8 fb c0 fd ff       	call   0x4f7820
51b725:	83 c4 04             	add    $0x4,%esp
51b728:	85 c0                	test   %eax,%eax
51b72a:	0f 85 56 02 00 00    	jne    0x51b986
51b730:	f6 46 01 20          	testb  $0x20,0x1(%esi)
51b734:	74 17                	je     0x51b74d
51b736:	56                   	push   %esi
51b737:	ff 76 40             	push   0x40(%esi)
51b73a:	ff 75 dc             	push   -0x24(%ebp)
51b73d:	e8 9e 99 ff ff       	call   0x5150e0
51b742:	83 c4 0c             	add    $0xc,%esp
51b745:	85 c0                	test   %eax,%eax
51b747:	0f 85 39 02 00 00    	jne    0x51b986
51b74d:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
51b751:	75 16                	jne    0x51b769
51b753:	6a 00                	push   $0x0
51b755:	ff 76 24             	push   0x24(%esi)
51b758:	ff 76 20             	push   0x20(%esi)
51b75b:	ff 76 40             	push   0x40(%esi)
51b75e:	ff 75 d8             	push   -0x28(%ebp)
51b761:	e8 aa bc fe ff       	call   0x507410
51b766:	83 c4 14             	add    $0x14,%esp
51b769:	ff 73 48             	push   0x48(%ebx)
51b76c:	e8 cf 81 01 00       	call   0x533940
51b771:	83 c4 04             	add    $0x4,%esp
51b774:	85 c0                	test   %eax,%eax
51b776:	0f 85 0a 02 00 00    	jne    0x51b986
51b77c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
51b77f:	50                   	push   %eax
51b780:	ff 75 e0             	push   -0x20(%ebp)
51b783:	53                   	push   %ebx
51b784:	e8 d7 d2 fd ff       	call   0x4f8a60
51b789:	89 45 e0             	mov    %eax,-0x20(%ebp)
51b78c:	8d 45 e0             	lea    -0x20(%ebp),%eax
51b78f:	50                   	push   %eax
51b790:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
51b794:	50                   	push   %eax
51b795:	ff 75 d0             	push   -0x30(%ebp)
51b798:	53                   	push   %ebx
51b799:	e8 32 2d fe ff       	call   0x4fe4d0
51b79e:	8b 45 e0             	mov    -0x20(%ebp),%eax
51b7a1:	83 c4 1c             	add    $0x1c,%esp
51b7a4:	85 c0                	test   %eax,%eax
51b7a6:	0f 85 da 01 00 00    	jne    0x51b986
51b7ac:	38 43 08             	cmp    %al,0x8(%ebx)
51b7af:	0f 85 e7 00 00 00    	jne    0x51b89c
51b7b5:	8b 7e 74             	mov    0x74(%esi),%edi
51b7b8:	39 47 14             	cmp    %eax,0x14(%edi)
51b7bb:	7d 11                	jge    0x51b7ce
51b7bd:	57                   	push   %edi
51b7be:	e8 bd ab fd ff       	call   0x4f6380
51b7c3:	83 c4 04             	add    $0x4,%esp
51b7c6:	85 c0                	test   %eax,%eax
51b7c8:	0f 85 b8 01 00 00    	jne    0x51b986
51b7ce:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b7d2:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
51b7d5:	48                   	dec    %eax
51b7d6:	3b c8                	cmp    %eax,%ecx
51b7d8:	7d 06                	jge    0x51b7e0
51b7da:	8b 44 8e 7c          	mov    0x7c(%esi,%ecx,4),%eax
51b7de:	eb 03                	jmp    0x51b7e3
51b7e0:	8b 46 74             	mov    0x74(%esi),%eax
51b7e3:	8b 40 04             	mov    0x4(%eax),%eax
51b7e6:	0f b7 4f 18          	movzwl 0x18(%edi),%ecx
51b7ea:	8b 57 38             	mov    0x38(%edi),%edx
51b7ed:	89 45 cc             	mov    %eax,-0x34(%ebp)
51b7f0:	8b 47 40             	mov    0x40(%edi),%eax
51b7f3:	66 8b 44 48 fe       	mov    -0x2(%eax,%ecx,2),%ax
51b7f8:	8a e8                	mov    %al,%ch
51b7fa:	8a cc                	mov    %ah,%cl
51b7fc:	0f b7 47 1a          	movzwl 0x1a(%edi),%eax
51b800:	0f b7 c9             	movzwl %cx,%ecx
51b803:	23 c8                	and    %eax,%ecx
51b805:	8d 42 04             	lea    0x4(%edx),%eax
51b808:	03 ca                	add    %edx,%ecx
51b80a:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
51b80d:	3b c8                	cmp    %eax,%ecx
51b80f:	73 1e                	jae    0x51b82f
51b811:	68 8d 1d 01 00       	push   $0x11d8d
51b816:	e8 95 45 00 00       	call   0x51fdb0
51b81b:	83 c4 04             	add    $0x4,%esp
51b81e:	5f                   	pop    %edi
51b81f:	5b                   	pop    %ebx
51b820:	5e                   	pop    %esi
51b821:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b824:	33 cd                	xor    %ebp,%ecx
51b826:	e8 af 5c 0c 00       	call   0x5e14da
51b82b:	8b e5                	mov    %ebp,%esp
51b82d:	5d                   	pop    %ebp
51b82e:	c3                   	ret
51b82f:	8b 47 4c             	mov    0x4c(%edi),%eax
51b832:	51                   	push   %ecx
51b833:	57                   	push   %edi
51b834:	ff d0                	call   *%eax
51b836:	ff 77 48             	push   0x48(%edi)
51b839:	0f b7 c0             	movzwl %ax,%eax
51b83c:	89 45 d8             	mov    %eax,-0x28(%ebp)
51b83f:	8b 45 dc             	mov    -0x24(%ebp),%eax
51b842:	8b 40 50             	mov    0x50(%eax),%eax
51b845:	89 45 dc             	mov    %eax,-0x24(%ebp)
51b848:	e8 f3 80 01 00       	call   0x533940
51b84d:	83 c4 0c             	add    $0xc,%esp
51b850:	89 45 e0             	mov    %eax,-0x20(%ebp)
51b853:	85 c0                	test   %eax,%eax
51b855:	75 24                	jne    0x51b87b
51b857:	8d 45 e0             	lea    -0x20(%ebp),%eax
51b85a:	50                   	push   %eax
51b85b:	ff 75 cc             	push   -0x34(%ebp)
51b85e:	8b 45 d8             	mov    -0x28(%ebp),%eax
51b861:	ff 75 dc             	push   -0x24(%ebp)
51b864:	83 c0 04             	add    $0x4,%eax
51b867:	50                   	push   %eax
51b868:	8b 45 c4             	mov    -0x3c(%ebp),%eax
51b86b:	83 c0 fc             	add    $0xfffffffc,%eax
51b86e:	50                   	push   %eax
51b86f:	ff 75 d0             	push   -0x30(%ebp)
51b872:	53                   	push   %ebx
51b873:	e8 b8 b8 fe ff       	call   0x507130
51b878:	83 c4 1c             	add    $0x1c,%esp
51b87b:	8d 45 e0             	lea    -0x20(%ebp),%eax
51b87e:	50                   	push   %eax
51b87f:	0f b7 47 18          	movzwl 0x18(%edi),%eax
51b883:	ff 75 d8             	push   -0x28(%ebp)
51b886:	48                   	dec    %eax
51b887:	50                   	push   %eax
51b888:	57                   	push   %edi
51b889:	e8 42 2c fe ff       	call   0x4fe4d0
51b88e:	8b 45 e0             	mov    -0x20(%ebp),%eax
51b891:	83 c4 10             	add    $0x10,%esp
51b894:	85 c0                	test   %eax,%eax
51b896:	0f 85 ea 00 00 00    	jne    0x51b986
51b89c:	56                   	push   %esi
51b89d:	e8 ae 89 fd ff       	call   0x4f4250
51b8a2:	8b f8                	mov    %eax,%edi
51b8a4:	83 c4 04             	add    $0x4,%esp
51b8a7:	85 ff                	test   %edi,%edi
51b8a9:	0f 85 d5 00 00 00    	jne    0x51b984
51b8af:	0f be 4e 44          	movsbl 0x44(%esi),%ecx
51b8b3:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx
51b8b6:	7e 57                	jle    0x51b90f
51b8b8:	ff 76 74             	push   0x74(%esi)
51b8bb:	e8 00 68 ff ff       	call   0x5120c0
51b8c0:	fe 4e 44             	decb   0x44(%esi)
51b8c3:	83 c4 04             	add    $0x4,%esp
51b8c6:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b8ca:	8b 7d d4             	mov    -0x2c(%ebp),%edi
51b8cd:	3b c7                	cmp    %edi,%eax
51b8cf:	7e 24                	jle    0x51b8f5
51b8d1:	8a 4e 44             	mov    0x44(%esi),%cl
51b8d4:	0f be c1             	movsbl %cl,%eax
51b8d7:	fe c9                	dec    %cl
51b8d9:	8b 44 86 78          	mov    0x78(%esi,%eax,4),%eax
51b8dd:	88 4e 44             	mov    %cl,0x44(%esi)
51b8e0:	85 c0                	test   %eax,%eax
51b8e2:	74 09                	je     0x51b8ed
51b8e4:	50                   	push   %eax
51b8e5:	e8 d6 67 ff ff       	call   0x5120c0
51b8ea:	83 c4 04             	add    $0x4,%esp
51b8ed:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b8f1:	3b c7                	cmp    %edi,%eax
51b8f3:	7f dc                	jg     0x51b8d1
51b8f5:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b8f9:	56                   	push   %esi
51b8fa:	8b 44 86 78          	mov    0x78(%esi,%eax,4),%eax
51b8fe:	89 46 74             	mov    %eax,0x74(%esi)
51b901:	e8 4a 89 fd ff       	call   0x4f4250
51b906:	8b f8                	mov    %eax,%edi
51b908:	83 c4 04             	add    $0x4,%esp
51b90b:	85 ff                	test   %edi,%edi
51b90d:	75 75                	jne    0x51b984
51b90f:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
51b913:	74 4a                	je     0x51b95f
51b915:	c6 06 02             	movb   $0x2,(%esi)
51b918:	0f b7 43 18          	movzwl 0x18(%ebx),%eax
51b91c:	39 45 d0             	cmp    %eax,-0x30(%ebp)
51b91f:	72 24                	jb     0x51b945
51b921:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
51b928:	66 8b 43 18          	mov    0x18(%ebx),%ax
51b92c:	66 48                	dec    %ax
51b92e:	66 89 46 46          	mov    %ax,0x46(%esi)
51b932:	8b c7                	mov    %edi,%eax
51b934:	5f                   	pop    %edi
51b935:	5b                   	pop    %ebx
51b936:	5e                   	pop    %esi
51b937:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b93a:	33 cd                	xor    %ebp,%ecx
51b93c:	e8 99 5b 0c 00       	call   0x5e14da
51b941:	8b e5                	mov    %ebp,%esp
51b943:	5d                   	pop    %ebp
51b944:	c3                   	ret
51b945:	8b c7                	mov    %edi,%eax
51b947:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
51b94e:	5f                   	pop    %edi
51b94f:	5b                   	pop    %ebx
51b950:	5e                   	pop    %esi
51b951:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b954:	33 cd                	xor    %ebp,%ecx
51b956:	e8 7f 5b 0c 00       	call   0x5e14da
51b95b:	8b e5                	mov    %ebp,%esp
51b95d:	5d                   	pop    %ebp
51b95e:	c3                   	ret
51b95f:	56                   	push   %esi
51b960:	e8 cb e2 fe ff       	call   0x509c30
51b965:	83 c4 04             	add    $0x4,%esp
51b968:	8b f8                	mov    %eax,%edi
51b96a:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
51b96e:	74 0c                	je     0x51b97c
51b970:	56                   	push   %esi
51b971:	e8 8a bf fd ff       	call   0x4f7900
51b976:	83 c4 04             	add    $0x4,%esp
51b979:	c6 06 03             	movb   $0x3,(%esi)
51b97c:	33 c0                	xor    %eax,%eax
51b97e:	83 ff 10             	cmp    $0x10,%edi
51b981:	0f 44 f8             	cmove  %eax,%edi
51b984:	8b c7                	mov    %edi,%eax
51b986:	5f                   	pop    %edi
51b987:	5b                   	pop    %ebx
51b988:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b98b:	33 cd                	xor    %ebp,%ecx
51b98d:	5e                   	pop    %esi
51b98e:	e8 47 5b 0c 00       	call   0x5e14da
51b993:	8b e5                	mov    %ebp,%esp
51b995:	5d                   	pop    %ebp
51b996:	c3                   	ret
51b997:	cc                   	int3
51b998:	cc                   	int3
51b999:	cc                   	int3
51b99a:	cc                   	int3
51b99b:	cc                   	int3
51b99c:	cc                   	int3
51b99d:	cc                   	int3
51b99e:	cc                   	int3
51b99f:	cc                   	int3
51b9a0:	55                   	push   %ebp
51b9a1:	8b ec                	mov    %esp,%ebp
51b9a3:	56                   	push   %esi
51b9a4:	8b 75 08             	mov    0x8(%ebp),%esi
51b9a7:	57                   	push   %edi
51b9a8:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b9ac:	74 12                	je     0x51b9c0
51b9ae:	ff 46 0c             	incl   0xc(%esi)
51b9b1:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51b9b5:	75 09                	jne    0x51b9c0
51b9b7:	56                   	push   %esi
51b9b8:	e8 13 b6 fd ff       	call   0x4f6fd0
51b9bd:	83 c4 04             	add    $0x4,%esp
51b9c0:	ff 75 10             	push   0x10(%ebp)
51b9c3:	ff 75 0c             	push   0xc(%ebp)
51b9c6:	56                   	push   %esi
51b9c7:	e8 a4 ae fd ff       	call   0x4f6870
51b9cc:	83 c4 0c             	add    $0xc,%esp
51b9cf:	8b f8                	mov    %eax,%edi
51b9d1:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b9d5:	74 0f                	je     0x51b9e6
51b9d7:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51b9db:	75 09                	jne    0x51b9e6
51b9dd:	56                   	push   %esi
51b9de:	e8 ed cf 03 00       	call   0x5589d0
51b9e3:	83 c4 04             	add    $0x4,%esp
51b9e6:	8b c7                	mov    %edi,%eax
51b9e8:	5f                   	pop    %edi
51b9e9:	5e                   	pop    %esi
51b9ea:	5d                   	pop    %ebp
51b9eb:	c3                   	ret
51b9ec:	cc                   	int3
51b9ed:	cc                   	int3
51b9ee:	cc                   	int3
51b9ef:	cc                   	int3
51b9f0:	55                   	push   %ebp
51b9f1:	8b ec                	mov    %esp,%ebp
51b9f3:	8b 45 08             	mov    0x8(%ebp),%eax
51b9f6:	80 78 09 00          	cmpb   $0x0,0x9(%eax)
51b9fa:	74 12                	je     0x51ba0e
51b9fc:	ff 40 0c             	incl   0xc(%eax)
51b9ff:	80 78 0a 00          	cmpb   $0x0,0xa(%eax)
51ba03:	75 09                	jne    0x51ba0e
51ba05:	89 45 08             	mov    %eax,0x8(%ebp)
51ba08:	5d                   	pop    %ebp
51ba09:	e9 c2 b5 fd ff       	jmp    0x4f6fd0
51ba0e:	5d                   	pop    %ebp
51ba0f:	c3                   	ret
51ba10:	55                   	push   %ebp
51ba11:	8b ec                	mov    %esp,%ebp
51ba13:	ff 75 08             	push   0x8(%ebp)
51ba16:	e8 15 e2 fe ff       	call   0x509c30
51ba1b:	83 c4 04             	add    $0x4,%esp
51ba1e:	85 c0                	test   %eax,%eax
51ba20:	75 16                	jne    0x51ba38
51ba22:	8b 45 0c             	mov    0xc(%ebp),%eax
51ba25:	ff 75 08             	push   0x8(%ebp)
51ba28:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
51ba2e:	e8 ed df fe ff       	call   0x509a20
51ba33:	83 c4 04             	add    $0x4,%esp
51ba36:	5d                   	pop    %ebp
51ba37:	c3                   	ret
51ba38:	83 f8 10             	cmp    $0x10,%eax
51ba3b:	75 0b                	jne    0x51ba48
51ba3d:	8b 45 0c             	mov    0xc(%ebp),%eax
51ba40:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
51ba46:	33 c0                	xor    %eax,%eax
51ba48:	5d                   	pop    %ebp
51ba49:	c3                   	ret
51ba4a:	cc                   	int3
51ba4b:	cc                   	int3
51ba4c:	cc                   	int3
51ba4d:	cc                   	int3
51ba4e:	cc                   	int3
51ba4f:	cc                   	int3
51ba50:	55                   	push   %ebp
51ba51:	8b ec                	mov    %esp,%ebp
51ba53:	53                   	push   %ebx
51ba54:	56                   	push   %esi
51ba55:	8b 75 08             	mov    0x8(%ebp),%esi
51ba58:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51ba5c:	74 12                	je     0x51ba70
51ba5e:	ff 46 0c             	incl   0xc(%esi)
51ba61:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51ba65:	75 09                	jne    0x51ba70
51ba67:	56                   	push   %esi
51ba68:	e8 63 b5 fd ff       	call   0x4f6fd0
51ba6d:	83 c4 04             	add    $0x4,%esp
51ba70:	8b 46 04             	mov    0x4(%esi),%eax
51ba73:	33 db                	xor    %ebx,%ebx
51ba75:	38 58 11             	cmp    %bl,0x11(%eax)
51ba78:	74 07                	je     0x51ba81
51ba7a:	38 58 12             	cmp    %bl,0x12(%eax)
51ba7d:	0f 95 c3             	setne  %bl
51ba80:	43                   	inc    %ebx
51ba81:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51ba85:	74 0f                	je     0x51ba96
51ba87:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51ba8b:	75 09                	jne    0x51ba96
51ba8d:	56                   	push   %esi
51ba8e:	e8 3d cf 03 00       	call   0x5589d0
51ba93:	83 c4 04             	add    $0x4,%esp
51ba96:	5e                   	pop    %esi
51ba97:	8b c3                	mov    %ebx,%eax
51ba99:	5b                   	pop    %ebx
51ba9a:	5d                   	pop    %ebp
51ba9b:	c3                   	ret
51ba9c:	cc                   	int3
51ba9d:	cc                   	int3
51ba9e:	cc                   	int3
51ba9f:	cc                   	int3
51baa0:	55                   	push   %ebp
51baa1:	8b ec                	mov    %esp,%ebp
51baa3:	8b 45 08             	mov    0x8(%ebp),%eax