566045:	0f 94 c1             	sete   %cl
566048:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56604c:	85 c0                	test   %eax,%eax
56604e:	0f 84 ac 00 00 00    	je     0x566100
566054:	f6 c3 01             	test   $0x1,%bl
566057:	74 1b                	je     0x566074
566059:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
56605d:	75 04                	jne    0x566063
56605f:	33 c0                	xor    %eax,%eax
566061:	eb 04                	jmp    0x566067
566063:	8b 07                	mov    (%edi),%eax
566065:	8b 00                	mov    (%eax),%eax
566067:	83 e0 07             	and    $0x7,%eax
56606a:	8b 04 85 b4 7e 65 00 	mov    0x657eb4(,%eax,4),%eax
566071:	0f af e8             	imul   %eax,%ebp
566074:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
566078:	8b 46 04             	mov    0x4(%esi),%eax
56607b:	74 12                	je     0x56608f
56607d:	85 c0                	test   %eax,%eax
56607f:	75 06                	jne    0x566087
566081:	33 c9                	xor    %ecx,%ecx
566083:	f7 d1                	not    %ecx
566085:	eb 14                	jmp    0x56609b
566087:	8b 06                	mov    (%esi),%eax
566089:	8b 08                	mov    (%eax),%ecx
56608b:	f7 d1                	not    %ecx
56608d:	eb 0c                	jmp    0x56609b
56608f:	85 c0                	test   %eax,%eax
566091:	75 04                	jne    0x566097
566093:	33 c9                	xor    %ecx,%ecx
566095:	eb 04                	jmp    0x56609b
566097:	8b 06                	mov    (%esi),%eax
566099:	8b 08                	mov    (%eax),%ecx
56609b:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
56609f:	75 04                	jne    0x5660a5
5660a1:	33 d2                	xor    %edx,%edx
5660a3:	eb 04                	jmp    0x5660a9
5660a5:	8b 07                	mov    (%edi),%eax
5660a7:	8b 10                	mov    (%eax),%edx
5660a9:	ff 74 24 20          	push   0x20(%esp)
5660ad:	8b c5                	mov    %ebp,%eax
5660af:	23 d1                	and    %ecx,%edx
5660b1:	f7 d8                	neg    %eax
5660b3:	80 e2 02             	and    $0x2,%dl
5660b6:	56                   	push   %esi
5660b7:	0f 44 c5             	cmove  %ebp,%eax
5660ba:	57                   	push   %edi
5660bb:	57                   	push   %edi
5660bc:	8b e8                	mov    %eax,%ebp
5660be:	e8 fd 76 f9 ff       	call   0x4fd7c0
5660c3:	33 db                	xor    %ebx,%ebx
5660c5:	83 c4 10             	add    $0x10,%esp
5660c8:	85 c0                	test   %eax,%eax
5660ca:	0f 94 c3             	sete   %bl
5660cd:	85 c0                	test   %eax,%eax
5660cf:	74 33                	je     0x566104
5660d1:	8b c6                	mov    %esi,%eax
5660d3:	8b f7                	mov    %edi,%esi
5660d5:	56                   	push   %esi
5660d6:	8b f8                	mov    %eax,%edi
5660d8:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
5660df:	e8 7c 3c f7 ff       	call   0x4d9d60
5660e4:	83 c4 04             	add    $0x4,%esp
5660e7:	85 c0                	test   %eax,%eax
5660e9:	0f 84 28 ff ff ff    	je     0x566017
5660ef:	57                   	push   %edi
5660f0:	e8 1b 3c f7 ff       	call   0x4d9d10
5660f5:	83 c4 04             	add    $0x4,%esp
5660f8:	f7 d8                	neg    %eax
5660fa:	1b c0                	sbb    %eax,%eax
5660fc:	23 e8                	and    %eax,%ebp
5660fe:	eb 04                	jmp    0x566104
566100:	8b 5c 24 10          	mov    0x10(%esp),%ebx
566104:	ff 74 24 20          	push   0x20(%esp)
566108:	e8 c3 19 f8 ff       	call   0x4e7ad0
56610d:	83 c4 04             	add    $0x4,%esp
566110:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
566115:	85 db                	test   %ebx,%ebx
566117:	0f 45 e8             	cmovne %eax,%ebp
56611a:	5f                   	pop    %edi
56611b:	5e                   	pop    %esi
56611c:	8b c5                	mov    %ebp,%eax
56611e:	5d                   	pop    %ebp
56611f:	5b                   	pop    %ebx
566120:	59                   	pop    %ecx
566121:	c3                   	ret
566122:	cc                   	int3
566123:	cc                   	int3
566124:	cc                   	int3
566125:	cc                   	int3
566126:	cc                   	int3
566127:	cc                   	int3
566128:	cc                   	int3
566129:	cc                   	int3
56612a:	cc                   	int3
56612b:	cc                   	int3
56612c:	cc                   	int3
56612d:	cc                   	int3
56612e:	cc                   	int3
56612f:	cc                   	int3
566130:	b8 1c 00 00 00       	mov    $0x1c,%eax
566135:	e8 76 b6 06 00       	call   0x5d17b0
56613a:	53                   	push   %ebx
56613b:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
56613f:	55                   	push   %ebp
566140:	56                   	push   %esi
566141:	8b 74 24 2c          	mov    0x2c(%esp),%esi
566145:	57                   	push   %edi
566146:	8b fe                	mov    %esi,%edi
566148:	53                   	push   %ebx
566149:	89 7c 24 14          	mov    %edi,0x14(%esp)
56614d:	e8 9e 3b f7 ff       	call   0x4d9cf0
566152:	8b 6c 24 40          	mov    0x40(%esp),%ebp
566156:	83 c4 04             	add    $0x4,%esp
566159:	85 c0                	test   %eax,%eax
56615b:	0f 84 4a 06 00 00    	je     0x5667ab
566161:	6a 01                	push   $0x1
566163:	53                   	push   %ebx
566164:	e8 d7 34 f7 ff       	call   0x4d9640
566169:	83 c4 08             	add    $0x8,%esp
56616c:	85 c0                	test   %eax,%eax
56616e:	0f 85 37 06 00 00    	jne    0x5667ab
566174:	8b 74 24 34          	mov    0x34(%esp),%esi
566178:	56                   	push   %esi
566179:	e8 e2 3b f7 ff       	call   0x4d9d60
56617e:	83 c4 04             	add    $0x4,%esp
566181:	85 c0                	test   %eax,%eax
566183:	0f 85 f5 05 00 00    	jne    0x56677e
566189:	56                   	push   %esi
56618a:	e8 81 3b f7 ff       	call   0x4d9d10
56618f:	83 c4 04             	add    $0x4,%esp
566192:	85 c0                	test   %eax,%eax
566194:	0f 85 e4 05 00 00    	jne    0x56677e
56619a:	55                   	push   %ebp
56619b:	e8 70 1c f8 ff       	call   0x4e7e10
5661a0:	55                   	push   %ebp
5661a1:	e8 2a 1a f8 ff       	call   0x4e7bd0
5661a6:	55                   	push   %ebp
5661a7:	89 44 24 28          	mov    %eax,0x28(%esp)
5661ab:	e8 20 1a f8 ff       	call   0x4e7bd0
5661b0:	55                   	push   %ebp
5661b1:	89 44 24 30          	mov    %eax,0x30(%esp)
5661b5:	e8 16 1a f8 ff       	call   0x4e7bd0
5661ba:	55                   	push   %ebp
5661bb:	89 44 24 38          	mov    %eax,0x38(%esp)
5661bf:	e8 0c 1a f8 ff       	call   0x4e7bd0
5661c4:	55                   	push   %ebp
5661c5:	8b f0                	mov    %eax,%esi
5661c7:	e8 04 1a f8 ff       	call   0x4e7bd0
5661cc:	55                   	push   %ebp
5661cd:	89 44 24 34          	mov    %eax,0x34(%esp)
5661d1:	e8 fa 19 f8 ff       	call   0x4e7bd0
5661d6:	83 c4 1c             	add    $0x1c,%esp
5661d9:	89 44 24 14          	mov    %eax,0x14(%esp)
5661dd:	85 c0                	test   %eax,%eax
5661df:	0f 84 5c 02 00 00    	je     0x566441
5661e5:	85 ff                	test   %edi,%edi
5661e7:	75 13                	jne    0x5661fc
5661e9:	e8 f2 3b f7 ff       	call   0x4d9de0
5661ee:	8b f8                	mov    %eax,%edi
5661f0:	89 7c 24 10          	mov    %edi,0x10(%esp)
5661f4:	85 ff                	test   %edi,%edi
5661f6:	0f 84 45 02 00 00    	je     0x566441
5661fc:	55                   	push   %ebp
5661fd:	53                   	push   %ebx
5661fe:	ff 74 24 3c          	push   0x3c(%esp)
566202:	ff 74 24 28          	push   0x28(%esp)
566206:	e8 b5 75 f9 ff       	call   0x4fd7c0
56620b:	83 c4 10             	add    $0x10,%esp
56620e:	85 c0                	test   %eax,%eax
566210:	0f 84 14 02 00 00    	je     0x56642a
566216:	bf 01 00 00 00       	mov    $0x1,%edi
56621b:	57                   	push   %edi
56621c:	53                   	push   %ebx
56621d:	e8 8e 3a f7 ff       	call   0x4d9cb0
566222:	83 c4 08             	add    $0x8,%esp
566225:	85 c0                	test   %eax,%eax
566227:	0f 85 b9 04 00 00    	jne    0x5666e6
56622d:	0f 1f 00             	nopl   (%eax)
566230:	47                   	inc    %edi
566231:	57                   	push   %edi
566232:	53                   	push   %ebx
566233:	e8 78 3a f7 ff       	call   0x4d9cb0
566238:	83 c4 08             	add    $0x8,%esp
56623b:	85 c0                	test   %eax,%eax
56623d:	74 f1                	je     0x566230
56623f:	83 ff 01             	cmp    $0x1,%edi
566242:	0f 84 9e 04 00 00    	je     0x5666e6
566248:	53                   	push   %ebx
566249:	83 ff 02             	cmp    $0x2,%edi
56624c:	0f 85 dc 00 00 00    	jne    0x56632e
566252:	ff 74 24 20          	push   0x20(%esp)
566256:	56                   	push   %esi
566257:	e8 f4 72 f9 ff       	call   0x4fd550
56625c:	83 c4 0c             	add    $0xc,%esp
56625f:	85 c0                	test   %eax,%eax
566261:	0f 84 c3 01 00 00    	je     0x56642a
566267:	8b 7c 24 24          	mov    0x24(%esp),%edi
56626b:	6a 03                	push   $0x3
56626d:	53                   	push   %ebx
56626e:	57                   	push   %edi
56626f:	e8 6c 49 f8 ff       	call   0x4eabe0
566274:	83 c4 0c             	add    $0xc,%esp
566277:	85 c0                	test   %eax,%eax
566279:	0f 84 ab 01 00 00    	je     0x56642a
56627f:	55                   	push   %ebp
566280:	53                   	push   %ebx
566281:	57                   	push   %edi
566282:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
566289:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
56628d:	56                   	push   %esi
56628e:	57                   	push   %edi
56628f:	e8 0c 79 f9 ff       	call   0x4fdba0
566294:	83 c4 14             	add    $0x14,%esp
566297:	85 c0                	test   %eax,%eax
566299:	0f 84 8b 01 00 00    	je     0x56642a
56629f:	55                   	push   %ebp
5662a0:	53                   	push   %ebx
5662a1:	57                   	push   %edi
5662a2:	8b 7c 24 20          	mov    0x20(%esp),%edi
5662a6:	57                   	push   %edi
5662a7:	e8 24 74 f9 ff       	call   0x4fd6d0
5662ac:	83 c4 10             	add    $0x10,%esp
5662af:	85 c0                	test   %eax,%eax
5662b1:	0f 84 73 01 00 00    	je     0x56642a
5662b7:	55                   	push   %ebp
5662b8:	53                   	push   %ebx
5662b9:	57                   	push   %edi
5662ba:	56                   	push   %esi
5662bb:	56                   	push   %esi
5662bc:	e8 8f 73 f9 ff       	call   0x4fd650
5662c1:	83 c4 14             	add    $0x14,%esp
5662c4:	85 c0                	test   %eax,%eax
5662c6:	0f 84 5e 01 00 00    	je     0x56642a
5662cc:	6a 01                	push   $0x1
5662ce:	56                   	push   %esi
5662cf:	e8 cc 65 f9 ff       	call   0x4fc8a0
5662d4:	83 c4 08             	add    $0x8,%esp
5662d7:	85 c0                	test   %eax,%eax
5662d9:	0f 84 4b 01 00 00    	je     0x56642a
5662df:	8b 7c 24 18          	mov    0x18(%esp),%edi
5662e3:	55                   	push   %ebp
5662e4:	53                   	push   %ebx
5662e5:	ff 74 24 28          	push   0x28(%esp)
5662e9:	ff 74 24 28          	push   0x28(%esp)
5662ed:	57                   	push   %edi
5662ee:	e8 5d 73 f9 ff       	call   0x4fd650
5662f3:	83 c4 14             	add    $0x14,%esp
5662f6:	85 c0                	test   %eax,%eax
5662f8:	0f 84 2c 01 00 00    	je     0x56642a
5662fe:	55                   	push   %ebp
5662ff:	53                   	push   %ebx
566300:	56                   	push   %esi
566301:	57                   	push   %edi
566302:	57                   	push   %edi
566303:	e8 48 73 f9 ff       	call   0x4fd650
566308:	8b 74 24 24          	mov    0x24(%esp),%esi
56630c:	83 c4 14             	add    $0x14,%esp
56630f:	85 c0                	test   %eax,%eax
566311:	0f 84 17 01 00 00    	je     0x56642e
566317:	57                   	push   %edi
566318:	56                   	push   %esi
566319:	e8 c2 37 f7 ff       	call   0x4d9ae0
56631e:	83 c4 08             	add    $0x8,%esp
566321:	85 c0                	test   %eax,%eax
566323:	0f 84 05 01 00 00    	je     0x56642e
566329:	e9 0a 04 00 00       	jmp    0x566738
56632e:	ff 74 24 28          	push   0x28(%esp)
566332:	e8 a9 37 f7 ff       	call   0x4d9ae0
566337:	83 c4 08             	add    $0x8,%esp
56633a:	85 c0                	test   %eax,%eax
56633c:	0f 84 e8 00 00 00    	je     0x56642a
566342:	8b 44 24 24          	mov    0x24(%esp),%eax
566346:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
56634d:	b8 02 00 00 00       	mov    $0x2,%eax
566352:	89 44 24 28          	mov    %eax,0x28(%esp)
566356:	83 f8 16             	cmp    $0x16,%eax
566359:	7d 03                	jge    0x56635e
56635b:	50                   	push   %eax
56635c:	eb 68                	jmp    0x5663c6
56635e:	6a 00                	push   $0x0
566360:	6a 00                	push   $0x0
566362:	53                   	push   %ebx
566363:	e8 b8 3a f7 ff       	call   0x4d9e20
566368:	83 c4 04             	add    $0x4,%esp
56636b:	50                   	push   %eax
56636c:	ff 74 24 20          	push   0x20(%esp)
566370:	e8 9b 6d f9 ff       	call   0x4fd110
566375:	83 c4 10             	add    $0x10,%esp
566378:	85 c0                	test   %eax,%eax
56637a:	0f 84 aa 00 00 00    	je     0x56642a
566380:	53                   	push   %ebx
566381:	ff 74 24 18          	push   0x18(%esp)
566385:	e8 b6 3d f7 ff       	call   0x4da140
56638a:	83 c4 08             	add    $0x8,%esp
56638d:	85 c0                	test   %eax,%eax
56638f:	78 21                	js     0x5663b2
566391:	8b 44 24 14          	mov    0x14(%esp),%eax
566395:	b9 f0 7e 4e 00       	mov    $0x4e7ef0,%ecx
56639a:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
56639e:	53                   	push   %ebx
56639f:	50                   	push   %eax
5663a0:	50                   	push   %eax
5663a1:	b8 80 7f 4e 00       	mov    $0x4e7f80,%eax
5663a6:	0f 45 c1             	cmovne %ecx,%eax
5663a9:	ff d0                	call   *%eax
5663ab:	83 c4 0c             	add    $0xc,%esp
5663ae:	85 c0                	test   %eax,%eax
5663b0:	74 78                	je     0x56642a
5663b2:	ff 74 24 14          	push   0x14(%esp)
5663b6:	e8 a5 39 f7 ff       	call   0x4d9d60
5663bb:	83 c4 04             	add    $0x4,%esp
5663be:	85 c0                	test   %eax,%eax
5663c0:	74 14                	je     0x5663d6
5663c2:	ff 74 24 28          	push   0x28(%esp)
5663c6:	ff 74 24 18          	push   0x18(%esp)
5663ca:	e8 11 3d f7 ff       	call   0x4da0e0
5663cf:	83 c4 08             	add    $0x8,%esp
5663d2:	85 c0                	test   %eax,%eax
5663d4:	74 54                	je     0x56642a
5663d6:	55                   	push   %ebp
5663d7:	ff 74 24 28          	push   0x28(%esp)
5663db:	ff 74 24 1c          	push   0x1c(%esp)
5663df:	e8 ec fa ff ff       	call   0x565ed0
5663e4:	83 c4 0c             	add    $0xc,%esp
5663e7:	83 f8 ff             	cmp    $0xffffffff,%eax
5663ea:	7c 3e                	jl     0x56642a
5663ec:	85 c0                	test   %eax,%eax
5663ee:	0f 84 e1 02 00 00    	je     0x5666d5
5663f4:	83 f8 01             	cmp    $0x1,%eax
5663f7:	75 14                	jne    0x56640d
5663f9:	8b 44 24 28          	mov    0x28(%esp),%eax
5663fd:	40                   	inc    %eax
5663fe:	89 44 24 28          	mov    %eax,0x28(%esp)
566402:	83 f8 52             	cmp    $0x52,%eax
566405:	0f 8c 4b ff ff ff    	jl     0x566356
56640b:	eb 05                	jmp    0x566412
56640d:	83 f8 ff             	cmp    $0xffffffff,%eax
566410:	74 44                	je     0x566456
566412:	68 d4 00 00 00       	push   $0xd4
566417:	68 d4 7e 65 00       	push   $0x657ed4
56641c:	6a 71                	push   $0x71
56641e:	6a 79                	push   $0x79
566420:	6a 03                	push   $0x3
566422:	e8 59 2b f7 ff       	call   0x4d8f80
566427:	83 c4 14             	add    $0x14,%esp
56642a:	8b 74 24 10          	mov    0x10(%esp),%esi
56642e:	3b 74 24 30          	cmp    0x30(%esp),%esi
566432:	74 09                	je     0x56643d
566434:	56                   	push   %esi