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
56bfff:	0f af d0             	imul   %eax,%edx
56c002:	03 d5                	add    %ebp,%edx
56c004:	89 53 20             	mov    %edx,0x20(%ebx)
56c007:	8b 43 14             	mov    0x14(%ebx),%eax
56c00a:	8b 08                	mov    (%eax),%ecx
56c00c:	3b d1                	cmp    %ecx,%edx
56c00e:	7c 17                	jl     0x56c027
56c010:	68 5a 01 00 00       	push   $0x15a
56c015:	68 82 02 6a 00       	push   $0x6a0282
56c01a:	68 62 02 6a 00       	push   $0x6a0262
56c01f:	e8 1c eb fe ff       	call   0x55ab40
56c024:	83 c4 0c             	add    $0xc,%esp
56c027:	33 c0                	xor    %eax,%eax
56c029:	89 43 24             	mov    %eax,0x24(%ebx)
56c02c:	eb 20                	jmp    0x56c04e
56c02e:	8b 53 14             	mov    0x14(%ebx),%edx
56c031:	8b 4b 20             	mov    0x20(%ebx),%ecx
56c034:	c1 e1 02             	shl    $0x2,%ecx
56c037:	8b 52 04             	mov    0x4(%edx),%edx
56c03a:	03 d1                	add    %ecx,%edx
56c03c:	8b 0a                	mov    (%edx),%ecx
56c03e:	3b c1                	cmp    %ecx,%eax
56c040:	7c 09                	jl     0x56c04b
56c042:	ff 02                	incl   (%edx)
56c044:	33 c0                	xor    %eax,%eax
56c046:	e9 8c 00 00 00       	jmp    0x56c0d7
56c04b:	ff 43 24             	incl   0x24(%ebx)
56c04e:	8b 43 24             	mov    0x24(%ebx),%eax
56c051:	8b 13                	mov    (%ebx),%edx
56c053:	3b c2                	cmp    %edx,%eax
56c055:	7d 08                	jge    0x56c05f
56c057:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
56c05b:	3b c1                	cmp    %ecx,%eax
56c05d:	7c cf                	jl     0x56c02e
56c05f:	ff 43 18             	incl   0x18(%ebx)
56c062:	83 43 10 10          	addl   $0x10,0x10(%ebx)
56c066:	0f b7 57 06          	movzwl 0x6(%edi),%edx
56c06a:	8b 43 18             	mov    0x18(%ebx),%eax
56c06d:	3b d0                	cmp    %eax,%edx
56c06f:	7e 0b                	jle    0x56c07c
56c071:	8b 4b 08             	mov    0x8(%ebx),%ecx
56c074:	3b c1                	cmp    %ecx,%eax
56c076:	0f 8c 38 fc ff ff    	jl     0x56bcb4
56c07c:	8b 43 28             	mov    0x28(%ebx),%eax
56c07f:	8b 4b 30             	mov    0x30(%ebx),%ecx
56c082:	99                   	cltd
56c083:	f7 f9                	idiv   %ecx
56c085:	2b ca                	sub    %edx,%ecx
56c087:	01 4b 28             	add    %ecx,0x28(%ebx)
56c08a:	8b 43 28             	mov    0x28(%ebx),%eax
56c08d:	8b 53 40             	mov    0x40(%ebx),%edx
56c090:	3b c2                	cmp    %edx,%eax
56c092:	0f 8c 05 fc ff ff    	jl     0x56bc9d
56c098:	8b 43 2c             	mov    0x2c(%ebx),%eax
56c09b:	8b 4b 34             	mov    0x34(%ebx),%ecx
56c09e:	99                   	cltd
56c09f:	f7 7b 34             	idivl  0x34(%ebx)
56c0a2:	2b ca                	sub    %edx,%ecx
56c0a4:	01 4b 2c             	add    %ecx,0x2c(%ebx)
56c0a7:	8b 43 2c             	mov    0x2c(%ebx),%eax
56c0aa:	8b 53 44             	mov    0x44(%ebx),%edx
56c0ad:	3b c2                	cmp    %edx,%eax
56c0af:	0f 8c dd fb ff ff    	jl     0x56bc92
56c0b5:	ff 43 1c             	incl   0x1c(%ebx)
56c0b8:	33 c9                	xor    %ecx,%ecx
56c0ba:	8a 4f 02             	mov    0x2(%edi),%cl
56c0bd:	8b 43 1c             	mov    0x1c(%ebx),%eax
56c0c0:	3b c8                	cmp    %eax,%ecx
56c0c2:	7e 0e                	jle    0x56c0d2
56c0c4:	8b 53 1c             	mov    0x1c(%ebx),%edx
56c0c7:	8b 4b 04             	mov    0x4(%ebx),%ecx
56c0ca:	3b d1                	cmp    %ecx,%edx
56c0cc:	0f 8c b5 fb ff ff    	jl     0x56bc87
56c0d2:	b8 01 00 00 00       	mov    $0x1,%eax
56c0d7:	83 c4 1c             	add    $0x1c,%esp
56c0da:	5d                   	pop    %ebp
56c0db:	5f                   	pop    %edi
56c0dc:	5e                   	pop    %esi
56c0dd:	5b                   	pop    %ebx
56c0de:	c3                   	ret
56c0df:	90                   	nop
56c0e0:	53                   	push   %ebx
56c0e1:	8b d8                	mov    %eax,%ebx
56c0e3:	56                   	push   %esi
56c0e4:	57                   	push   %edi
56c0e5:	55                   	push   %ebp
56c0e6:	83 c4 e8             	add    $0xffffffe8,%esp
56c0e9:	8b 43 60             	mov    0x60(%ebx),%eax
56c0ec:	8b 7b 48             	mov    0x48(%ebx),%edi
56c0ef:	85 c0                	test   %eax,%eax
56c0f1:	0f 84 71 04 00 00    	je     0x56c568
56c0f7:	33 d2                	xor    %edx,%edx
56c0f9:	89 53 30             	mov    %edx,0x30(%ebx)
56c0fc:	33 c9                	xor    %ecx,%ecx
56c0fe:	89 4b 34             	mov    %ecx,0x34(%ebx)
56c101:	33 c0                	xor    %eax,%eax
56c103:	89 44 24 04          	mov    %eax,0x4(%esp)
56c107:	8b 43 0c             	mov    0xc(%ebx),%eax
56c10a:	e9 96 00 00 00       	jmp    0x56c1a5
56c10f:	33 d2                	xor    %edx,%edx
56c111:	8b 48 04             	mov    0x4(%eax),%ecx
56c114:	89 0c 24             	mov    %ecx,(%esp)
56c117:	eb 7b                	jmp    0x56c194
56c119:	8b 0c 24             	mov    (%esp),%ecx
56c11c:	8b 30                	mov    (%eax),%esi
56c11e:	8b 49 08             	mov    0x8(%ecx),%ecx
56c121:	03 ce                	add    %esi,%ecx
56c123:	be 01 00 00 00       	mov    $0x1,%esi
56c128:	2b ca                	sub    %edx,%ecx
56c12a:	49                   	dec    %ecx
56c12b:	d3 e6                	shl    %cl,%esi
56c12d:	0f af 70 08          	imul   0x8(%eax),%esi
56c131:	89 74 24 08          	mov    %esi,0x8(%esp)
56c135:	8b 0c 24             	mov    (%esp),%ecx
56c138:	8b 30                	mov    (%eax),%esi
56c13a:	8b 49 0c             	mov    0xc(%ecx),%ecx
56c13d:	03 ce                	add    %esi,%ecx
56c13f:	be 01 00 00 00       	mov    $0x1,%esi
56c144:	2b ca                	sub    %edx,%ecx
56c146:	49                   	dec    %ecx
56c147:	d3 e6                	shl    %cl,%esi
56c149:	8b ce                	mov    %esi,%ecx
56c14b:	8b 73 30             	mov    0x30(%ebx),%esi
56c14e:	0f af 48 0c          	imul   0xc(%eax),%ecx
56c152:	85 f6                	test   %esi,%esi
56c154:	75 06                	jne    0x56c15c
56c156:	8b 74 24 08          	mov    0x8(%esp),%esi
56c15a:	eb 14                	jmp    0x56c170
56c15c:	8b 73 30             	mov    0x30(%ebx),%esi
56c15f:	8b 6c 24 08          	mov    0x8(%esp),%ebp
56c163:	3b f5                	cmp    %ebp,%esi
56c165:	7d 05                	jge    0x56c16c
56c167:	8b 73 30             	mov    0x30(%ebx),%esi
56c16a:	eb 04                	jmp    0x56c170
56c16c:	8b 74 24 08          	mov    0x8(%esp),%esi
56c170:	89 73 30             	mov    %esi,0x30(%ebx)
56c173:	8b 73 34             	mov    0x34(%ebx),%esi
56c176:	85 f6                	test   %esi,%esi
56c178:	75 04                	jne    0x56c17e
56c17a:	8b f1                	mov    %ecx,%esi
56c17c:	eb 0e                	jmp    0x56c18c
56c17e:	8b 73 34             	mov    0x34(%ebx),%esi
56c181:	3b ce                	cmp    %esi,%ecx
56c183:	7e 05                	jle    0x56c18a
56c185:	8b 73 34             	mov    0x34(%ebx),%esi
56c188:	eb 02                	jmp    0x56c18c
56c18a:	8b f1                	mov    %ecx,%esi
56c18c:	89 73 34             	mov    %esi,0x34(%ebx)
56c18f:	42                   	inc    %edx
56c190:	83 04 24 14          	addl   $0x14,(%esp)
56c194:	8b 08                	mov    (%eax),%ecx
56c196:	3b d1                	cmp    %ecx,%edx
56c198:	0f 8c 7b ff ff ff    	jl     0x56c119
56c19e:	ff 44 24 04          	incl   0x4(%esp)
56c1a2:	83 c0 10             	add    $0x10,%eax
56c1a5:	8b 54 24 04          	mov    0x4(%esp),%edx
56c1a9:	8b 4b 08             	mov    0x8(%ebx),%ecx
56c1ac:	3b d1                	cmp    %ecx,%edx
56c1ae:	0f 8c 5b ff ff ff    	jl     0x56c10f
56c1b4:	33 c0                	xor    %eax,%eax
56c1b6:	89 43 60             	mov    %eax,0x60(%ebx)
56c1b9:	8b 53 3c             	mov    0x3c(%ebx),%edx
56c1bc:	89 53 2c             	mov    %edx,0x2c(%ebx)
56c1bf:	e9 21 04 00 00       	jmp    0x56c5e5
56c1c4:	8b 43 38             	mov    0x38(%ebx),%eax
56c1c7:	89 43 28             	mov    %eax,0x28(%ebx)
56c1ca:	e9 f9 03 00 00       	jmp    0x56c5c8
56c1cf:	0f b7 57 04          	movzwl 0x4(%edi),%edx
56c1d3:	89 53 18             	mov    %edx,0x18(%ebx)
56c1d6:	8b 4b 18             	mov    0x18(%ebx),%ecx
56c1d9:	c1 e1 04             	shl    $0x4,%ecx
56c1dc:	8b 43 0c             	mov    0xc(%ebx),%eax
56c1df:	03 c8                	add    %eax,%ecx
56c1e1:	89 4b 10             	mov    %ecx,0x10(%ebx)
56c1e4:	e9 ba 03 00 00       	jmp    0x56c5a3