55ebc8:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
55ebcb:	83 c1 fe             	add    $0xfffffffe,%ecx
55ebce:	89 4b 10             	mov    %ecx,0x10(%ebx)
55ebd1:	0f b7 13             	movzwl (%ebx),%edx
55ebd4:	4a                   	dec    %edx
55ebd5:	8b 43 0c             	mov    0xc(%ebx),%eax
55ebd8:	e8 73 f7 00 00       	call   0x56e350
55ebdd:	89 43 14             	mov    %eax,0x14(%ebx)
55ebe0:	85 c0                	test   %eax,%eax
55ebe2:	0f 84 15 01 00 00    	je     0x55ecfd
55ebe8:	33 f6                	xor    %esi,%esi
55ebea:	8d 53 1c             	lea    0x1c(%ebx),%edx
55ebed:	8b 45 fc             	mov    -0x4(%ebp),%eax
55ebf0:	83 c0 50             	add    $0x50,%eax
55ebf3:	eb 16                	jmp    0x55ec0b
55ebf5:	0f b7 08             	movzwl (%eax),%ecx
55ebf8:	89 0a                	mov    %ecx,(%edx)
55ebfa:	46                   	inc    %esi
55ebfb:	0f b7 48 42          	movzwl 0x42(%eax),%ecx
55ebff:	89 8a 84 00 00 00    	mov    %ecx,0x84(%edx)
55ec05:	83 c2 04             	add    $0x4,%edx
55ec08:	83 c0 02             	add    $0x2,%eax
55ec0b:	66 3b 33             	cmp    (%ebx),%si
55ec0e:	72 e5                	jb     0x55ebf5
55ec10:	8b 45 fc             	mov    -0x4(%ebp),%eax
55ec13:	0f b7 50 4a          	movzwl 0x4a(%eax),%edx
55ec17:	89 93 24 01 00 00    	mov    %edx,0x124(%ebx)
55ec1d:	8b 45 fc             	mov    -0x4(%ebp),%eax
55ec20:	0f b7 50 4c          	movzwl 0x4c(%eax),%edx
55ec24:	89 93 28 01 00 00    	mov    %edx,0x128(%ebx)
55ec2a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55ec2d:	33 c0                	xor    %eax,%eax
55ec2f:	8a 41 4e             	mov    0x4e(%ecx),%al
55ec32:	89 83 30 01 00 00    	mov    %eax,0x130(%ebx)
55ec38:	8b 55 fc             	mov    -0x4(%ebp),%edx
55ec3b:	33 c9                	xor    %ecx,%ecx
55ec3d:	8a 4a 48             	mov    0x48(%edx),%cl
55ec40:	89 8b 2c 01 00 00    	mov    %ecx,0x12c(%ebx)
55ec46:	66 8b 43 10          	mov    0x10(%ebx),%ax
55ec4a:	66 89 83 34 01 00 00 	mov    %ax,0x134(%ebx)
55ec51:	66 83 f8 64          	cmp    $0x64,%ax
55ec55:	76 17                	jbe    0x55ec6e
55ec57:	68 66 08 00 00       	push   $0x866
55ec5c:	68 b7 e1 69 00       	push   $0x69e1b7
55ec61:	68 93 e1 69 00       	push   $0x69e193
55ec66:	e8 d5 be ff ff       	call   0x55ab40
55ec6b:	83 c4 0c             	add    $0xc,%esp
55ec6e:	6a 04                	push   $0x4
55ec70:	6a 00                	push   $0x0
55ec72:	8d 93 36 01 00 00    	lea    0x136(%ebx),%edx
55ec78:	52                   	push   %edx
55ec79:	e8 2a be ff ff       	call   0x55aaa8
55ec7e:	8b 43 08             	mov    0x8(%ebx),%eax
55ec81:	83 c4 0c             	add    $0xc,%esp
55ec84:	8b 50 0c             	mov    0xc(%eax),%edx
55ec87:	52                   	push   %edx
55ec88:	8d 95 44 f0 ff ff    	lea    -0xfbc(%ebp),%edx
55ec8e:	8b 48 10             	mov    0x10(%eax),%ecx
55ec91:	51                   	push   %ecx
55ec92:	52                   	push   %edx
55ec93:	8b 50 04             	mov    0x4(%eax),%edx
55ec96:	8b 48 08             	mov    0x8(%eax),%ecx
55ec99:	8b 43 14             	mov    0x14(%ebx),%eax
55ec9c:	e8 f3 ef 00 00       	call   0x56dc94
55eca1:	0f b7 0b             	movzwl (%ebx),%ecx
55eca4:	8b c1                	mov    %ecx,%eax
55eca6:	c1 e0 02             	shl    $0x2,%eax
55eca9:	8d 04 40             	lea    (%eax,%eax,2),%eax
55ecac:	8d 04 80             	lea    (%eax,%eax,4),%eax
55ecaf:	e8 c8 96 01 00       	call   0x57837c
55ecb4:	8b f8                	mov    %eax,%edi
55ecb6:	89 7b 04             	mov    %edi,0x4(%ebx)
55ecb9:	85 ff                	test   %edi,%edi
55ecbb:	74 40                	je     0x55ecfd
55ecbd:	33 f6                	xor    %esi,%esi
55ecbf:	eb 0c                	jmp    0x55eccd
55ecc1:	33 c0                	xor    %eax,%eax
55ecc3:	46                   	inc    %esi
55ecc4:	89 47 34             	mov    %eax,0x34(%edi)
55ecc7:	89 5f 38             	mov    %ebx,0x38(%edi)
55ecca:	83 c7 3c             	add    $0x3c,%edi
55eccd:	66 3b 33             	cmp    (%ebx),%si
55ecd0:	72 ef                	jb     0x55ecc1
55ecd2:	33 f6                	xor    %esi,%esi
55ecd4:	8b 7b 04             	mov    0x4(%ebx),%edi
55ecd7:	eb 1b                	jmp    0x55ecf4
55ecd9:	8d 85 44 f0 ff ff    	lea    -0xfbc(%ebp),%eax
55ecdf:	8b cb                	mov    %ebx,%ecx
55ece1:	50                   	push   %eax
55ece2:	8b c7                	mov    %edi,%eax
55ece4:	8b 55 fc             	mov    -0x4(%ebp),%edx
55ece7:	e8 6c 00 00 00       	call   0x55ed58
55ecec:	85 c0                	test   %eax,%eax
55ecee:	74 0d                	je     0x55ecfd
55ecf0:	46                   	inc    %esi
55ecf1:	83 c7 3c             	add    $0x3c,%edi
55ecf4:	66 3b 33             	cmp    (%ebx),%si
55ecf7:	72 e0                	jb     0x55ecd9
55ecf9:	8b c3                	mov    %ebx,%eax
55ecfb:	eb 09                	jmp    0x55ed06
55ecfd:	8b c3                	mov    %ebx,%eax
55ecff:	e8 0c 00 00 00       	call   0x55ed10
55ed04:	33 c0                	xor    %eax,%eax
55ed06:	5f                   	pop    %edi
55ed07:	5e                   	pop    %esi
55ed08:	5b                   	pop    %ebx
55ed09:	8b e5                	mov    %ebp,%esp
55ed0b:	5d                   	pop    %ebp
55ed0c:	c2 04 00             	ret    $0x4
55ed0f:	90                   	nop
55ed10:	53                   	push   %ebx
55ed11:	8b d8                	mov    %eax,%ebx
55ed13:	56                   	push   %esi
55ed14:	57                   	push   %edi
55ed15:	8b 43 04             	mov    0x4(%ebx),%eax
55ed18:	85 c0                	test   %eax,%eax
55ed1a:	74 1e                	je     0x55ed3a
55ed1c:	33 ff                	xor    %edi,%edi
55ed1e:	8b f0                	mov    %eax,%esi
55ed20:	eb 0b                	jmp    0x55ed2d
55ed22:	8b c6                	mov    %esi,%eax
55ed24:	e8 f7 03 00 00       	call   0x55f120
55ed29:	47                   	inc    %edi
55ed2a:	83 c6 3c             	add    $0x3c,%esi
55ed2d:	66 3b 3b             	cmp    (%ebx),%di
55ed30:	72 f0                	jb     0x55ed22
55ed32:	8b 43 04             	mov    0x4(%ebx),%eax
55ed35:	e8 4a 96 01 00       	call   0x578384
55ed3a:	8b 43 08             	mov    0x8(%ebx),%eax
55ed3d:	85 c0                	test   %eax,%eax
55ed3f:	74 05                	je     0x55ed46
55ed41:	e8 4e 90 01 00       	call   0x577d94
55ed46:	8b 43 14             	mov    0x14(%ebx),%eax
55ed49:	85 c0                	test   %eax,%eax
55ed4b:	74 05                	je     0x55ed52
55ed4d:	e8 9a ec 00 00       	call   0x56d9ec
55ed52:	5f                   	pop    %edi
55ed53:	5e                   	pop    %esi
55ed54:	5b                   	pop    %ebx
55ed55:	c3                   	ret
55ed56:	90                   	nop
55ed57:	90                   	nop
55ed58:	55                   	push   %ebp
55ed59:	8b ec                	mov    %esp,%ebp
55ed5b:	83 c4 f4             	add    $0xfffffff4,%esp
55ed5e:	53                   	push   %ebx
55ed5f:	56                   	push   %esi
55ed60:	57                   	push   %edi
55ed61:	8b f1                	mov    %ecx,%esi
55ed63:	89 55 fc             	mov    %edx,-0x4(%ebp)
55ed66:	8b d8                	mov    %eax,%ebx
55ed68:	8b c3                	mov    %ebx,%eax
55ed6a:	8b 56 04             	mov    0x4(%esi),%edx
55ed6d:	2b c2                	sub    %edx,%eax
55ed6f:	b9 3c 00 00 00       	mov    $0x3c,%ecx
55ed74:	99                   	cltd
55ed75:	f7 f9                	idiv   %ecx
55ed77:	8b f8                	mov    %eax,%edi
55ed79:	33 c0                	xor    %eax,%eax
55ed7b:	89 43 34             	mov    %eax,0x34(%ebx)
55ed7e:	89 73 38             	mov    %esi,0x38(%ebx)
55ed81:	8b 56 08             	mov    0x8(%esi),%edx
55ed84:	8b 4a 04             	mov    0x4(%edx),%ecx
55ed87:	85 c9                	test   %ecx,%ecx
55ed89:	7c 0b                	jl     0x55ed96
55ed8b:	0f b7 06             	movzwl (%esi),%eax
55ed8e:	48                   	dec    %eax
55ed8f:	0f b7 d7             	movzwl %di,%edx
55ed92:	2b c2                	sub    %edx,%eax
55ed94:	79 17                	jns    0x55edad
55ed96:	68 b1 08 00 00       	push   $0x8b1
55ed9b:	68 04 e2 69 00       	push   $0x69e204
55eda0:	68 c1 e1 69 00       	push   $0x69e1c1
55eda5:	e8 96 bd ff ff       	call   0x55ab40
55edaa:	83 c4 0c             	add    $0xc,%esp
55edad:	0f b7 0e             	movzwl (%esi),%ecx
55edb0:	0f b7 c7             	movzwl %di,%eax
55edb3:	49                   	dec    %ecx
55edb4:	ba 01 00 00 00       	mov    $0x1,%edx
55edb9:	2b c8                	sub    %eax,%ecx
55edbb:	d3 e2                	shl    %cl,%edx
55edbd:	8b 4e 08             	mov    0x8(%esi),%ecx
55edc0:	8b 41 04             	mov    0x4(%ecx),%eax
55edc3:	0f b7 0e             	movzwl (%esi),%ecx
55edc6:	03 d0                	add    %eax,%edx
55edc8:	49                   	dec    %ecx
55edc9:	0f b7 c7             	movzwl %di,%eax
55edcc:	2b c8                	sub    %eax,%ecx
55edce:	4a                   	dec    %edx
55edcf:	d3 fa                	sar    %cl,%edx
55edd1:	89 13                	mov    %edx,(%ebx)
55edd3:	8b 56 08             	mov    0x8(%esi),%edx
55edd6:	8b 4a 08             	mov    0x8(%edx),%ecx
55edd9:	85 c9                	test   %ecx,%ecx
55eddb:	7c 0b                	jl     0x55ede8
55eddd:	0f b7 06             	movzwl (%esi),%eax
55ede0:	48                   	dec    %eax
55ede1:	0f b7 d7             	movzwl %di,%edx
55ede4:	2b c2                	sub    %edx,%eax
55ede6:	79 17                	jns    0x55edff
55ede8:	68 b3 08 00 00       	push   $0x8b3
55eded:	68 51 e2 69 00       	push   $0x69e251
55edf2:	68 0e e2 69 00       	push   $0x69e20e
55edf7:	e8 44 bd ff ff       	call   0x55ab40
55edfc:	83 c4 0c             	add    $0xc,%esp
55edff:	0f b7 0e             	movzwl (%esi),%ecx
55ee02:	0f b7 c7             	movzwl %di,%eax
55ee05:	49                   	dec    %ecx
55ee06:	ba 01 00 00 00       	mov    $0x1,%edx
55ee0b:	2b c8                	sub    %eax,%ecx
55ee0d:	d3 e2                	shl    %cl,%edx
55ee0f:	8b 4e 08             	mov    0x8(%esi),%ecx
55ee12:	8b 41 08             	mov    0x8(%ecx),%eax
55ee15:	0f b7 0e             	movzwl (%esi),%ecx
55ee18:	03 d0                	add    %eax,%edx
55ee1a:	49                   	dec    %ecx
55ee1b:	0f b7 c7             	movzwl %di,%eax
55ee1e:	2b c8                	sub    %eax,%ecx
55ee20:	4a                   	dec    %edx
55ee21:	d3 fa                	sar    %cl,%edx
55ee23:	89 53 04             	mov    %edx,0x4(%ebx)
55ee26:	8b 56 08             	mov    0x8(%esi),%edx
55ee29:	8b 4a 0c             	mov    0xc(%edx),%ecx
55ee2c:	85 c9                	test   %ecx,%ecx
55ee2e:	7c 0b                	jl     0x55ee3b
55ee30:	0f b7 06             	movzwl (%esi),%eax
55ee33:	48                   	dec    %eax
55ee34:	0f b7 d7             	movzwl %di,%edx
55ee37:	2b c2                	sub    %edx,%eax
55ee39:	79 17                	jns    0x55ee52
55ee3b:	68 b5 08 00 00       	push   $0x8b5
55ee40:	68 9c e2 69 00       	push   $0x69e29c
55ee45:	68 5b e2 69 00       	push   $0x69e25b
55ee4a:	e8 f1 bc ff ff       	call   0x55ab40
55ee4f:	83 c4 0c             	add    $0xc,%esp
55ee52:	0f b7 0e             	movzwl (%esi),%ecx
55ee55:	0f b7 c7             	movzwl %di,%eax
55ee58:	49                   	dec    %ecx
55ee59:	ba 01 00 00 00       	mov    $0x1,%edx
55ee5e:	2b c8                	sub    %eax,%ecx
55ee60:	d3 e2                	shl    %cl,%edx
55ee62:	8b 4e 08             	mov    0x8(%esi),%ecx
55ee65:	8b 41 0c             	mov    0xc(%ecx),%eax
55ee68:	0f b7 0e             	movzwl (%esi),%ecx
55ee6b:	03 d0                	add    %eax,%edx
55ee6d:	49                   	dec    %ecx
55ee6e:	0f b7 c7             	movzwl %di,%eax
55ee71:	2b c8                	sub    %eax,%ecx
55ee73:	4a                   	dec    %edx
55ee74:	d3 fa                	sar    %cl,%edx
55ee76:	89 53 08             	mov    %edx,0x8(%ebx)
55ee79:	8b 56 08             	mov    0x8(%esi),%edx
55ee7c:	8b 4a 10             	mov    0x10(%edx),%ecx
55ee7f:	85 c9                	test   %ecx,%ecx
55ee81:	7c 0b                	jl     0x55ee8e
55ee83:	0f b7 06             	movzwl (%esi),%eax
55ee86:	48                   	dec    %eax
55ee87:	0f b7 d7             	movzwl %di,%edx
55ee8a:	2b c2                	sub    %edx,%eax
55ee8c:	79 17                	jns    0x55eea5
55ee8e:	68 b7 08 00 00       	push   $0x8b7
55ee93:	68 e7 e2 69 00       	push   $0x69e2e7
55ee98:	68 a6 e2 69 00       	push   $0x69e2a6
55ee9d:	e8 9e bc ff ff       	call   0x55ab40
55eea2:	83 c4 0c             	add    $0xc,%esp
55eea5:	0f b7 0e             	movzwl (%esi),%ecx
55eea8:	0f b7 c7             	movzwl %di,%eax
55eeab:	49                   	dec    %ecx
55eeac:	ba 01 00 00 00       	mov    $0x1,%edx
55eeb1:	2b c8                	sub    %eax,%ecx
55eeb3:	d3 e2                	shl    %cl,%edx
55eeb5:	8b 4e 08             	mov    0x8(%esi),%ecx
55eeb8:	8b 41 10             	mov    0x10(%ecx),%eax
55eebb:	0f b7 0e             	movzwl (%esi),%ecx
55eebe:	03 d0                	add    %eax,%edx
55eec0:	49                   	dec    %ecx
55eec1:	0f b7 c7             	movzwl %di,%eax
55eec4:	2b c8                	sub    %eax,%ecx
55eec6:	4a                   	dec    %edx
55eec7:	d3 fa                	sar    %cl,%edx
55eec9:	89 53 0c             	mov    %edx,0xc(%ebx)
55eecc:	8b 13                	mov    (%ebx),%edx
55eece:	8b 4b 08             	mov    0x8(%ebx),%ecx
55eed1:	3b d1                	cmp    %ecx,%edx
55eed3:	73 0a                	jae    0x55eedf
55eed5:	8b 43 04             	mov    0x4(%ebx),%eax
55eed8:	8b 53 0c             	mov    0xc(%ebx),%edx
55eedb:	3b c2                	cmp    %edx,%eax
55eedd:	72 16                	jb     0x55eef5
55eedf:	33 c9                	xor    %ecx,%ecx
55eee1:	33 c0                	xor    %eax,%eax
55eee3:	89 4b 18             	mov    %ecx,0x18(%ebx)
55eee6:	89 43 1c             	mov    %eax,0x1c(%ebx)
55eee9:	33 d2                	xor    %edx,%edx
55eeeb:	8b c3                	mov    %ebx,%eax
55eeed:	89 53 20             	mov    %edx,0x20(%ebx)
55eef0:	e9 1f 02 00 00       	jmp    0x55f114
55eef5:	66 85 ff             	test   %di,%di
55eef8:	75 07                	jne    0x55ef01
55eefa:	ba 01 00 00 00       	mov    $0x1,%edx
55eeff:	eb 05                	jmp    0x55ef06
55ef01:	ba 03 00 00 00       	mov    $0x3,%edx
55ef06:	0f b7 c7             	movzwl %di,%eax
55ef09:	89 53 30             	mov    %edx,0x30(%ebx)
55ef0c:	85 c0                	test   %eax,%eax
55ef0e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55ef11:	0f b7 54 41 50       	movzwl 0x50(%ecx,%eax,2),%edx
55ef16:	89 53 10             	mov    %edx,0x10(%ebx)
55ef19:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55ef1c:	0f b7 94 41 92 00 00 	movzwl 0x92(%ecx,%eax,2),%edx
55ef23:	00
55ef24:	89 53 14             	mov    %edx,0x14(%ebx)
55ef27:	75 0e                	jne    0x55ef37
55ef29:	8b 43 10             	mov    0x10(%ebx),%eax
55ef2c:	89 43 24             	mov    %eax,0x24(%ebx)
55ef2f:	8b 4b 14             	mov    0x14(%ebx),%ecx
55ef32:	89 4b 28             	mov    %ecx,0x28(%ebx)
55ef35:	eb 0e                	jmp    0x55ef45
55ef37:	8b 43 10             	mov    0x10(%ebx),%eax
55ef3a:	48                   	dec    %eax
55ef3b:	89 43 24             	mov    %eax,0x24(%ebx)
55ef3e:	8b 53 14             	mov    0x14(%ebx),%edx
55ef41:	4a                   	dec    %edx
55ef42:	89 53 28             	mov    %edx,0x28(%ebx)
55ef45:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55ef48:	8b 53 24             	mov    0x24(%ebx),%edx
55ef4b:	0f b7 41 4a          	movzwl 0x4a(%ecx),%eax
55ef4f:	3b c2                	cmp    %edx,%eax
55ef51:	7d 09                	jge    0x55ef5c
55ef53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55ef56:	66 8b 41 4a          	mov    0x4a(%ecx),%ax
55ef5a:	eb 04                	jmp    0x55ef60
55ef5c:	66 8b 43 24          	mov    0x24(%ebx),%ax
55ef60:	66 89 43 2c          	mov    %ax,0x2c(%ebx)
55ef64:	8b 55 fc             	mov    -0x4(%ebp),%edx
55ef67:	8b 43 28             	mov    0x28(%ebx),%eax
55ef6a:	0f b7 4a 4c          	movzwl 0x4c(%edx),%ecx
55ef6e:	3b c8                	cmp    %eax,%ecx
55ef70:	7d 09                	jge    0x55ef7b
55ef72:	8b 55 fc             	mov    -0x4(%ebp),%edx
55ef75:	66 8b 4a 4c          	mov    0x4c(%edx),%cx
55ef79:	eb 04                	jmp    0x55ef7f
55ef7b:	66 8b 4b 28          	mov    0x28(%ebx),%cx
55ef7f:	66 89 4b 2e          	mov    %cx,0x2e(%ebx)
55ef83:	8b 43 10             	mov    0x10(%ebx),%eax
55ef86:	85 c0                	test   %eax,%eax
55ef88:	7e 13                	jle    0x55ef9d
55ef8a:	8b 4b 10             	mov    0x10(%ebx),%ecx
55ef8d:	be 01 00 00 00       	mov    $0x1,%esi
55ef92:	d3 e6                	shl    %cl,%esi