550c27:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
550c2d:	0f 1f 00             	nopl   (%eax)
550c30:	8b 4e 0c             	mov    0xc(%esi),%ecx
550c33:	33 c0                	xor    %eax,%eax
550c35:	8b 5e 14             	mov    0x14(%esi),%ebx
550c38:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
550c3e:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
550c44:	85 c9                	test   %ecx,%ecx
550c46:	0f 8e 54 1f 00 00    	jle    0x552ba0
550c4c:	0f 1f 40 00          	nopl   0x0(%eax)
550c50:	0f b7 53 0a          	movzwl 0xa(%ebx),%edx
550c54:	33 f6                	xor    %esi,%esi
550c56:	f6 c2 06             	test   $0x6,%dl
550c59:	0f 85 23 1f 00 00    	jne    0x552b82
550c5f:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
550c65:	8b bd 2c ff ff ff    	mov    -0xd4(%ebp),%edi
550c6b:	8b 4b 28             	mov    0x28(%ebx),%ecx
550c6e:	23 48 50             	and    0x50(%eax),%ecx
550c71:	8b 43 2c             	mov    0x2c(%ebx),%eax
550c74:	23 47 54             	and    0x54(%edi),%eax
550c77:	0b c8                	or     %eax,%ecx
550c79:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
550c7f:	0f 84 68 1d 00 00    	je     0x5529ed
550c85:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
550c8b:	83 48 30 02          	orl    $0x2,0x30(%eax)
550c8f:	e9 e8 1e 00 00       	jmp    0x552b7c
550c94:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
550c9a:	8b 50 24             	mov    0x24(%eax),%edx
550c9d:	f7 c2 00 04 00 00    	test   $0x400,%edx
550ca3:	0f 84 51 05 00 00    	je     0x5511fa
550ca9:	8b d0                	mov    %eax,%edx
550cab:	0f b7 42 28          	movzwl 0x28(%edx),%eax
550caf:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
550cb5:	8d 48 02             	lea    0x2(%eax),%ecx
550cb8:	83 f9 01             	cmp    $0x1,%ecx
550cbb:	75 2c                	jne    0x550ce9
550cbd:	8a 43 13             	mov    0x13(%ebx),%al
550cc0:	84 c0                	test   %al,%al
550cc2:	75 0e                	jne    0x550cd2
550cc4:	ff 43 2c             	incl   0x2c(%ebx)
550cc7:	8b 43 2c             	mov    0x2c(%ebx),%eax
550cca:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
550cd0:	eb 4a                	jmp    0x550d1c
550cd2:	fe c8                	dec    %al
550cd4:	88 43 13             	mov    %al,0x13(%ebx)
550cd7:	0f b6 c0             	movzbl %al,%eax
550cda:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
550ce1:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
550ce7:	eb 33                	jmp    0x550d1c
550ce9:	8b 53 1c             	mov    0x1c(%ebx),%edx
550cec:	8b 43 20             	mov    0x20(%ebx),%eax
550cef:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
550cf5:	3b ca                	cmp    %edx,%ecx
550cf7:	7f 0c                	jg     0x550d05
550cf9:	03 c1                	add    %ecx,%eax
550cfb:	2b d1                	sub    %ecx,%edx
550cfd:	89 43 20             	mov    %eax,0x20(%ebx)
550d00:	89 53 1c             	mov    %edx,0x1c(%ebx)
550d03:	eb 11                	jmp    0x550d16
550d05:	8b 43 2c             	mov    0x2c(%ebx),%eax
550d08:	8d 50 01             	lea    0x1(%eax),%edx
550d0b:	03 c1                	add    %ecx,%eax
550d0d:	89 95 48 ff ff ff    	mov    %edx,-0xb8(%ebp)
550d13:	89 43 2c             	mov    %eax,0x2c(%ebx)
550d16:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
550d1c:	8b 46 0c             	mov    0xc(%esi),%eax
550d1f:	33 f6                	xor    %esi,%esi
550d21:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
550d27:	39 b5 54 ff ff ff    	cmp    %esi,-0xac(%ebp)
550d2d:	7e 65                	jle    0x550d94
550d2f:	8b bd 2c ff ff ff    	mov    -0xd4(%ebp),%edi
550d35:	8b 42 30             	mov    0x30(%edx),%eax
550d38:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
550d3b:	85 c9                	test   %ecx,%ecx
550d3d:	74 46                	je     0x550d85
550d3f:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
550d45:	83 c0 02             	add    $0x2,%eax
550d48:	03 c6                	add    %esi,%eax
550d4a:	f6 41 0c 01          	testb  $0x1,0xc(%ecx)
550d4e:	74 1e                	je     0x550d6e
550d50:	50                   	push   %eax
550d51:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
550d57:	56                   	push   %esi
550d58:	57                   	push   %edi
550d59:	51                   	push   %ecx
550d5a:	53                   	push   %ebx
550d5b:	e8 d0 8c fa ff       	call   0x4f9a30
550d60:	8b 47 10             	mov    0x10(%edi),%eax
550d63:	83 c4 18             	add    $0x18,%esp
550d66:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
550d6c:	eb 11                	jmp    0x550d7f
550d6e:	6a 01                	push   $0x1
550d70:	50                   	push   %eax
550d71:	8b 01                	mov    (%ecx),%eax
550d73:	ff 70 10             	push   0x10(%eax)
550d76:	53                   	push   %ebx
550d77:	e8 44 92 fa ff       	call   0x4f9fc0
550d7c:	83 c4 10             	add    $0x10,%esp
550d7f:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
550d85:	46                   	inc    %esi
550d86:	3b b5 54 ff ff ff    	cmp    -0xac(%ebp),%esi
550d8c:	7c a7                	jl     0x550d35
550d8e:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
550d94:	8b 4f 6c             	mov    0x6c(%edi),%ecx
550d97:	8b 52 18             	mov    0x18(%edx),%edx
550d9a:	39 4f 70             	cmp    %ecx,0x70(%edi)
550d9d:	7f 16                	jg     0x550db5
550d9f:	6a 00                	push   $0x0
550da1:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
550da7:	52                   	push   %edx
550da8:	6a 45                	push   $0x45
550daa:	57                   	push   %edi
550dab:	e8 50 57 fb ff       	call   0x506500
550db0:	83 c4 14             	add    $0x14,%esp
550db3:	eb 31                	jmp    0x550de6
550db5:	8d 41 01             	lea    0x1(%ecx),%eax
550db8:	89 47 6c             	mov    %eax,0x6c(%edi)
550dbb:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
550dbe:	8b 47 68             	mov    0x68(%edi),%eax
550dc1:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
550dc5:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
550dcb:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
550dd2:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
550dd6:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
550ddd:	00
550dde:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550de5:	00
550de6:	8b b5 48 ff ff ff    	mov    -0xb8(%ebp),%esi
550dec:	8b 4f 6c             	mov    0x6c(%edi),%ecx
550def:	46                   	inc    %esi
550df0:	39 4f 70             	cmp    %ecx,0x70(%edi)
550df3:	7f 16                	jg     0x550e0b
550df5:	6a 00                	push   $0x0
550df7:	56                   	push   %esi
550df8:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
550dfe:	6a 45                	push   $0x45
550e00:	57                   	push   %edi
550e01:	e8 fa 56 fb ff       	call   0x506500
550e06:	83 c4 14             	add    $0x14,%esp
550e09:	eb 31                	jmp    0x550e3c
550e0b:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
550e11:	8d 41 01             	lea    0x1(%ecx),%eax
550e14:	89 47 6c             	mov    %eax,0x6c(%edi)
550e17:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
550e1a:	8b 47 68             	mov    0x68(%edi),%eax
550e1d:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
550e24:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
550e28:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
550e2c:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
550e33:	00
550e34:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550e3b:	00
550e3c:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
550e42:	83 ce ff             	or     $0xffffffff,%esi
550e45:	8b 57 6c             	mov    0x6c(%edi),%edx
550e48:	b9 f9 ff ff ff       	mov    $0xfffffff9,%ecx
550e4d:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
550e51:	8b 40 20             	mov    0x20(%eax),%eax
550e54:	0f 45 f1             	cmovne %ecx,%esi
550e57:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
550e5d:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
550e63:	39 57 70             	cmp    %edx,0x70(%edi)
550e66:	7f 21                	jg     0x550e89
550e68:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
550e6e:	ff b5 58 ff ff ff    	push   -0xa8(%ebp)
550e74:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
550e7a:	6a 09                	push   $0x9
550e7c:	57                   	push   %edi
550e7d:	e8 7e 56 fb ff       	call   0x506500
550e82:	83 c4 14             	add    $0x14,%esp
550e85:	8b d0                	mov    %eax,%edx
550e87:	eb 3f                	jmp    0x550ec8
550e89:	8b 9d 40 ff ff ff    	mov    -0xc0(%ebp),%ebx
550e8f:	8d 42 01             	lea    0x1(%edx),%eax
550e92:	89 47 6c             	mov    %eax,0x6c(%edi)
550e95:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
550e98:	8b 47 68             	mov    0x68(%edi),%eax
550e9b:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
550e9f:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
550ea5:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
550ea9:	8b 9d 48 ff ff ff    	mov    -0xb8(%ebp),%ebx
550eaf:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
550eb3:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
550eb9:	c7 04 88 09 00 00 00 	movl   $0x9,(%eax,%ecx,4)
550ec0:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550ec7:	00
550ec8:	8b 0f                	mov    (%edi),%ecx
550eca:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
550ece:	74 18                	je     0x550ee8
550ed0:	83 fe f4             	cmp    $0xfffffff4,%esi
550ed3:	74 74                	je     0x550f49
550ed5:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550edb:	50                   	push   %eax
550edc:	56                   	push   %esi
550edd:	51                   	push   %ecx
550ede:	e8 cd 2d fb ff       	call   0x503cb0
550ee3:	83 c4 0c             	add    $0xc,%esp
550ee6:	eb 61                	jmp    0x550f49
550ee8:	85 d2                	test   %edx,%edx
550eea:	79 04                	jns    0x550ef0
550eec:	8b 57 6c             	mov    0x6c(%edi),%edx
550eef:	4a                   	dec    %edx
550ef0:	8b 47 68             	mov    0x68(%edi),%eax
550ef3:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
550ef6:	8d 14 88             	lea    (%eax,%ecx,4),%edx
550ef9:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
550eff:	85 c0                	test   %eax,%eax
550f01:	79 34                	jns    0x550f37
550f03:	80 7a 01 00          	cmpb   $0x0,0x1(%edx)
550f07:	75 2e                	jne    0x550f37
550f09:	83 f8 fd             	cmp    $0xfffffffd,%eax
550f0c:	75 0f                	jne    0x550f1d
550f0e:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550f14:	89 42 10             	mov    %eax,0x10(%edx)
550f17:	c6 42 01 fd          	movb   $0xfd,0x1(%edx)
550f1b:	eb 2c                	jmp    0x550f49
550f1d:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
550f23:	85 c9                	test   %ecx,%ecx
550f25:	74 22                	je     0x550f49
550f27:	89 4a 10             	mov    %ecx,0x10(%edx)
550f2a:	88 42 01             	mov    %al,0x1(%edx)
550f2d:	83 f8 f4             	cmp    $0xfffffff4,%eax
550f30:	75 17                	jne    0x550f49
550f32:	ff 41 0c             	incl   0xc(%ecx)
550f35:	eb 12                	jmp    0x550f49
550f37:	50                   	push   %eax
550f38:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550f3e:	50                   	push   %eax
550f3f:	52                   	push   %edx
550f40:	57                   	push   %edi
550f41:	e8 fa 8c 00 00       	call   0x559c40
550f46:	83 c4 10             	add    $0x10,%esp
550f49:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
550f4f:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
550f55:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550f5b:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
550f61:	c6 42 1c 00          	movb   $0x0,0x1c(%edx)
550f65:	89 46 38             	mov    %eax,0x38(%esi)
550f68:	b8 3d 00 00 00       	mov    $0x3d,%eax
550f6d:	80 79 2e 00          	cmpb   $0x0,0x2e(%ecx)
550f71:	b9 ad 00 00 00       	mov    $0xad,%ecx
550f76:	0f 45 c1             	cmovne %ecx,%eax
550f79:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
550f7f:	88 46 35             	mov    %al,0x35(%esi)
550f82:	83 e9 01             	sub    $0x1,%ecx
550f85:	8b 47 6c             	mov    0x6c(%edi),%eax
550f88:	89 46 3c             	mov    %eax,0x3c(%esi)
550f8b:	8b 46 40             	mov    0x40(%esi),%eax
550f8e:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
550f94:	89 8d 3c ff ff ff    	mov    %ecx,-0xc4(%ebp)
550f9a:	0f 88 78 fc ff ff    	js     0x550c18
550fa0:	8b 42 30             	mov    0x30(%edx),%eax
550fa3:	8b 04 88             	mov    (%eax,%ecx,4),%eax
550fa6:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
550fac:	66 8b 50 0c          	mov    0xc(%eax),%dx
550fb0:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550fb6:	66 83 e2 01          	and    $0x1,%dx
550fba:	8d 40 ff             	lea    -0x1(%eax),%eax
550fbd:	0f 44 85 50 ff ff ff 	cmove  -0xb0(%ebp),%eax
550fc4:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
550fca:	83 f9 10             	cmp    $0x10,%ecx
550fcd:	7d 2c                	jge    0x550ffb
550fcf:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
550fd5:	66 8b 40 1e          	mov    0x1e(%eax),%ax
550fd9:	66 d3 e8             	shr    %cl,%ax
550fdc:	a8 01                	test   $0x1,%al
550fde:	74 15                	je     0x550ff5
550fe0:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
550fe6:	50                   	push   %eax
550fe7:	56                   	push   %esi
550fe8:	e8 13 cf fa ff       	call   0x4fdf00
550fed:	83 c4 08             	add    $0x8,%esp
550ff0:	e9 e5 01 00 00       	jmp    0x5511da
550ff5:	8b 8d 3c ff ff ff    	mov    -0xc4(%ebp),%ecx
550ffb:	66 85 d2             	test   %dx,%dx
550ffe:	0f 84 dc 01 00 00    	je     0x5511e0
551004:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
55100a:	8b 00                	mov    (%eax),%eax
55100c:	8b 48 0c             	mov    0xc(%eax),%ecx
55100f:	8a 01                	mov    (%ecx),%al
551011:	3c ad                	cmp    $0xad,%al
551013:	75 03                	jne    0x551018
551015:	8a 41 02             	mov    0x2(%ecx),%al
551018:	3c ae                	cmp    $0xae,%al
55101a:	75 05                	jne    0x551021
55101c:	8b 41 14             	mov    0x14(%ecx),%eax
55101f:	eb 0a                	jmp    0x55102b
551021:	3c 88                	cmp    $0x88,%al
551023:	75 11                	jne    0x551036
551025:	8b 41 14             	mov    0x14(%ecx),%eax
551028:	8b 40 1c             	mov    0x1c(%eax),%eax
55102b:	8b 00                	mov    (%eax),%eax
55102d:	83 f8 01             	cmp    $0x1,%eax
551030:	0f 85 a4 01 00 00    	jne    0x5511da
551036:	8b 85 f4 fe ff ff    	mov    -0x10c(%ebp),%eax
55103c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
551040:	0f 85 9f 00 00 00    	jne    0x5510e5
551046:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
55104c:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
55104f:	8b 46 44             	mov    0x44(%esi),%eax
551052:	8b 4c 88 04          	mov    0x4(%eax,%ecx,4),%ecx
551056:	85 c9                	test   %ecx,%ecx
551058:	79 04                	jns    0x55105e
55105a:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55105d:	49                   	dec    %ecx
55105e:	8b 07                	mov    (%edi),%eax
551060:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
551064:	74 07                	je     0x55106d
551066:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
55106b:	eb 09                	jmp    0x551076
55106d:	8b 47 68             	mov    0x68(%edi),%eax
551070:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
551073:	8d 04 88             	lea    (%eax,%ecx,4),%eax
551076:	8b 48 04             	mov    0x4(%eax),%ecx
551079:	8b 50 0c             	mov    0xc(%eax),%edx
55107c:	8b 70 08             	mov    0x8(%eax),%esi
55107f:	0f b6 00             	movzbl (%eax),%eax
551082:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
551088:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55108b:	89 45 98             	mov    %eax,-0x68(%ebp)
55108e:	39 4f 70             	cmp    %ecx,0x70(%edi)
551091:	7f 14                	jg     0x5510a7
551093:	52                   	push   %edx
551094:	56                   	push   %esi
551095:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
55109b:	50                   	push   %eax
55109c:	57                   	push   %edi
55109d:	e8 5e 54 fb ff       	call   0x506500
5510a2:	83 c4 14             	add    $0x14,%esp
5510a5:	eb 3e                	jmp    0x5510e5
5510a7:	8b 5d 98             	mov    -0x68(%ebp),%ebx
5510aa:	8d 41 01             	lea    0x1(%ecx),%eax
5510ad:	89 47 6c             	mov    %eax,0x6c(%edi)
5510b0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5510b3:	8b 47 68             	mov    0x68(%edi),%eax
5510b6:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
5510b9:	33 db                	xor    %ebx,%ebx
5510bb:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
5510c0:	8b 9d 5c ff ff ff    	mov    -0xa4(%ebp),%ebx
5510c6:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5510ca:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
5510d0:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
5510d4:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
5510d8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5510df:	00
5510e0:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
5510e5:	6a 00                	push   $0x0
5510e7:	6a 34                	push   $0x34
5510e9:	ff 33                	push   (%ebx)
5510eb:	e8 f0 02 fd ff       	call   0x5213e0