5509ce:	33 c5                	xor    %ebp,%eax
5509d0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5509d3:	8b 55 10             	mov    0x10(%ebp),%edx
5509d6:	53                   	push   %ebx
5509d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
5509da:	56                   	push   %esi
5509db:	8b 75 18             	mov    0x18(%ebp),%esi
5509de:	8d 42 50             	lea    0x50(%edx),%eax
5509e1:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
5509e7:	8b 03                	mov    (%ebx),%eax
5509e9:	89 85 f4 fe ff ff    	mov    %eax,-0x10c(%ebp)
5509ef:	8b 46 48             	mov    0x48(%esi),%eax
5509f2:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
5509f8:	0f b6 46 34          	movzbl 0x34(%esi),%eax
5509fc:	89 95 1c ff ff ff    	mov    %edx,-0xe4(%ebp)
550a02:	57                   	push   %edi
550a03:	8b 7d 0c             	mov    0xc(%ebp),%edi
550a06:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
550a09:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
550a0f:	8b 42 04             	mov    0x4(%edx),%eax
550a12:	8b 92 ec 01 00 00    	mov    0x1ec(%edx),%edx
550a18:	89 bd fc fe ff ff    	mov    %edi,-0x104(%ebp)
550a1e:	89 b5 2c ff ff ff    	mov    %esi,-0xd4(%ebp)
550a24:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
550a27:	c7 85 18 ff ff ff 00 	movl   $0x0,-0xe8(%ebp)
550a2e:	00 00 00
550a31:	83 c0 08             	add    $0x8,%eax
550a34:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
550a3a:	8b 40 2c             	mov    0x2c(%eax),%eax
550a3d:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
550a43:	33 c0                	xor    %eax,%eax
550a45:	85 d2                	test   %edx,%edx
550a47:	7e 33                	jle    0x550a7c
550a49:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550a4f:	81 c1 f0 01 00 00    	add    $0x1f0,%ecx
550a55:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
550a5c:	00 00 00 00
550a60:	8b bd 40 ff ff ff    	mov    -0xc0(%ebp),%edi
550a66:	39 39                	cmp    %edi,(%ecx)
550a68:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
550a6e:	0f 84 01 01 00 00    	je     0x550b75
550a74:	40                   	inc    %eax
550a75:	83 c1 04             	add    $0x4,%ecx
550a78:	3b c2                	cmp    %edx,%eax
550a7a:	7c e4                	jl     0x550a60
550a7c:	0f 57 c0             	xorps  %xmm0,%xmm0
550a7f:	66 0f 13 85 e0 fe ff 	movlpd %xmm0,-0x120(%ebp)
550a86:	ff
550a87:	8b 95 e4 fe ff ff    	mov    -0x11c(%ebp),%edx
550a8d:	8b 8d e0 fe ff ff    	mov    -0x120(%ebp),%ecx
550a93:	f7 d1                	not    %ecx
550a95:	f7 d2                	not    %edx
550a97:	23 4d 1c             	and    0x1c(%ebp),%ecx
550a9a:	23 55 20             	and    0x20(%ebp),%edx
550a9d:	89 4e 50             	mov    %ecx,0x50(%esi)
550aa0:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550aa6:	89 56 54             	mov    %edx,0x54(%esi)
550aa9:	8b 41 48             	mov    0x48(%ecx),%eax
550aac:	8b 51 4c             	mov    0x4c(%ecx),%edx
550aaf:	8b 4d 14             	mov    0x14(%ebp),%ecx
550ab2:	e8 a9 15 09 00       	call   0x5e2060
550ab7:	83 e0 01             	and    $0x1,%eax
550aba:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
550ac0:	8b 43 38             	mov    0x38(%ebx),%eax
550ac3:	48                   	dec    %eax
550ac4:	89 43 38             	mov    %eax,0x38(%ebx)
550ac7:	89 46 10             	mov    %eax,0x10(%esi)
550aca:	89 46 0c             	mov    %eax,0xc(%esi)
550acd:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
550ad3:	8b 43 38             	mov    0x38(%ebx),%eax
550ad6:	48                   	dec    %eax
550ad7:	89 43 38             	mov    %eax,0x38(%ebx)
550ada:	80 7e 34 00          	cmpb   $0x0,0x34(%esi)
550ade:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
550ae4:	89 46 18             	mov    %eax,0x18(%esi)
550ae7:	76 23                	jbe    0x550b0c
550ae9:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
550aef:	f6 40 24 08          	testb  $0x8,0x24(%eax)
550af3:	74 17                	je     0x550b0c
550af5:	8b 43 2c             	mov    0x2c(%ebx),%eax
550af8:	40                   	inc    %eax
550af9:	50                   	push   %eax
550afa:	6a 00                	push   $0x0
550afc:	6a 45                	push   $0x45
550afe:	89 43 2c             	mov    %eax,0x2c(%ebx)
550b01:	57                   	push   %edi
550b02:	89 06                	mov    %eax,(%esi)
550b04:	e8 d7 0f ff ff       	call   0x541ae0
550b09:	83 c4 10             	add    $0x10,%esp
550b0c:	8b 45 14             	mov    0x14(%ebp),%eax
550b0f:	8b c8                	mov    %eax,%ecx
550b11:	85 c0                	test   %eax,%eax
550b13:	7e 1e                	jle    0x550b33
550b15:	8b 95 1c ff ff ff    	mov    -0xe4(%ebp),%edx
550b1b:	6b c0 58             	imul   $0x58,%eax,%eax
550b1e:	81 c2 f0 02 00 00    	add    $0x2f0,%edx
550b24:	03 c2                	add    %edx,%eax
550b26:	83 38 00             	cmpl   $0x0,(%eax)
550b29:	75 08                	jne    0x550b33
550b2b:	49                   	dec    %ecx
550b2c:	83 e8 58             	sub    $0x58,%eax
550b2f:	85 c9                	test   %ecx,%ecx
550b31:	7f f3                	jg     0x550b26
550b33:	6b c1 58             	imul   $0x58,%ecx,%eax
550b36:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550b3c:	8b 84 08 fc 02 00 00 	mov    0x2fc(%eax,%ecx,1),%eax
550b43:	89 45 98             	mov    %eax,-0x68(%ebp)
550b46:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
550b4c:	f6 40 28 10          	testb  $0x10,0x28(%eax)
550b50:	0f 84 3e 01 00 00    	je     0x550c94
550b56:	8b 4f 6c             	mov    0x6c(%edi),%ecx
550b59:	8b 58 1c             	mov    0x1c(%eax),%ebx
550b5c:	8b 50 18             	mov    0x18(%eax),%edx
550b5f:	39 4f 70             	cmp    %ecx,0x70(%edi)
550b62:	7f 2b                	jg     0x550b8f
550b64:	52                   	push   %edx
550b65:	6a 00                	push   $0x0
550b67:	53                   	push   %ebx
550b68:	6a 0d                	push   $0xd
550b6a:	57                   	push   %edi
550b6b:	e8 90 59 fb ff       	call   0x506500
550b70:	83 c4 14             	add    $0x14,%esp
550b73:	eb 45                	jmp    0x550bba
550b75:	33 c9                	xor    %ecx,%ecx
550b77:	33 d2                	xor    %edx,%edx
550b79:	0f ab c1             	bts    %eax,%ecx
550b7c:	83 f8 20             	cmp    $0x20,%eax
550b7f:	0f 43 d1             	cmovae %ecx,%edx
550b82:	33 ca                	xor    %edx,%ecx
550b84:	83 f8 40             	cmp    $0x40,%eax
550b87:	0f 43 d1             	cmovae %ecx,%edx
550b8a:	e9 04 ff ff ff       	jmp    0x550a93
550b8f:	8d 41 01             	lea    0x1(%ecx),%eax
550b92:	89 47 6c             	mov    %eax,0x6c(%edi)
550b95:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
550b98:	8b 47 68             	mov    0x68(%edi),%eax
550b9b:	c7 04 88 0d 00 00 00 	movl   $0xd,(%eax,%ecx,4)
550ba2:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
550ba6:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
550bad:	00
550bae:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
550bb2:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550bb9:	00
550bba:	8b 57 6c             	mov    0x6c(%edi),%edx
550bbd:	39 57 70             	cmp    %edx,0x70(%edi)
550bc0:	7f 18                	jg     0x550bda
550bc2:	6a 00                	push   $0x0
550bc4:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
550bca:	53                   	push   %ebx
550bcb:	6a 0e                	push   $0xe
550bcd:	57                   	push   %edi
550bce:	e8 2d 59 fb ff       	call   0x506500
550bd3:	83 c4 14             	add    $0x14,%esp
550bd6:	8b d0                	mov    %eax,%edx
550bd8:	eb 37                	jmp    0x550c11
550bda:	8d 42 01             	lea    0x1(%edx),%eax
550bdd:	89 47 6c             	mov    %eax,0x6c(%edi)
550be0:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
550be3:	8b 47 68             	mov    0x68(%edi),%eax
550be6:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
550bec:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
550bf0:	8b 9d 38 ff ff ff    	mov    -0xc8(%ebp),%ebx
550bf6:	c7 04 88 0e 00 00 00 	movl   $0xe,(%eax,%ecx,4)
550bfd:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
550c01:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
550c08:	00
550c09:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550c10:	00
550c11:	89 56 3c             	mov    %edx,0x3c(%esi)
550c14:	c6 46 35 0b          	movb   $0xb,0x35(%esi)
550c18:	33 c9                	xor    %ecx,%ecx
550c1a:	8b b5 f0 fe ff ff    	mov    -0x110(%ebp),%esi
550c20:	f7 d9                	neg    %ecx
550c22:	1b c9                	sbb    %ecx,%ecx
550c24:	83 c1 02             	add    $0x2,%ecx
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)