554953:	85 c0                	test   %eax,%eax
554955:	7e 62                	jle    0x5549b9
554957:	8b 7d e0             	mov    -0x20(%ebp),%edi
55495a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
554960:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554963:	39 4e 70             	cmp    %ecx,0x70(%esi)
554966:	7f 15                	jg     0x55497d
554968:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
55496b:	50                   	push   %eax
55496c:	53                   	push   %ebx
55496d:	ff 75 c8             	push   -0x38(%ebp)
554970:	6a 59                	push   $0x59
554972:	56                   	push   %esi
554973:	e8 88 1b fb ff       	call   0x506500
554978:	83 c4 14             	add    $0x14,%esp
55497b:	eb 2e                	jmp    0x5549ab
55497d:	8d 41 01             	lea    0x1(%ecx),%eax
554980:	89 46 6c             	mov    %eax,0x6c(%esi)
554983:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554986:	8b 46 68             	mov    0x68(%esi),%eax
554989:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
554990:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
554994:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
55499b:	00
55499c:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
55499f:	8b 45 c8             	mov    -0x38(%ebp),%eax
5549a2:	89 41 04             	mov    %eax,0x4(%ecx)
5549a5:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
5549a8:	89 41 0c             	mov    %eax,0xc(%ecx)
5549ab:	8b 45 dc             	mov    -0x24(%ebp),%eax
5549ae:	43                   	inc    %ebx
5549af:	3b d8                	cmp    %eax,%ebx
5549b1:	7c ad                	jl     0x554960
5549b3:	8b 7d d4             	mov    -0x2c(%ebp),%edi
5549b6:	8b 55 e0             	mov    -0x20(%ebp),%edx
5549b9:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5549bc:	39 4e 70             	cmp    %ecx,0x70(%esi)
5549bf:	7f 15                	jg     0x5549d6
5549c1:	ff 75 d8             	push   -0x28(%ebp)
5549c4:	50                   	push   %eax
5549c5:	52                   	push   %edx
5549c6:	6a 5b                	push   $0x5b
5549c8:	56                   	push   %esi
5549c9:	e8 32 1b fb ff       	call   0x506500
5549ce:	8b 55 e0             	mov    -0x20(%ebp),%edx
5549d1:	83 c4 14             	add    $0x14,%esp
5549d4:	eb 2d                	jmp    0x554a03
5549d6:	8b 5d dc             	mov    -0x24(%ebp),%ebx
5549d9:	8d 41 01             	lea    0x1(%ecx),%eax
5549dc:	89 46 6c             	mov    %eax,0x6c(%esi)
5549df:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5549e2:	8b 46 68             	mov    0x68(%esi),%eax
5549e5:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5549e9:	8b 5d d8             	mov    -0x28(%ebp),%ebx
5549ec:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
5549f3:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5549f7:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
5549fb:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554a02:	00
554a03:	8b 47 08             	mov    0x8(%edi),%eax
554a06:	8b 5d 08             	mov    0x8(%ebp),%ebx
554a09:	85 c0                	test   %eax,%eax
554a0b:	0f 84 a4 01 00 00    	je     0x554bb5
554a11:	8b 08                	mov    (%eax),%ecx
554a13:	6a 00                	push   $0x0
554a15:	89 4d e0             	mov    %ecx,-0x20(%ebp)
554a18:	8b 4f 4c             	mov    0x4c(%edi),%ecx
554a1b:	6a 00                	push   $0x0
554a1d:	50                   	push   %eax
554a1e:	03 ca                	add    %edx,%ecx
554a20:	53                   	push   %ebx
554a21:	89 4d dc             	mov    %ecx,-0x24(%ebp)
554a24:	e8 47 b2 fd ff       	call   0x52fc70
554a29:	ff 43 2c             	incl   0x2c(%ebx)
554a2c:	83 c4 10             	add    $0x10,%esp
554a2f:	8b 56 6c             	mov    0x6c(%esi),%edx
554a32:	89 45 c8             	mov    %eax,-0x38(%ebp)
554a35:	8b 43 2c             	mov    0x2c(%ebx),%eax
554a38:	89 45 f4             	mov    %eax,-0xc(%ebp)
554a3b:	8b 47 44             	mov    0x44(%edi),%eax
554a3e:	89 45 c4             	mov    %eax,-0x3c(%ebp)
554a41:	89 55 d0             	mov    %edx,-0x30(%ebp)
554a44:	39 56 70             	cmp    %edx,0x70(%esi)
554a47:	7f 18                	jg     0x554a61
554a49:	8b 55 e0             	mov    -0x20(%ebp),%edx
554a4c:	52                   	push   %edx
554a4d:	50                   	push   %eax
554a4e:	ff 75 dc             	push   -0x24(%ebp)
554a51:	6a 56                	push   $0x56
554a53:	56                   	push   %esi
554a54:	e8 a7 1a fb ff       	call   0x506500
554a59:	83 c4 14             	add    $0x14,%esp
554a5c:	89 45 d0             	mov    %eax,-0x30(%ebp)
554a5f:	eb 30                	jmp    0x554a91
554a61:	8d 42 01             	lea    0x1(%edx),%eax
554a64:	89 46 6c             	mov    %eax,0x6c(%esi)
554a67:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
554a6a:	8b 46 68             	mov    0x68(%esi),%eax
554a6d:	8b 55 dc             	mov    -0x24(%ebp),%edx
554a70:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554a74:	8b 55 c4             	mov    -0x3c(%ebp),%edx
554a77:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
554a7b:	8b 55 e0             	mov    -0x20(%ebp),%edx
554a7e:	c7 04 88 56 00 00 00 	movl   $0x56,(%eax,%ecx,4)
554a85:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554a89:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554a90:	00
554a91:	8b 06                	mov    (%esi),%eax
554a93:	8b 55 c8             	mov    -0x38(%ebp),%edx
554a96:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
554a9a:	74 0e                	je     0x554aaa
554a9c:	52                   	push   %edx
554a9d:	6a f7                	push   $0xfffffff7
554a9f:	50                   	push   %eax
554aa0:	e8 0b f2 fa ff       	call   0x503cb0
554aa5:	83 c4 0c             	add    $0xc,%esp
554aa8:	eb 12                	jmp    0x554abc
554aaa:	8b 46 6c             	mov    0x6c(%esi),%eax
554aad:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
554ab0:	8b 46 68             	mov    0x68(%esi),%eax
554ab3:	c6 44 88 ed f7       	movb   $0xf7,-0x13(%eax,%ecx,4)
554ab8:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
554abc:	8b 45 d0             	mov    -0x30(%ebp),%eax
554abf:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554ac2:	8d 50 02             	lea    0x2(%eax),%edx
554ac5:	83 c0 04             	add    $0x4,%eax
554ac8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
554acb:	39 4e 70             	cmp    %ecx,0x70(%esi)
554ace:	7f 10                	jg     0x554ae0
554ad0:	52                   	push   %edx
554ad1:	50                   	push   %eax
554ad2:	52                   	push   %edx
554ad3:	6a 10                	push   $0x10
554ad5:	56                   	push   %esi
554ad6:	e8 25 1a fb ff       	call   0x506500
554adb:	83 c4 14             	add    $0x14,%esp
554ade:	eb 2d                	jmp    0x554b0d
554ae0:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
554ae3:	8d 41 01             	lea    0x1(%ecx),%eax
554ae6:	89 46 6c             	mov    %eax,0x6c(%esi)
554ae9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554aec:	8b 46 68             	mov    0x68(%esi),%eax
554aef:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
554af3:	8b 5d 08             	mov    0x8(%ebp),%ebx
554af6:	c7 04 88 10 00 00 00 	movl   $0x10,(%eax,%ecx,4)
554afd:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554b01:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554b05:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554b0c:	00
554b0d:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554b10:	89 4d d0             	mov    %ecx,-0x30(%ebp)
554b13:	39 4e 70             	cmp    %ecx,0x70(%esi)
554b16:	7f 17                	jg     0x554b2f
554b18:	6a 00                	push   $0x0
554b1a:	6a 00                	push   $0x0
554b1c:	ff 75 f4             	push   -0xc(%ebp)
554b1f:	6a 0c                	push   $0xc
554b21:	56                   	push   %esi
554b22:	e8 d9 19 fb ff       	call   0x506500
554b27:	83 c4 14             	add    $0x14,%esp
554b2a:	89 45 d0             	mov    %eax,-0x30(%ebp)
554b2d:	eb 32                	jmp    0x554b61
554b2f:	8b 55 f4             	mov    -0xc(%ebp),%edx
554b32:	8d 41 01             	lea    0x1(%ecx),%eax
554b35:	89 46 6c             	mov    %eax,0x6c(%esi)
554b38:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554b3b:	8b 46 68             	mov    0x68(%esi),%eax
554b3e:	c7 04 88 0c 00 00 00 	movl   $0xc,(%eax,%ecx,4)
554b45:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554b49:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
554b50:	00
554b51:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
554b58:	00
554b59:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554b60:	00
554b61:	8b 55 e0             	mov    -0x20(%ebp),%edx
554b64:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554b67:	4a                   	dec    %edx
554b68:	8b 47 44             	mov    0x44(%edi),%eax
554b6b:	89 45 c4             	mov    %eax,-0x3c(%ebp)
554b6e:	39 4e 70             	cmp    %ecx,0x70(%esi)
554b71:	7f 12                	jg     0x554b85
554b73:	52                   	push   %edx
554b74:	50                   	push   %eax
554b75:	ff 75 dc             	push   -0x24(%ebp)
554b78:	6a 4d                	push   $0x4d
554b7a:	56                   	push   %esi
554b7b:	e8 80 19 fb ff       	call   0x506500
554b80:	83 c4 14             	add    $0x14,%esp
554b83:	eb 30                	jmp    0x554bb5
554b85:	8b 5d dc             	mov    -0x24(%ebp),%ebx
554b88:	8d 41 01             	lea    0x1(%ecx),%eax
554b8b:	89 46 6c             	mov    %eax,0x6c(%esi)
554b8e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554b91:	8b 46 68             	mov    0x68(%esi),%eax
554b94:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
554b98:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
554b9b:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
554b9f:	8b 5d 08             	mov    0x8(%ebp),%ebx
554ba2:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
554ba9:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554bad:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554bb4:	00
554bb5:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554bb8:	39 4e 70             	cmp    %ecx,0x70(%esi)
554bbb:	7f 19                	jg     0x554bd6
554bbd:	8b 55 e4             	mov    -0x1c(%ebp),%edx
554bc0:	6a 00                	push   $0x0
554bc2:	52                   	push   %edx
554bc3:	ff 75 18             	push   0x18(%ebp)
554bc6:	6a 78                	push   $0x78
554bc8:	56                   	push   %esi
554bc9:	e8 32 19 fb ff       	call   0x506500
554bce:	8b 55 e4             	mov    -0x1c(%ebp),%edx
554bd1:	83 c4 14             	add    $0x14,%esp
554bd4:	eb 31                	jmp    0x554c07
554bd6:	8b 55 18             	mov    0x18(%ebp),%edx
554bd9:	8d 41 01             	lea    0x1(%ecx),%eax
554bdc:	89 46 6c             	mov    %eax,0x6c(%esi)
554bdf:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554be2:	8b 46 68             	mov    0x68(%esi),%eax
554be5:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554be9:	8b 55 e4             	mov    -0x1c(%ebp),%edx
554bec:	c7 04 88 78 00 00 00 	movl   $0x78,(%eax,%ecx,4)
554bf3:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
554bf7:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
554bfe:	00
554bff:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554c06:	00
554c07:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554c0a:	39 4e 70             	cmp    %ecx,0x70(%esi)
554c0d:	7f 14                	jg     0x554c23
554c0f:	52                   	push   %edx
554c10:	ff 75 d8             	push   -0x28(%ebp)
554c13:	ff 75 18             	push   0x18(%ebp)
554c16:	6a 79                	push   $0x79
554c18:	56                   	push   %esi
554c19:	e8 e2 18 fb ff       	call   0x506500
554c1e:	83 c4 14             	add    $0x14,%esp
554c21:	eb 30                	jmp    0x554c53
554c23:	8b 5d 18             	mov    0x18(%ebp),%ebx
554c26:	8d 41 01             	lea    0x1(%ecx),%eax
554c29:	89 46 6c             	mov    %eax,0x6c(%esi)
554c2c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554c2f:	8b 46 68             	mov    0x68(%esi),%eax
554c32:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
554c36:	8b 5d d8             	mov    -0x28(%ebp),%ebx
554c39:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
554c3d:	8b 5d 08             	mov    0x8(%ebp),%ebx
554c40:	c7 04 88 79 00 00 00 	movl   $0x79,(%eax,%ecx,4)
554c47:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554c4b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554c52:	00
554c53:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554c56:	8b 57 54             	mov    0x54(%edi),%edx
554c59:	89 4d d8             	mov    %ecx,-0x28(%ebp)
554c5c:	39 4e 70             	cmp    %ecx,0x70(%esi)
554c5f:	7f 16                	jg     0x554c77
554c61:	ff 75 e4             	push   -0x1c(%ebp)
554c64:	6a 00                	push   $0x0
554c66:	52                   	push   %edx
554c67:	6a 34                	push   $0x34
554c69:	56                   	push   %esi
554c6a:	e8 91 18 fb ff       	call   0x506500
554c6f:	83 c4 14             	add    $0x14,%esp
554c72:	89 45 d8             	mov    %eax,-0x28(%ebp)
554c75:	eb 31                	jmp    0x554ca8
554c77:	8b 5d 08             	mov    0x8(%ebp),%ebx
554c7a:	8d 41 01             	lea    0x1(%ecx),%eax
554c7d:	89 46 6c             	mov    %eax,0x6c(%esi)
554c80:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554c83:	8b 46 68             	mov    0x68(%esi),%eax
554c86:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554c8a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
554c8d:	c7 04 88 34 00 00 00 	movl   $0x34,(%eax,%ecx,4)
554c94:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
554c9b:	00
554c9c:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554ca0:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554ca7:	00
554ca8:	57                   	push   %edi
554ca9:	53                   	push   %ebx
554caa:	e8 31 32 01 00       	call   0x567ee0
554caf:	89 45 a4             	mov    %eax,-0x5c(%ebp)
554cb2:	83 c4 08             	add    $0x8,%esp
554cb5:	8b 45 0c             	mov    0xc(%ebp),%eax
554cb8:	85 c0                	test   %eax,%eax
554cba:	74 26                	je     0x554ce2
554cbc:	50                   	push   %eax
554cbd:	ff 77 18             	push   0x18(%edi)
554cc0:	53                   	push   %ebx
554cc1:	e8 0a ef fc ff       	call   0x523bd0
554cc6:	8b 55 0c             	mov    0xc(%ebp),%edx
554cc9:	33 c0                	xor    %eax,%eax
554ccb:	80 7f 10 59          	cmpb   $0x59,0x10(%edi)
554ccf:	b9 03 00 00 00       	mov    $0x3,%ecx
554cd4:	0f 44 c1             	cmove  %ecx,%eax
554cd7:	50                   	push   %eax
554cd8:	52                   	push   %edx
554cd9:	53                   	push   %ebx
554cda:	e8 71 1e 01 00       	call   0x566b50
554cdf:	83 c4 18             	add    $0x18,%esp
554ce2:	8b 45 fc             	mov    -0x4(%ebp),%eax
554ce5:	85 c0                	test   %eax,%eax
554ce7:	74 28                	je     0x554d11
554ce9:	50                   	push   %eax
554cea:	ff 77 1c             	push   0x1c(%edi)
554ced:	53                   	push   %ebx
554cee:	e8 dd ee fc ff       	call   0x523bd0
554cf3:	80 7f 10 59          	cmpb   $0x59,0x10(%edi)
554cf7:	b9 04 00 00 00       	mov    $0x4,%ecx
554cfc:	b8 01 00 00 00       	mov    $0x1,%eax
554d01:	0f 44 c1             	cmove  %ecx,%eax
554d04:	50                   	push   %eax
554d05:	ff 75 fc             	push   -0x4(%ebp)
554d08:	53                   	push   %ebx
554d09:	e8 42 1e 01 00       	call   0x566b50
554d0e:	83 c4 18             	add    $0x18,%esp
554d11:	80 7f 10 59          	cmpb   $0x59,0x10(%edi)
554d15:	8b 55 0c             	mov    0xc(%ebp),%edx
554d18:	0f 84 af 01 00 00    	je     0x554ecd
554d1e:	8a 47 11             	mov    0x11(%edi),%al
554d21:	3a 47 12             	cmp    0x12(%edi),%al
554d24:	0f 85 a3 01 00 00    	jne    0x554ecd
554d2a:	85 d2                	test   %edx,%edx
554d2c:	0f 84 9b 01 00 00    	je     0x554ecd
554d32:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554d35:	33 d2                	xor    %edx,%edx
554d37:	3c 56                	cmp    $0x56,%al
554d39:	89 4d c8             	mov    %ecx,-0x38(%ebp)
554d3c:	0f 94 c2             	sete   %dl
554d3f:	8d 14 55 37 00 00 00 	lea    0x37(,%edx,2),%edx
554d46:	39 4e 70             	cmp    %ecx,0x70(%esi)
554d49:	7f 17                	jg     0x554d62
554d4b:	ff 75 fc             	push   -0x4(%ebp)
554d4e:	6a 00                	push   $0x0
554d50:	ff 75 0c             	push   0xc(%ebp)
554d53:	52                   	push   %edx
554d54:	56                   	push   %esi
554d55:	e8 a6 17 fb ff       	call   0x506500
554d5a:	83 c4 14             	add    $0x14,%esp
554d5d:	89 45 c8             	mov    %eax,-0x38(%ebp)
554d60:	eb 39                	jmp    0x554d9b
554d62:	8d 41 01             	lea    0x1(%ecx),%eax
554d65:	89 46 6c             	mov    %eax,0x6c(%esi)
554d68:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554d6b:	8b 46 68             	mov    0x68(%esi),%eax
554d6e:	88 14 88             	mov    %dl,(%eax,%ecx,4)
554d71:	33 d2                	xor    %edx,%edx
554d73:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)