56c97d:	8b 50 0c             	mov    0xc(%eax),%edx
56c980:	d3 e2                	shl    %cl,%edx
56c982:	85 d2                	test   %edx,%edx
56c984:	7f 17                	jg     0x56c99d
56c986:	68 09 02 00 00       	push   $0x209
56c98b:	68 9b 08 6a 00       	push   $0x6a089b
56c990:	68 72 08 6a 00       	push   $0x6a0872
56c995:	e8 a6 e1 fe ff       	call   0x55ab40
56c99a:	83 c4 0c             	add    $0xc,%esp
56c99d:	8b 43 10             	mov    0x10(%ebx),%eax
56c9a0:	8b ce                	mov    %esi,%ecx
56c9a2:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c9a5:	8b 40 0c             	mov    0xc(%eax),%eax
56c9a8:	d3 e0                	shl    %cl,%eax
56c9aa:	03 c2                	add    %edx,%eax
56c9ac:	8b 53 10             	mov    0x10(%ebx),%edx
56c9af:	8b ce                	mov    %esi,%ecx
56c9b1:	48                   	dec    %eax
56c9b2:	8b 52 0c             	mov    0xc(%edx),%edx
56c9b5:	d3 e2                	shl    %cl,%edx
56c9b7:	8b ca                	mov    %edx,%ecx
56c9b9:	99                   	cltd
56c9ba:	f7 f9                	idiv   %ecx
56c9bc:	85 c0                	test   %eax,%eax
56c9be:	7c 0a                	jl     0x56c9ca
56c9c0:	8b 43 14             	mov    0x14(%ebx),%eax
56c9c3:	8b 40 0c             	mov    0xc(%eax),%eax
56c9c6:	85 c0                	test   %eax,%eax
56c9c8:	7f 17                	jg     0x56c9e1
56c9ca:	68 09 02 00 00       	push   $0x209
56c9cf:	68 96 09 6a 00       	push   $0x6a0996
56c9d4:	68 a7 08 6a 00       	push   $0x6a08a7
56c9d9:	e8 62 e1 fe ff       	call   0x55ab40
56c9de:	83 c4 0c             	add    $0xc,%esp
56c9e1:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c9e4:	85 d2                	test   %edx,%edx
56c9e6:	7c 0e                	jl     0x56c9f6
56c9e8:	8b ce                	mov    %esi,%ecx
56c9ea:	8b 43 10             	mov    0x10(%ebx),%eax
56c9ed:	8b 50 0c             	mov    0xc(%eax),%edx
56c9f0:	d3 e2                	shl    %cl,%edx
56c9f2:	85 d2                	test   %edx,%edx
56c9f4:	7f 17                	jg     0x56ca0d
56c9f6:	68 09 02 00 00       	push   $0x209
56c9fb:	68 cb 09 6a 00       	push   $0x6a09cb
56ca00:	68 a2 09 6a 00       	push   $0x6a09a2
56ca05:	e8 36 e1 fe ff       	call   0x55ab40
56ca0a:	83 c4 0c             	add    $0xc,%esp
56ca0d:	8b 43 10             	mov    0x10(%ebx),%eax
56ca10:	8b ce                	mov    %esi,%ecx
56ca12:	8b 53 2c             	mov    0x2c(%ebx),%edx
56ca15:	8b 40 0c             	mov    0xc(%eax),%eax
56ca18:	d3 e0                	shl    %cl,%eax
56ca1a:	03 c2                	add    %edx,%eax
56ca1c:	8b 53 10             	mov    0x10(%ebx),%edx
56ca1f:	8b ce                	mov    %esi,%ecx
56ca21:	48                   	dec    %eax
56ca22:	8b 52 0c             	mov    0xc(%edx),%edx
56ca25:	d3 e2                	shl    %cl,%edx
56ca27:	8b ca                	mov    %edx,%ecx
56ca29:	99                   	cltd
56ca2a:	f7 f9                	idiv   %ecx
56ca2c:	8b 53 14             	mov    0x14(%ebx),%edx
56ca2f:	8b 4a 0c             	mov    0xc(%edx),%ecx
56ca32:	d3 f8                	sar    %cl,%eax
56ca34:	50                   	push   %eax
56ca35:	8b 43 14             	mov    0x14(%ebx),%eax
56ca38:	8b 40 0c             	mov    0xc(%eax),%eax
56ca3b:	85 c0                	test   %eax,%eax
56ca3d:	7f 17                	jg     0x56ca56
56ca3f:	68 0a 02 00 00       	push   $0x20a
56ca44:	68 02 0a 6a 00       	push   $0x6a0a02
56ca49:	68 d7 09 6a 00       	push   $0x6a09d7
56ca4e:	e8 ed e0 fe ff       	call   0x55ab40
56ca53:	83 c4 0c             	add    $0xc,%esp
56ca56:	8b 53 14             	mov    0x14(%ebx),%edx
56ca59:	8b 44 24 08          	mov    0x8(%esp),%eax
56ca5d:	8b 4a 0c             	mov    0xc(%edx),%ecx
56ca60:	5a                   	pop    %edx
56ca61:	d3 e8                	shr    %cl,%eax
56ca63:	92                   	xchg   %eax,%edx
56ca64:	2b c2                	sub    %edx,%eax
56ca66:	8b 53 14             	mov    0x14(%ebx),%edx
56ca69:	8b 52 10             	mov    0x10(%edx),%edx
56ca6c:	0f af d0             	imul   %eax,%edx
56ca6f:	03 d5                	add    %ebp,%edx
56ca71:	89 53 20             	mov    %edx,0x20(%ebx)
56ca74:	8b 43 14             	mov    0x14(%ebx),%eax
56ca77:	8b 08                	mov    (%eax),%ecx
56ca79:	3b d1                	cmp    %ecx,%edx
56ca7b:	7c 17                	jl     0x56ca94
56ca7d:	68 0f 02 00 00       	push   $0x20f
56ca82:	68 2e 0a 6a 00       	push   $0x6a0a2e
56ca87:	68 0e 0a 6a 00       	push   $0x6a0a0e
56ca8c:	e8 af e0 fe ff       	call   0x55ab40
56ca91:	83 c4 0c             	add    $0xc,%esp
56ca94:	33 c0                	xor    %eax,%eax
56ca96:	89 43 24             	mov    %eax,0x24(%ebx)
56ca99:	eb 20                	jmp    0x56cabb
56ca9b:	8b 53 14             	mov    0x14(%ebx),%edx
56ca9e:	8b 4b 20             	mov    0x20(%ebx),%ecx
56caa1:	c1 e1 02             	shl    $0x2,%ecx
56caa4:	8b 52 04             	mov    0x4(%edx),%edx
56caa7:	03 d1                	add    %ecx,%edx
56caa9:	8b 0a                	mov    (%edx),%ecx
56caab:	3b c1                	cmp    %ecx,%eax
56caad:	7c 09                	jl     0x56cab8
56caaf:	ff 02                	incl   (%edx)
56cab1:	33 c0                	xor    %eax,%eax
56cab3:	e9 88 00 00 00       	jmp    0x56cb40
56cab8:	ff 43 24             	incl   0x24(%ebx)
56cabb:	8b 43 24             	mov    0x24(%ebx),%eax
56cabe:	8b 13                	mov    (%ebx),%edx
56cac0:	3b c2                	cmp    %edx,%eax
56cac2:	7d 08                	jge    0x56cacc
56cac4:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
56cac8:	3b c1                	cmp    %ecx,%eax
56caca:	7c cf                	jl     0x56ca9b
56cacc:	ff 43 1c             	incl   0x1c(%ebx)
56cacf:	83 43 14 14          	addl   $0x14,0x14(%ebx)
56cad3:	8b 53 10             	mov    0x10(%ebx),%edx
56cad6:	8b 12                	mov    (%edx),%edx
56cad8:	8b 43 1c             	mov    0x1c(%ebx),%eax
56cadb:	3b d0                	cmp    %eax,%edx
56cadd:	7e 0d                	jle    0x56caec
56cadf:	33 c9                	xor    %ecx,%ecx
56cae1:	8a 4f 02             	mov    0x2(%edi),%cl
56cae4:	3b c1                	cmp    %ecx,%eax
56cae6:	0f 8c 6d fc ff ff    	jl     0x56c759
56caec:	8b 43 28             	mov    0x28(%ebx),%eax
56caef:	8b 4b 30             	mov    0x30(%ebx),%ecx
56caf2:	99                   	cltd
56caf3:	f7 f9                	idiv   %ecx
56caf5:	2b ca                	sub    %edx,%ecx
56caf7:	01 4b 28             	add    %ecx,0x28(%ebx)
56cafa:	8b 43 28             	mov    0x28(%ebx),%eax
56cafd:	8b 53 40             	mov    0x40(%ebx),%edx
56cb00:	3b c2                	cmp    %edx,%eax
56cb02:	0f 8c 33 fc ff ff    	jl     0x56c73b
56cb08:	8b 43 2c             	mov    0x2c(%ebx),%eax
56cb0b:	8b 4b 34             	mov    0x34(%ebx),%ecx
56cb0e:	99                   	cltd
56cb0f:	f7 7b 34             	idivl  0x34(%ebx)
56cb12:	2b ca                	sub    %edx,%ecx
56cb14:	01 4b 2c             	add    %ecx,0x2c(%ebx)
56cb17:	8b 43 2c             	mov    0x2c(%ebx),%eax
56cb1a:	8b 53 44             	mov    0x44(%ebx),%edx
56cb1d:	3b c2                	cmp    %edx,%eax
56cb1f:	0f 8c 0b fc ff ff    	jl     0x56c730
56cb25:	ff 43 18             	incl   0x18(%ebx)
56cb28:	83 43 10 10          	addl   $0x10,0x10(%ebx)
56cb2c:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
56cb30:	8b 43 18             	mov    0x18(%ebx),%eax
56cb33:	3b c8                	cmp    %eax,%ecx
56cb35:	0f 8f fb fa ff ff    	jg     0x56c636
56cb3b:	b8 01 00 00 00       	mov    $0x1,%eax
56cb40:	83 c4 0c             	add    $0xc,%esp
56cb43:	5d                   	pop    %ebp
56cb44:	5f                   	pop    %edi
56cb45:	5e                   	pop    %esi
56cb46:	5b                   	pop    %ebx
56cb47:	c3                   	ret
56cb48:	8b 50 04             	mov    0x4(%eax),%edx
56cb4b:	85 d2                	test   %edx,%edx
56cb4d:	74 07                	je     0x56cb56
56cb4f:	8b c2                	mov    %edx,%eax
56cb51:	e8 2e b8 00 00       	call   0x578384
56cb56:	c3                   	ret
56cb57:	90                   	nop
56cb58:	53                   	push   %ebx
56cb59:	56                   	push   %esi
56cb5a:	57                   	push   %edi
56cb5b:	8b f8                	mov    %eax,%edi
56cb5d:	8b 47 04             	mov    0x4(%edi),%eax
56cb60:	85 c0                	test   %eax,%eax
56cb62:	74 1f                	je     0x56cb83
56cb64:	33 f6                	xor    %esi,%esi
56cb66:	8b d8                	mov    %eax,%ebx
56cb68:	eb 0b                	jmp    0x56cb75
56cb6a:	8b c3                	mov    %ebx,%eax
56cb6c:	e8 d7 ff ff ff       	call   0x56cb48
56cb71:	46                   	inc    %esi
56cb72:	83 c3 14             	add    $0x14,%ebx
56cb75:	8b 17                	mov    (%edi),%edx
56cb77:	3b f2                	cmp    %edx,%esi
56cb79:	7c ef                	jl     0x56cb6a
56cb7b:	8b 47 04             	mov    0x4(%edi),%eax
56cb7e:	e8 01 b8 00 00       	call   0x578384
56cb83:	5f                   	pop    %edi
56cb84:	5e                   	pop    %esi
56cb85:	5b                   	pop    %ebx
56cb86:	c3                   	ret
56cb87:	90                   	nop
56cb88:	53                   	push   %ebx
56cb89:	8b d8                	mov    %eax,%ebx
56cb8b:	56                   	push   %esi
56cb8c:	57                   	push   %edi
56cb8d:	8b 43 0c             	mov    0xc(%ebx),%eax
56cb90:	85 c0                	test   %eax,%eax
56cb92:	74 20                	je     0x56cbb4
56cb94:	33 ff                	xor    %edi,%edi
56cb96:	8b f0                	mov    %eax,%esi
56cb98:	eb 0b                	jmp    0x56cba5
56cb9a:	8b c6                	mov    %esi,%eax
56cb9c:	e8 b7 ff ff ff       	call   0x56cb58
56cba1:	47                   	inc    %edi
56cba2:	83 c6 10             	add    $0x10,%esi
56cba5:	8b 53 08             	mov    0x8(%ebx),%edx
56cba8:	3b fa                	cmp    %edx,%edi
56cbaa:	7c ee                	jl     0x56cb9a
56cbac:	8b 43 0c             	mov    0xc(%ebx),%eax
56cbaf:	e8 d0 b7 00 00       	call   0x578384
56cbb4:	8b 43 4c             	mov    0x4c(%ebx),%eax
56cbb7:	85 c0                	test   %eax,%eax
56cbb9:	74 05                	je     0x56cbc0
56cbbb:	e8 b8 01 00 00       	call   0x56cd78
56cbc0:	8b c3                	mov    %ebx,%eax
56cbc2:	e8 bd b7 00 00       	call   0x578384
56cbc7:	5f                   	pop    %edi
56cbc8:	5e                   	pop    %esi
56cbc9:	5b                   	pop    %ebx
56cbca:	c3                   	ret
56cbcb:	90                   	nop
56cbcc:	53                   	push   %ebx
56cbcd:	b8 6c 00 00 00       	mov    $0x6c,%eax
56cbd2:	e8 a5 b7 00 00       	call   0x57837c
56cbd7:	8b d8                	mov    %eax,%ebx
56cbd9:	85 c0                	test   %eax,%eax
56cbdb:	75 04                	jne    0x56cbe1
56cbdd:	33 c0                	xor    %eax,%eax
56cbdf:	5b                   	pop    %ebx
56cbe0:	c3                   	ret
56cbe1:	33 d2                	xor    %edx,%edx
56cbe3:	89 53 0c             	mov    %edx,0xc(%ebx)
56cbe6:	33 c9                	xor    %ecx,%ecx
56cbe8:	89 4b 5c             	mov    %ecx,0x5c(%ebx)
56cbeb:	e8 28 00 00 00       	call   0x56cc18
56cbf0:	89 43 4c             	mov    %eax,0x4c(%ebx)
56cbf3:	85 c0                	test   %eax,%eax
56cbf5:	75 0b                	jne    0x56cc02
56cbf7:	8b c3                	mov    %ebx,%eax
56cbf9:	e8 86 b7 00 00       	call   0x578384
56cbfe:	33 c0                	xor    %eax,%eax
56cc00:	5b                   	pop    %ebx
56cc01:	c3                   	ret
56cc02:	8b c3                	mov    %ebx,%eax
56cc04:	5b                   	pop    %ebx
56cc05:	c3                   	ret
56cc06:	90                   	nop
56cc07:	90                   	nop
56cc08:	8b ca                	mov    %edx,%ecx
56cc0a:	8b 40 4c             	mov    0x4c(%eax),%eax
56cc0d:	83 ca ff             	or     $0xffffffff,%edx
56cc10:	e8 2b 00 00 00       	call   0x56cc40
56cc15:	c3                   	ret
56cc16:	90                   	nop
56cc17:	90                   	nop
56cc18:	53                   	push   %ebx
56cc19:	b8 0c 00 00 00       	mov    $0xc,%eax
56cc1e:	e8 59 b7 00 00       	call   0x57837c
56cc23:	8b d8                	mov    %eax,%ebx
56cc25:	85 c0                	test   %eax,%eax
56cc27:	75 04                	jne    0x56cc2d
56cc29:	33 c0                	xor    %eax,%eax
56cc2b:	5b                   	pop    %ebx
56cc2c:	c3                   	ret
56cc2d:	33 d2                	xor    %edx,%edx
56cc2f:	89 13                	mov    %edx,(%ebx)
56cc31:	33 c9                	xor    %ecx,%ecx
56cc33:	89 4b 04             	mov    %ecx,0x4(%ebx)
56cc36:	33 c0                	xor    %eax,%eax
56cc38:	89 43 08             	mov    %eax,0x8(%ebx)
56cc3b:	8b c3                	mov    %ebx,%eax
56cc3d:	5b                   	pop    %ebx
56cc3e:	c3                   	ret
56cc3f:	90                   	nop
56cc40:	53                   	push   %ebx
56cc41:	56                   	push   %esi
56cc42:	57                   	push   %edi
56cc43:	55                   	push   %ebp
56cc44:	51                   	push   %ecx
56cc45:	89 0c 24             	mov    %ecx,(%esp)
56cc48:	8b f2                	mov    %edx,%esi
56cc4a:	8b d8                	mov    %eax,%ebx
56cc4c:	85 f6                	test   %esi,%esi
56cc4e:	7d 02                	jge    0x56cc52
56cc50:	8b 33                	mov    (%ebx),%esi
56cc52:	8b 43 04             	mov    0x4(%ebx),%eax
56cc55:	8b 13                	mov    (%ebx),%edx
56cc57:	3b c2                	cmp    %edx,%eax
56cc59:	7f 26                	jg     0x56cc81
56cc5b:	8b f8                	mov    %eax,%edi
56cc5d:	8b 43 08             	mov    0x8(%ebx),%eax
56cc60:	81 c7 80 00 00 00    	add    $0x80,%edi
56cc66:	8b d7                	mov    %edi,%edx
56cc68:	c1 e2 02             	shl    $0x2,%edx
56cc6b:	e8 1c b7 00 00       	call   0x57838c
56cc70:	8b e8                	mov    %eax,%ebp
56cc72:	85 c0                	test   %eax,%eax
56cc74:	75 05                	jne    0x56cc7b
56cc76:	83 c8 ff             	or     $0xffffffff,%eax
56cc79:	eb 28                	jmp    0x56cca3
56cc7b:	89 7b 04             	mov    %edi,0x4(%ebx)
56cc7e:	89 6b 08             	mov    %ebp,0x8(%ebx)
56cc81:	8b 03                	mov    (%ebx),%eax
56cc83:	3b f0                	cmp    %eax,%esi
56cc85:	7d 0f                	jge    0x56cc96
56cc87:	8b 53 08             	mov    0x8(%ebx),%edx
56cc8a:	8b 4c 82 fc          	mov    -0x4(%edx,%eax,4),%ecx
56cc8e:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
56cc91:	48                   	dec    %eax
56cc92:	3b f0                	cmp    %eax,%esi
56cc94:	7c f1                	jl     0x56cc87
56cc96:	8b 43 08             	mov    0x8(%ebx),%eax
56cc99:	8b 14 24             	mov    (%esp),%edx
56cc9c:	89 14 b0             	mov    %edx,(%eax,%esi,4)
56cc9f:	ff 03                	incl   (%ebx)
56cca1:	33 c0                	xor    %eax,%eax
56cca3:	5a                   	pop    %edx
56cca4:	5d                   	pop    %ebp
56cca5:	5f                   	pop    %edi
56cca6:	5e                   	pop    %esi
56cca7:	5b                   	pop    %ebx
56cca8:	c3                   	ret
56cca9:	90                   	nop
56ccaa:	90                   	nop
56ccab:	90                   	nop
56ccac:	53                   	push   %ebx
56ccad:	8b d8                	mov    %eax,%ebx
56ccaf:	56                   	push   %esi
56ccb0:	8b f2                	mov    %edx,%esi
56ccb2:	8b 03                	mov    (%ebx),%eax
56ccb4:	3b f0                	cmp    %eax,%esi
56ccb6:	7c 17                	jl     0x56cccf
56ccb8:	68 83 02 00 00       	push   $0x283
56ccbd:	68 56 0a 6a 00       	push   $0x6a0a56
56ccc2:	68 3a 0a 6a 00       	push   $0x6a0a3a
56ccc7:	e8 74 de fe ff       	call   0x55ab40
56cccc:	83 c4 0c             	add    $0xc,%esp
56cccf:	8b 53 08             	mov    0x8(%ebx),%edx
56ccd2:	8d 46 01             	lea    0x1(%esi),%eax
56ccd5:	8b 0c b2             	mov    (%edx,%esi,4),%ecx
56ccd8:	eb 0b                	jmp    0x56cce5
56ccda:	8b 53 08             	mov    0x8(%ebx),%edx
56ccdd:	8b 34 82             	mov    (%edx,%eax,4),%esi
56cce0:	89 74 82 fc          	mov    %esi,-0x4(%edx,%eax,4)
56cce4:	40                   	inc    %eax
56cce5:	8b 13                	mov    (%ebx),%edx
56cce7:	3b c2                	cmp    %edx,%eax
56cce9:	7c ef                	jl     0x56ccda