56bc29:	89 4b 30             	mov    %ecx,0x30(%ebx)
56bc2c:	8b 4b 34             	mov    0x34(%ebx),%ecx
56bc2f:	85 c9                	test   %ecx,%ecx
56bc31:	75 06                	jne    0x56bc39
56bc33:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
56bc37:	eb 14                	jmp    0x56bc4d
56bc39:	8b 4b 34             	mov    0x34(%ebx),%ecx
56bc3c:	8b 74 24 0c          	mov    0xc(%esp),%esi
56bc40:	3b ce                	cmp    %esi,%ecx
56bc42:	7d 05                	jge    0x56bc49
56bc44:	8b 4b 34             	mov    0x34(%ebx),%ecx
56bc47:	eb 04                	jmp    0x56bc4d
56bc49:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
56bc4d:	89 4b 34             	mov    %ecx,0x34(%ebx)
56bc50:	42                   	inc    %edx
56bc51:	83 04 24 14          	addl   $0x14,(%esp)
56bc55:	8b 08                	mov    (%eax),%ecx
56bc57:	3b d1                	cmp    %ecx,%edx
56bc59:	0f 8c 71 ff ff ff    	jl     0x56bbd0
56bc5f:	ff 44 24 04          	incl   0x4(%esp)
56bc63:	83 c0 10             	add    $0x10,%eax
56bc66:	8b 54 24 04          	mov    0x4(%esp),%edx
56bc6a:	8b 4b 08             	mov    0x8(%ebx),%ecx
56bc6d:	3b d1                	cmp    %ecx,%edx
56bc6f:	0f 8c 4e ff ff ff    	jl     0x56bbc3
56bc75:	33 c0                	xor    %eax,%eax
56bc77:	89 43 60             	mov    %eax,0x60(%ebx)
56bc7a:	33 d2                	xor    %edx,%edx
56bc7c:	8a 57 01             	mov    0x1(%edi),%dl
56bc7f:	89 53 1c             	mov    %edx,0x1c(%ebx)
56bc82:	e9 31 04 00 00       	jmp    0x56c0b8
56bc87:	8b 43 3c             	mov    0x3c(%ebx),%eax
56bc8a:	89 43 2c             	mov    %eax,0x2c(%ebx)
56bc8d:	e9 15 04 00 00       	jmp    0x56c0a7
56bc92:	8b 53 38             	mov    0x38(%ebx),%edx
56bc95:	89 53 28             	mov    %edx,0x28(%ebx)
56bc98:	e9 ed 03 00 00       	jmp    0x56c08a
56bc9d:	0f b7 47 04          	movzwl 0x4(%edi),%eax
56bca1:	89 43 18             	mov    %eax,0x18(%ebx)
56bca4:	c1 e0 04             	shl    $0x4,%eax
56bca7:	8b 53 0c             	mov    0xc(%ebx),%edx
56bcaa:	03 c2                	add    %edx,%eax
56bcac:	89 43 10             	mov    %eax,0x10(%ebx)
56bcaf:	e9 b2 03 00 00       	jmp    0x56c066
56bcb4:	8b 53 10             	mov    0x10(%ebx),%edx
56bcb7:	8b 02                	mov    (%edx),%eax
56bcb9:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56bcbc:	3b c1                	cmp    %ecx,%eax
56bcbe:	0f 8e 9b 03 00 00    	jle    0x56c05f
56bcc4:	8b 42 04             	mov    0x4(%edx),%eax
56bcc7:	8b d1                	mov    %ecx,%edx
56bcc9:	c1 e2 02             	shl    $0x2,%edx
56bccc:	8d 14 92             	lea    (%edx,%edx,4),%edx
56bccf:	03 c2                	add    %edx,%eax
56bcd1:	89 43 14             	mov    %eax,0x14(%ebx)
56bcd4:	8b 08                	mov    (%eax),%ecx
56bcd6:	85 c9                	test   %ecx,%ecx
56bcd8:	0f 84 81 03 00 00    	je     0x56c05f
56bcde:	8b 53 10             	mov    0x10(%ebx),%edx
56bce1:	8b 68 08             	mov    0x8(%eax),%ebp
56bce4:	8b 40 0c             	mov    0xc(%eax),%eax
56bce7:	8b 32                	mov    (%edx),%esi
56bce9:	8b 53 1c             	mov    0x1c(%ebx),%edx
56bcec:	4e                   	dec    %esi
56bced:	2b f2                	sub    %edx,%esi
56bcef:	03 c6                	add    %esi,%eax
56bcf1:	03 ee                	add    %esi,%ebp
56bcf3:	89 44 24 10          	mov    %eax,0x10(%esp)
56bcf7:	8b 53 38             	mov    0x38(%ebx),%edx
56bcfa:	85 d2                	test   %edx,%edx
56bcfc:	7c 0e                	jl     0x56bd0c
56bcfe:	8b ce                	mov    %esi,%ecx
56bd00:	8b 43 10             	mov    0x10(%ebx),%eax
56bd03:	8b 50 08             	mov    0x8(%eax),%edx
56bd06:	d3 e2                	shl    %cl,%edx
56bd08:	85 d2                	test   %edx,%edx
56bd0a:	7f 17                	jg     0x56bd23
56bd0c:	68 4c 01 00 00       	push   $0x14c
56bd11:	68 e6 fe 69 00       	push   $0x69fee6
56bd16:	68 b8 fe 69 00       	push   $0x69feb8
56bd1b:	e8 20 ee fe ff       	call   0x55ab40
56bd20:	83 c4 0c             	add    $0xc,%esp
56bd23:	8b 43 10             	mov    0x10(%ebx),%eax
56bd26:	8b ce                	mov    %esi,%ecx
56bd28:	8b 53 38             	mov    0x38(%ebx),%edx
56bd2b:	8b 40 08             	mov    0x8(%eax),%eax
56bd2e:	d3 e0                	shl    %cl,%eax
56bd30:	03 c2                	add    %edx,%eax
56bd32:	8b 53 10             	mov    0x10(%ebx),%edx
56bd35:	8b ce                	mov    %esi,%ecx
56bd37:	48                   	dec    %eax
56bd38:	8b 52 08             	mov    0x8(%edx),%edx
56bd3b:	d3 e2                	shl    %cl,%edx
56bd3d:	8b ca                	mov    %edx,%ecx
56bd3f:	99                   	cltd
56bd40:	f7 f9                	idiv   %ecx
56bd42:	89 44 24 14          	mov    %eax,0x14(%esp)
56bd46:	8b 43 3c             	mov    0x3c(%ebx),%eax
56bd49:	85 c0                	test   %eax,%eax
56bd4b:	7c 0e                	jl     0x56bd5b
56bd4d:	8b ce                	mov    %esi,%ecx
56bd4f:	8b 43 10             	mov    0x10(%ebx),%eax
56bd52:	8b 50 0c             	mov    0xc(%eax),%edx
56bd55:	d3 e2                	shl    %cl,%edx
56bd57:	85 d2                	test   %edx,%edx
56bd59:	7f 17                	jg     0x56bd72
56bd5b:	68 4d 01 00 00       	push   $0x14d
56bd60:	68 20 ff 69 00       	push   $0x69ff20
56bd65:	68 f2 fe 69 00       	push   $0x69fef2
56bd6a:	e8 d1 ed fe ff       	call   0x55ab40
56bd6f:	83 c4 0c             	add    $0xc,%esp
56bd72:	8b 43 10             	mov    0x10(%ebx),%eax
56bd75:	8b ce                	mov    %esi,%ecx
56bd77:	8b 53 3c             	mov    0x3c(%ebx),%edx
56bd7a:	8b 40 0c             	mov    0xc(%eax),%eax
56bd7d:	d3 e0                	shl    %cl,%eax
56bd7f:	03 c2                	add    %edx,%eax
56bd81:	8b 53 10             	mov    0x10(%ebx),%edx
56bd84:	8b ce                	mov    %esi,%ecx
56bd86:	48                   	dec    %eax
56bd87:	8b 52 0c             	mov    0xc(%edx),%edx
56bd8a:	d3 e2                	shl    %cl,%edx
56bd8c:	8b ca                	mov    %edx,%ecx
56bd8e:	99                   	cltd
56bd8f:	f7 f9                	idiv   %ecx
56bd91:	89 44 24 18          	mov    %eax,0x18(%esp)
56bd95:	8b 43 28             	mov    0x28(%ebx),%eax
56bd98:	8b 53 38             	mov    0x38(%ebx),%edx
56bd9b:	3b c2                	cmp    %edx,%eax
56bd9d:	75 1b                	jne    0x56bdba
56bd9f:	8b ce                	mov    %esi,%ecx
56bda1:	8b 44 24 14          	mov    0x14(%esp),%eax
56bda5:	d3 e0                	shl    %cl,%eax
56bda7:	8b cd                	mov    %ebp,%ecx
56bda9:	ba 01 00 00 00       	mov    $0x1,%edx
56bdae:	d3 e2                	shl    %cl,%edx
56bdb0:	8b ca                	mov    %edx,%ecx
56bdb2:	33 d2                	xor    %edx,%edx
56bdb4:	f7 f1                	div    %ecx
56bdb6:	85 d2                	test   %edx,%edx
56bdb8:	75 1b                	jne    0x56bdd5
56bdba:	8b cd                	mov    %ebp,%ecx
56bdbc:	b8 01 00 00 00       	mov    $0x1,%eax
56bdc1:	d3 e0                	shl    %cl,%eax
56bdc3:	50                   	push   %eax
56bdc4:	8b 43 28             	mov    0x28(%ebx),%eax
56bdc7:	5a                   	pop    %edx
56bdc8:	8b ca                	mov    %edx,%ecx
56bdca:	99                   	cltd
56bdcb:	f7 f9                	idiv   %ecx
56bdcd:	85 d2                	test   %edx,%edx
56bdcf:	0f 85 8a 02 00 00    	jne    0x56c05f
56bdd5:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
56bdd8:	8b 43 3c             	mov    0x3c(%ebx),%eax
56bddb:	3b e8                	cmp    %eax,%ebp
56bddd:	75 1d                	jne    0x56bdfc
56bddf:	8b ce                	mov    %esi,%ecx
56bde1:	8b 44 24 18          	mov    0x18(%esp),%eax
56bde5:	d3 e0                	shl    %cl,%eax
56bde7:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56bdeb:	ba 01 00 00 00       	mov    $0x1,%edx
56bdf0:	d3 e2                	shl    %cl,%edx
56bdf2:	8b ca                	mov    %edx,%ecx
56bdf4:	33 d2                	xor    %edx,%edx
56bdf6:	f7 f1                	div    %ecx
56bdf8:	85 d2                	test   %edx,%edx
56bdfa:	75 1c                	jne    0x56be18
56bdfc:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56be00:	b8 01 00 00 00       	mov    $0x1,%eax
56be05:	d3 e0                	shl    %cl,%eax
56be07:	50                   	push   %eax
56be08:	8b c5                	mov    %ebp,%eax
56be0a:	5a                   	pop    %edx
56be0b:	8b ca                	mov    %edx,%ecx
56be0d:	99                   	cltd
56be0e:	f7 f9                	idiv   %ecx
56be10:	85 d2                	test   %edx,%edx
56be12:	0f 85 47 02 00 00    	jne    0x56c05f
56be18:	8b 43 28             	mov    0x28(%ebx),%eax
56be1b:	85 c0                	test   %eax,%eax
56be1d:	7c 0e                	jl     0x56be2d
56be1f:	8b ce                	mov    %esi,%ecx
56be21:	8b 43 10             	mov    0x10(%ebx),%eax
56be24:	8b 50 08             	mov    0x8(%eax),%edx
56be27:	d3 e2                	shl    %cl,%edx
56be29:	85 d2                	test   %edx,%edx
56be2b:	7f 17                	jg     0x56be44
56be2d:	68 53 01 00 00       	push   $0x153
56be32:	68 55 ff 69 00       	push   $0x69ff55
56be37:	68 2c ff 69 00       	push   $0x69ff2c
56be3c:	e8 ff ec fe ff       	call   0x55ab40
56be41:	83 c4 0c             	add    $0xc,%esp
56be44:	8b ce                	mov    %esi,%ecx
56be46:	8b 43 10             	mov    0x10(%ebx),%eax
56be49:	8b 68 08             	mov    0x8(%eax),%ebp
56be4c:	d3 e5                	shl    %cl,%ebp
56be4e:	8b c5                	mov    %ebp,%eax
56be50:	8b 53 28             	mov    0x28(%ebx),%edx
56be53:	03 c2                	add    %edx,%eax
56be55:	48                   	dec    %eax
56be56:	99                   	cltd
56be57:	f7 fd                	idiv   %ebp
56be59:	85 c0                	test   %eax,%eax
56be5b:	7c 0a                	jl     0x56be67
56be5d:	8b 43 14             	mov    0x14(%ebx),%eax
56be60:	8b 48 08             	mov    0x8(%eax),%ecx
56be63:	85 c9                	test   %ecx,%ecx
56be65:	7f 17                	jg     0x56be7e
56be67:	68 53 01 00 00       	push   $0x153
56be6c:	68 4f 00 6a 00       	push   $0x6a004f
56be71:	68 61 ff 69 00       	push   $0x69ff61
56be76:	e8 c5 ec fe ff       	call   0x55ab40
56be7b:	83 c4 0c             	add    $0xc,%esp
56be7e:	8b 43 28             	mov    0x28(%ebx),%eax
56be81:	85 c0                	test   %eax,%eax
56be83:	7c 0e                	jl     0x56be93
56be85:	8b ce                	mov    %esi,%ecx
56be87:	8b 53 10             	mov    0x10(%ebx),%edx
56be8a:	8b 42 08             	mov    0x8(%edx),%eax
56be8d:	d3 e0                	shl    %cl,%eax
56be8f:	85 c0                	test   %eax,%eax
56be91:	7f 17                	jg     0x56beaa
56be93:	68 53 01 00 00       	push   $0x153
56be98:	68 84 00 6a 00       	push   $0x6a0084
56be9d:	68 5b 00 6a 00       	push   $0x6a005b
56bea2:	e8 99 ec fe ff       	call   0x55ab40
56bea7:	83 c4 0c             	add    $0xc,%esp
56beaa:	8b 53 10             	mov    0x10(%ebx),%edx
56bead:	8b ce                	mov    %esi,%ecx
56beaf:	8b 42 08             	mov    0x8(%edx),%eax
56beb2:	8b 53 28             	mov    0x28(%ebx),%edx
56beb5:	d3 e0                	shl    %cl,%eax
56beb7:	03 c2                	add    %edx,%eax
56beb9:	8b 53 10             	mov    0x10(%ebx),%edx
56bebc:	8b ce                	mov    %esi,%ecx
56bebe:	48                   	dec    %eax
56bebf:	8b 52 08             	mov    0x8(%edx),%edx
56bec2:	d3 e2                	shl    %cl,%edx
56bec4:	8b ca                	mov    %edx,%ecx
56bec6:	99                   	cltd
56bec7:	f7 f9                	idiv   %ecx
56bec9:	8b 53 14             	mov    0x14(%ebx),%edx
56becc:	8b 4a 08             	mov    0x8(%edx),%ecx
56becf:	d3 f8                	sar    %cl,%eax
56bed1:	50                   	push   %eax
56bed2:	8b 43 14             	mov    0x14(%ebx),%eax
56bed5:	8b 40 08             	mov    0x8(%eax),%eax
56bed8:	85 c0                	test   %eax,%eax
56beda:	7f 17                	jg     0x56bef3
56bedc:	68 54 01 00 00       	push   $0x154
56bee1:	68 ba 00 6a 00       	push   $0x6a00ba
56bee6:	68 90 00 6a 00       	push   $0x6a0090
56beeb:	e8 50 ec fe ff       	call   0x55ab40
56bef0:	83 c4 0c             	add    $0xc,%esp
56bef3:	8b 53 14             	mov    0x14(%ebx),%edx
56bef6:	8b 44 24 18          	mov    0x18(%esp),%eax
56befa:	8b 4a 08             	mov    0x8(%edx),%ecx
56befd:	5a                   	pop    %edx
56befe:	d3 e8                	shr    %cl,%eax
56bf00:	2b d0                	sub    %eax,%edx
56bf02:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
56bf05:	85 c9                	test   %ecx,%ecx
56bf07:	8b ea                	mov    %edx,%ebp
56bf09:	7c 0e                	jl     0x56bf19
56bf0b:	8b ce                	mov    %esi,%ecx
56bf0d:	8b 43 10             	mov    0x10(%ebx),%eax
56bf10:	8b 50 0c             	mov    0xc(%eax),%edx
56bf13:	d3 e2                	shl    %cl,%edx
56bf15:	85 d2                	test   %edx,%edx
56bf17:	7f 17                	jg     0x56bf30
56bf19:	68 56 01 00 00       	push   $0x156
56bf1e:	68 ef 00 6a 00       	push   $0x6a00ef
56bf23:	68 c6 00 6a 00       	push   $0x6a00c6
56bf28:	e8 13 ec fe ff       	call   0x55ab40
56bf2d:	83 c4 0c             	add    $0xc,%esp
56bf30:	8b 43 10             	mov    0x10(%ebx),%eax
56bf33:	8b ce                	mov    %esi,%ecx
56bf35:	8b 53 2c             	mov    0x2c(%ebx),%edx
56bf38:	8b 40 0c             	mov    0xc(%eax),%eax
56bf3b:	d3 e0                	shl    %cl,%eax
56bf3d:	03 c2                	add    %edx,%eax
56bf3f:	8b 53 10             	mov    0x10(%ebx),%edx
56bf42:	8b ce                	mov    %esi,%ecx
56bf44:	48                   	dec    %eax
56bf45:	8b 52 0c             	mov    0xc(%edx),%edx
56bf48:	d3 e2                	shl    %cl,%edx
56bf4a:	8b ca                	mov    %edx,%ecx
56bf4c:	99                   	cltd
56bf4d:	f7 f9                	idiv   %ecx
56bf4f:	85 c0                	test   %eax,%eax
56bf51:	7c 0a                	jl     0x56bf5d
56bf53:	8b 43 14             	mov    0x14(%ebx),%eax
56bf56:	8b 40 0c             	mov    0xc(%eax),%eax
56bf59:	85 c0                	test   %eax,%eax
56bf5b:	7f 17                	jg     0x56bf74
56bf5d:	68 56 01 00 00       	push   $0x156
56bf62:	68 ea 01 6a 00       	push   $0x6a01ea
56bf67:	68 fb 00 6a 00       	push   $0x6a00fb
56bf6c:	e8 cf eb fe ff       	call   0x55ab40
56bf71:	83 c4 0c             	add    $0xc,%esp
56bf74:	8b 53 2c             	mov    0x2c(%ebx),%edx
56bf77:	85 d2                	test   %edx,%edx
56bf79:	7c 0e                	jl     0x56bf89
56bf7b:	8b ce                	mov    %esi,%ecx
56bf7d:	8b 43 10             	mov    0x10(%ebx),%eax
56bf80:	8b 50 0c             	mov    0xc(%eax),%edx
56bf83:	d3 e2                	shl    %cl,%edx
56bf85:	85 d2                	test   %edx,%edx
56bf87:	7f 17                	jg     0x56bfa0
56bf89:	68 56 01 00 00       	push   $0x156
56bf8e:	68 1f 02 6a 00       	push   $0x6a021f
56bf93:	68 f6 01 6a 00       	push   $0x6a01f6
56bf98:	e8 a3 eb fe ff       	call   0x55ab40
56bf9d:	83 c4 0c             	add    $0xc,%esp
56bfa0:	8b 43 10             	mov    0x10(%ebx),%eax
56bfa3:	8b ce                	mov    %esi,%ecx
56bfa5:	8b 53 2c             	mov    0x2c(%ebx),%edx
56bfa8:	8b 40 0c             	mov    0xc(%eax),%eax
56bfab:	d3 e0                	shl    %cl,%eax
56bfad:	03 c2                	add    %edx,%eax
56bfaf:	8b 53 10             	mov    0x10(%ebx),%edx
56bfb2:	8b ce                	mov    %esi,%ecx
56bfb4:	48                   	dec    %eax
56bfb5:	8b 52 0c             	mov    0xc(%edx),%edx
56bfb8:	d3 e2                	shl    %cl,%edx
56bfba:	8b ca                	mov    %edx,%ecx
56bfbc:	99                   	cltd
56bfbd:	f7 f9                	idiv   %ecx
56bfbf:	8b 53 14             	mov    0x14(%ebx),%edx
56bfc2:	8b 4a 0c             	mov    0xc(%edx),%ecx
56bfc5:	d3 f8                	sar    %cl,%eax
56bfc7:	50                   	push   %eax
56bfc8:	8b 43 14             	mov    0x14(%ebx),%eax
56bfcb:	8b 40 0c             	mov    0xc(%eax),%eax
56bfce:	85 c0                	test   %eax,%eax
56bfd0:	7f 17                	jg     0x56bfe9
56bfd2:	68 57 01 00 00       	push   $0x157
56bfd7:	68 56 02 6a 00       	push   $0x6a0256
56bfdc:	68 2b 02 6a 00       	push   $0x6a022b
56bfe1:	e8 5a eb fe ff       	call   0x55ab40
56bfe6:	83 c4 0c             	add    $0xc,%esp
56bfe9:	8b 53 14             	mov    0x14(%ebx),%edx
56bfec:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56bff0:	8b 4a 0c             	mov    0xc(%edx),%ecx
56bff3:	5a                   	pop    %edx
56bff4:	d3 e8                	shr    %cl,%eax
56bff6:	92                   	xchg   %eax,%edx
56bff7:	2b c2                	sub    %edx,%eax
56bff9:	8b 53 14             	mov    0x14(%ebx),%edx
56bffc:	8b 52 10             	mov    0x10(%edx),%edx