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
55ef94:	4e                   	dec    %esi
55ef95:	8b 03                	mov    (%ebx),%eax
55ef97:	f7 d6                	not    %esi
55ef99:	23 f0                	and    %eax,%esi
55ef9b:	eb 02                	jmp    0x55ef9f
55ef9d:	8b 33                	mov    (%ebx),%esi
55ef9f:	8b 43 14             	mov    0x14(%ebx),%eax
55efa2:	85 c0                	test   %eax,%eax
55efa4:	7e 14                	jle    0x55efba
55efa6:	8b 4b 14             	mov    0x14(%ebx),%ecx
55efa9:	bf 01 00 00 00       	mov    $0x1,%edi
55efae:	d3 e7                	shl    %cl,%edi
55efb0:	4f                   	dec    %edi
55efb1:	8b 43 04             	mov    0x4(%ebx),%eax
55efb4:	f7 d7                	not    %edi
55efb6:	23 f8                	and    %eax,%edi
55efb8:	eb 03                	jmp    0x55efbd
55efba:	8b 7b 04             	mov    0x4(%ebx),%edi
55efbd:	8b 43 10             	mov    0x10(%ebx),%eax
55efc0:	85 c0                	test   %eax,%eax
55efc2:	7e 3a                	jle    0x55effe
55efc4:	8b 53 10             	mov    0x10(%ebx),%edx
55efc7:	85 d2                	test   %edx,%edx
55efc9:	7e 21                	jle    0x55efec
55efcb:	8b 4b 10             	mov    0x10(%ebx),%ecx
55efce:	b8 01 00 00 00       	mov    $0x1,%eax
55efd3:	d3 e0                	shl    %cl,%eax
55efd5:	8b 53 08             	mov    0x8(%ebx),%edx
55efd8:	8b 4b 10             	mov    0x10(%ebx),%ecx
55efdb:	03 c2                	add    %edx,%eax
55efdd:	ba 01 00 00 00       	mov    $0x1,%edx
55efe2:	d3 e2                	shl    %cl,%edx
55efe4:	4a                   	dec    %edx
55efe5:	48                   	dec    %eax
55efe6:	f7 d2                	not    %edx
55efe8:	23 c2                	and    %edx,%eax
55efea:	eb 15                	jmp    0x55f001
55efec:	8b 4b 10             	mov    0x10(%ebx),%ecx
55efef:	b8 01 00 00 00       	mov    $0x1,%eax
55eff4:	d3 e0                	shl    %cl,%eax
55eff6:	8b 53 08             	mov    0x8(%ebx),%edx
55eff9:	03 c2                	add    %edx,%eax
55effb:	48                   	dec    %eax
55effc:	eb 03                	jmp    0x55f001
55effe:	8b 43 08             	mov    0x8(%ebx),%eax
55f001:	89 45 f8             	mov    %eax,-0x8(%ebp)
55f004:	8b 4b 14             	mov    0x14(%ebx),%ecx
55f007:	85 c9                	test   %ecx,%ecx
55f009:	7e 3a                	jle    0x55f045
55f00b:	8b 43 14             	mov    0x14(%ebx),%eax
55f00e:	85 c0                	test   %eax,%eax
55f010:	7e 21                	jle    0x55f033
55f012:	8b 4b 14             	mov    0x14(%ebx),%ecx
55f015:	ba 01 00 00 00       	mov    $0x1,%edx
55f01a:	d3 e2                	shl    %cl,%edx
55f01c:	8b 43 0c             	mov    0xc(%ebx),%eax
55f01f:	8b 4b 14             	mov    0x14(%ebx),%ecx
55f022:	03 d0                	add    %eax,%edx
55f024:	b8 01 00 00 00       	mov    $0x1,%eax
55f029:	d3 e0                	shl    %cl,%eax
55f02b:	48                   	dec    %eax
55f02c:	4a                   	dec    %edx
55f02d:	f7 d0                	not    %eax
55f02f:	23 d0                	and    %eax,%edx
55f031:	eb 15                	jmp    0x55f048
55f033:	8b 4b 14             	mov    0x14(%ebx),%ecx
55f036:	ba 01 00 00 00       	mov    $0x1,%edx
55f03b:	d3 e2                	shl    %cl,%edx
55f03d:	8b 43 0c             	mov    0xc(%ebx),%eax
55f040:	03 d0                	add    %eax,%edx
55f042:	4a                   	dec    %edx
55f043:	eb 03                	jmp    0x55f048
55f045:	8b 53 0c             	mov    0xc(%ebx),%edx
55f048:	89 55 f4             	mov    %edx,-0xc(%ebp)
55f04b:	8b 4b 10             	mov    0x10(%ebx),%ecx
55f04e:	85 c9                	test   %ecx,%ecx
55f050:	7f 17                	jg     0x55f069
55f052:	68 d2 08 00 00       	push   $0x8d2
55f057:	68 24 e3 69 00       	push   $0x69e324
55f05c:	68 f1 e2 69 00       	push   $0x69e2f1
55f061:	e8 da ba ff ff       	call   0x55ab40
55f066:	83 c4 0c             	add    $0xc,%esp
55f069:	8b 4b 10             	mov    0x10(%ebx),%ecx
55f06c:	8b 45 f8             	mov    -0x8(%ebp),%eax
55f06f:	2b c6                	sub    %esi,%eax
55f071:	d3 e8                	shr    %cl,%eax
55f073:	89 43 18             	mov    %eax,0x18(%ebx)
55f076:	8b 53 14             	mov    0x14(%ebx),%edx
55f079:	85 d2                	test   %edx,%edx
55f07b:	7f 17                	jg     0x55f094
55f07d:	68 d3 08 00 00       	push   $0x8d3
55f082:	68 62 e3 69 00       	push   $0x69e362
55f087:	68 2e e3 69 00       	push   $0x69e32e
55f08c:	e8 af ba ff ff       	call   0x55ab40
55f091:	83 c4 0c             	add    $0xc,%esp
55f094:	8b 4b 14             	mov    0x14(%ebx),%ecx
55f097:	8b 75 f4             	mov    -0xc(%ebp),%esi
55f09a:	2b f7                	sub    %edi,%esi
55f09c:	d3 ee                	shr    %cl,%esi
55f09e:	89 73 1c             	mov    %esi,0x1c(%ebx)
55f0a1:	8b 43 18             	mov    0x18(%ebx),%eax
55f0a4:	f7 ee                	imul   %esi
55f0a6:	89 43 20             	mov    %eax,0x20(%ebx)
55f0a9:	8b 43 30             	mov    0x30(%ebx),%eax
55f0ac:	c1 e0 02             	shl    $0x2,%eax
55f0af:	8d 04 c0             	lea    (%eax,%eax,8),%eax
55f0b2:	e8 c5 92 01 00       	call   0x57837c
55f0b7:	8b f0                	mov    %eax,%esi
55f0b9:	89 73 34             	mov    %esi,0x34(%ebx)
55f0bc:	85 f6                	test   %esi,%esi
55f0be:	74 4b                	je     0x55f10b
55f0c0:	33 ff                	xor    %edi,%edi
55f0c2:	eb 10                	jmp    0x55f0d4
55f0c4:	33 c0                	xor    %eax,%eax
55f0c6:	33 d2                	xor    %edx,%edx
55f0c8:	89 06                	mov    %eax,(%esi)
55f0ca:	89 56 04             	mov    %edx,0x4(%esi)
55f0cd:	89 5e 20             	mov    %ebx,0x20(%esi)
55f0d0:	47                   	inc    %edi
55f0d1:	83 c6 24             	add    $0x24,%esi
55f0d4:	0f b7 cf             	movzwl %di,%ecx
55f0d7:	8b 43 30             	mov    0x30(%ebx),%eax
55f0da:	3b c8                	cmp    %eax,%ecx
55f0dc:	7c e6                	jl     0x55f0c4
55f0de:	33 ff                	xor    %edi,%edi
55f0e0:	8b 73 34             	mov    0x34(%ebx),%esi
55f0e3:	eb 18                	jmp    0x55f0fd
55f0e5:	8b 45 08             	mov    0x8(%ebp),%eax
55f0e8:	8b cb                	mov    %ebx,%ecx
55f0ea:	50                   	push   %eax
55f0eb:	8b c6                	mov    %esi,%eax
55f0ed:	8b 55 fc             	mov    -0x4(%ebp),%edx
55f0f0:	e8 5f 00 00 00       	call   0x55f154
55f0f5:	85 c0                	test   %eax,%eax
55f0f7:	74 12                	je     0x55f10b
55f0f9:	47                   	inc    %edi
55f0fa:	83 c6 24             	add    $0x24,%esi
55f0fd:	0f b7 d7             	movzwl %di,%edx
55f100:	8b 4b 30             	mov    0x30(%ebx),%ecx
55f103:	3b d1                	cmp    %ecx,%edx
55f105:	7c de                	jl     0x55f0e5
55f107:	8b c3                	mov    %ebx,%eax
55f109:	eb 09                	jmp    0x55f114
55f10b:	8b c3                	mov    %ebx,%eax
55f10d:	e8 0e 00 00 00       	call   0x55f120
55f112:	33 c0                	xor    %eax,%eax
55f114:	5f                   	pop    %edi
55f115:	5e                   	pop    %esi
55f116:	5b                   	pop    %ebx
55f117:	8b e5                	mov    %ebp,%esp
55f119:	5d                   	pop    %ebp
55f11a:	c2 04 00             	ret    $0x4
55f11d:	90                   	nop
55f11e:	90                   	nop
55f11f:	90                   	nop
55f120:	53                   	push   %ebx
55f121:	56                   	push   %esi
55f122:	57                   	push   %edi
55f123:	8b f8                	mov    %eax,%edi
55f125:	8b 47 34             	mov    0x34(%edi),%eax
55f128:	85 c0                	test   %eax,%eax
55f12a:	74 23                	je     0x55f14f
55f12c:	33 f6                	xor    %esi,%esi
55f12e:	8b d8                	mov    %eax,%ebx
55f130:	eb 0b                	jmp    0x55f13d
55f132:	8b c3                	mov    %ebx,%eax
55f134:	e8 c7 01 00 00       	call   0x55f300
55f139:	46                   	inc    %esi
55f13a:	83 c3 24             	add    $0x24,%ebx
55f13d:	0f b7 d6             	movzwl %si,%edx
55f140:	8b 4f 30             	mov    0x30(%edi),%ecx
55f143:	3b d1                	cmp    %ecx,%edx
55f145:	7c eb                	jl     0x55f132
55f147:	8b 47 34             	mov    0x34(%edi),%eax
55f14a:	e8 35 92 01 00       	call   0x578384