56f210:	55                   	push   %ebp
56f211:	ff 74 24 38          	push   0x38(%esp)
56f215:	e8 26 40 f4 ff       	call   0x4b3240
56f21a:	83 c4 08             	add    $0x8,%esp
56f21d:	85 c0                	test   %eax,%eax
56f21f:	75 2a                	jne    0x56f24b
56f221:	39 44 24 2c          	cmp    %eax,0x2c(%esp)
56f225:	75 15                	jne    0x56f23c
56f227:	57                   	push   %edi
56f228:	56                   	push   %esi
56f229:	53                   	push   %ebx
56f22a:	53                   	push   %ebx
56f22b:	53                   	push   %ebx
56f22c:	e8 ef 1c 00 00       	call   0x570f20
56f231:	83 c4 14             	add    $0x14,%esp
56f234:	85 c0                	test   %eax,%eax
56f236:	0f 84 f6 00 00 00    	je     0x56f332
56f23c:	85 ed                	test   %ebp,%ebp
56f23e:	0f 84 c5 00 00 00    	je     0x56f309
56f244:	4d                   	dec    %ebp
56f245:	89 6c 24 18          	mov    %ebp,0x18(%esp)
56f249:	eb c5                	jmp    0x56f210
56f24b:	bd 01 00 00 00       	mov    $0x1,%ebp
56f250:	33 c0                	xor    %eax,%eax
56f252:	8b f5                	mov    %ebp,%esi
56f254:	89 44 24 14          	mov    %eax,0x14(%esp)
56f258:	39 74 24 20          	cmp    %esi,0x20(%esp)
56f25c:	7e 3e                	jle    0x56f29c
56f25e:	8b 7c 24 18          	mov    0x18(%esp),%edi
56f262:	8b 5c 24 34          	mov    0x34(%esp),%ebx
56f266:	4f                   	dec    %edi
56f267:	85 ff                	test   %edi,%edi
56f269:	78 2d                	js     0x56f298
56f26b:	57                   	push   %edi
56f26c:	53                   	push   %ebx
56f26d:	e8 ce 3f f4 ff       	call   0x4b3240
56f272:	83 c4 08             	add    $0x8,%esp
56f275:	85 c0                	test   %eax,%eax
56f277:	74 13                	je     0x56f28c
56f279:	8b ce                	mov    %esi,%ecx
56f27b:	8b c6                	mov    %esi,%eax
56f27d:	2b 4c 24 14          	sub    0x14(%esp),%ecx
56f281:	d3 e5                	shl    %cl,%ebp
56f283:	83 cd 01             	or     $0x1,%ebp
56f286:	89 44 24 14          	mov    %eax,0x14(%esp)
56f28a:	eb 04                	jmp    0x56f290
56f28c:	8b 44 24 14          	mov    0x14(%esp),%eax
56f290:	46                   	inc    %esi
56f291:	4f                   	dec    %edi
56f292:	3b 74 24 20          	cmp    0x20(%esp),%esi
56f296:	7c cf                	jl     0x56f267
56f298:	8b 5c 24 48          	mov    0x48(%esp),%ebx
56f29c:	83 7c 24 2c 00       	cmpl   $0x0,0x2c(%esp)
56f2a1:	8d 78 01             	lea    0x1(%eax),%edi
56f2a4:	75 26                	jne    0x56f2cc
56f2a6:	33 f6                	xor    %esi,%esi
56f2a8:	85 ff                	test   %edi,%edi
56f2aa:	7e 20                	jle    0x56f2cc
56f2ac:	0f 1f 40 00          	nopl   0x0(%eax)
56f2b0:	ff 74 24 24          	push   0x24(%esp)
56f2b4:	ff 74 24 14          	push   0x14(%esp)
56f2b8:	53                   	push   %ebx
56f2b9:	53                   	push   %ebx
56f2ba:	53                   	push   %ebx
56f2bb:	e8 60 1c 00 00       	call   0x570f20
56f2c0:	83 c4 14             	add    $0x14,%esp
56f2c3:	85 c0                	test   %eax,%eax
56f2c5:	74 63                	je     0x56f32a
56f2c7:	46                   	inc    %esi
56f2c8:	3b f7                	cmp    %edi,%esi
56f2ca:	7c e4                	jl     0x56f2b0
56f2cc:	8b 7c 24 24          	mov    0x24(%esp),%edi
56f2d0:	8b 74 24 10          	mov    0x10(%esp),%esi
56f2d4:	57                   	push   %edi
56f2d5:	d1 fd                	sar    $1,%ebp
56f2d7:	56                   	push   %esi
56f2d8:	ff 74 ac 54          	push   0x54(%esp,%ebp,4)
56f2dc:	53                   	push   %ebx
56f2dd:	53                   	push   %ebx
56f2de:	e8 3d 1c 00 00       	call   0x570f20
56f2e3:	83 c4 14             	add    $0x14,%esp
56f2e6:	85 c0                	test   %eax,%eax
56f2e8:	74 48                	je     0x56f332
56f2ea:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56f2ee:	83 c8 ff             	or     $0xffffffff,%eax
56f2f1:	2b 44 24 14          	sub    0x14(%esp),%eax
56f2f5:	03 e8                	add    %eax,%ebp
56f2f7:	c7 44 24 2c 00 00 00 	movl   $0x0,0x2c(%esp)
56f2fe:	00
56f2ff:	89 6c 24 18          	mov    %ebp,0x18(%esp)
56f303:	0f 89 07 ff ff ff    	jns    0x56f210
56f309:	57                   	push   %edi
56f30a:	56                   	push   %esi
56f30b:	53                   	push   %ebx
56f30c:	ff 74 24 44          	push   0x44(%esp)
56f310:	e8 0b 19 00 00       	call   0x570c20
56f315:	33 c9                	xor    %ecx,%ecx
56f317:	83 c4 10             	add    $0x10,%esp
56f31a:	85 c0                	test   %eax,%eax
56f31c:	b8 01 00 00 00       	mov    $0x1,%eax
56f321:	0f 45 c8             	cmovne %eax,%ecx
56f324:	89 4c 24 30          	mov    %ecx,0x30(%esp)
56f328:	eb 08                	jmp    0x56f332
56f32a:	8b 7c 24 24          	mov    0x24(%esp),%edi
56f32e:	8b 74 24 10          	mov    0x10(%esp),%esi
56f332:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
56f337:	75 0d                	jne    0x56f346
56f339:	85 f6                	test   %esi,%esi
56f33b:	74 09                	je     0x56f346
56f33d:	56                   	push   %esi
56f33e:	e8 fd 15 00 00       	call   0x570940
56f343:	83 c4 04             	add    $0x4,%esp
56f346:	57                   	push   %edi
56f347:	e8 04 8a f6 ff       	call   0x4d7d50
56f34c:	8b 44 24 34          	mov    0x34(%esp),%eax
56f350:	83 c4 04             	add    $0x4,%esp
56f353:	eb 1a                	jmp    0x56f36f
56f355:	68 a7 01 00 00       	push   $0x1a7
56f35a:	68 88 c9 6b 00       	push   $0x6bc988
56f35f:	6a 66                	push   $0x66
56f361:	6a 6d                	push   $0x6d
56f363:	6a 03                	push   $0x3
56f365:	e8 36 21 f3 ff       	call   0x4a14a0
56f36a:	83 c4 14             	add    $0x14,%esp
56f36d:	33 c0                	xor    %eax,%eax
56f36f:	8b 8c 24 cc 00 00 00 	mov    0xcc(%esp),%ecx
56f376:	5f                   	pop    %edi
56f377:	5e                   	pop    %esi
56f378:	5d                   	pop    %ebp
56f379:	5b                   	pop    %ebx
56f37a:	33 cc                	xor    %esp,%ecx
56f37c:	e8 59 21 07 00       	call   0x5e14da
56f381:	81 c4 c0 00 00 00    	add    $0xc0,%esp
56f387:	c3                   	ret
56f388:	cc                   	int3
56f389:	cc                   	int3
56f38a:	cc                   	int3
56f38b:	cc                   	int3
56f38c:	cc                   	int3
56f38d:	cc                   	int3
56f38e:	cc                   	int3
56f38f:	cc                   	int3
56f390:	55                   	push   %ebp
56f391:	8b ec                	mov    %esp,%ebp
56f393:	b8 60 00 00 00       	mov    $0x60,%eax
56f398:	e8 53 21 07 00       	call   0x5e14f0
56f39d:	a1 d4 89 72 00       	mov    0x7289d4,%eax
56f3a2:	33 c5                	xor    %ebp,%eax
56f3a4:	89 45 fc             	mov    %eax,-0x4(%ebp)
56f3a7:	53                   	push   %ebx
56f3a8:	8b 5d 14             	mov    0x14(%ebp),%ebx
56f3ab:	56                   	push   %esi
56f3ac:	57                   	push   %edi
56f3ad:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
56f3b4:	8b 43 04             	mov    0x4(%ebx),%eax
56f3b7:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
56f3be:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
56f3c5:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
56f3cc:	89 45 f8             	mov    %eax,-0x8(%ebp)
56f3cf:	85 c0                	test   %eax,%eax
56f3d1:	0f 8e 7e 05 00 00    	jle    0x56f955
56f3d7:	8b 03                	mov    (%ebx),%eax
56f3d9:	f6 00 01             	testb  $0x1,(%eax)
56f3dc:	0f 84 73 05 00 00    	je     0x56f955
56f3e2:	ff 75 10             	push   0x10(%ebp)
56f3e5:	e8 86 3f f4 ff       	call   0x4b3370
56f3ea:	8b f0                	mov    %eax,%esi
56f3ec:	83 c4 04             	add    $0x4,%esp
56f3ef:	85 f6                	test   %esi,%esi
56f3f1:	75 5d                	jne    0x56f450
56f3f3:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
56f3f7:	75 34                	jne    0x56f42d
56f3f9:	8b 03                	mov    (%ebx),%eax
56f3fb:	83 38 01             	cmpl   $0x1,(%eax)
56f3fe:	75 2d                	jne    0x56f42d
56f400:	39 73 0c             	cmp    %esi,0xc(%ebx)
56f403:	75 28                	jne    0x56f42d
56f405:	6a 00                	push   $0x0
56f407:	ff 75 08             	push   0x8(%ebp)
56f40a:	be 01 00 00 00       	mov    $0x1,%esi
56f40f:	e8 dc 40 f4 ff       	call   0x4b34f0
56f414:	83 c4 08             	add    $0x8,%esp
56f417:	8b c6                	mov    %esi,%eax
56f419:	8d 65 94             	lea    -0x6c(%ebp),%esp
56f41c:	5f                   	pop    %edi
56f41d:	5e                   	pop    %esi
56f41e:	5b                   	pop    %ebx
56f41f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56f422:	33 cd                	xor    %ebp,%ecx
56f424:	e8 b1 20 07 00       	call   0x5e14da
56f429:	8b e5                	mov    %ebp,%esp
56f42b:	5d                   	pop    %ebp
56f42c:	c3                   	ret
56f42d:	6a 01                	push   $0x1
56f42f:	ff 75 08             	push   0x8(%ebp)
56f432:	e8 b9 40 f4 ff       	call   0x4b34f0
56f437:	8b f0                	mov    %eax,%esi
56f439:	83 c4 08             	add    $0x8,%esp
56f43c:	8d 65 94             	lea    -0x6c(%ebp),%esp
56f43f:	5f                   	pop    %edi
56f440:	5e                   	pop    %esi
56f441:	5b                   	pop    %ebx
56f442:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56f445:	33 cd                	xor    %ebp,%ecx
56f447:	e8 8e 20 07 00       	call   0x5e14da
56f44c:	8b e5                	mov    %ebp,%esp
56f44e:	5d                   	pop    %ebp
56f44f:	c3                   	ret
56f450:	ff 75 18             	push   0x18(%ebp)
56f453:	e8 48 8a f6 ff       	call   0x4d7ea0
56f458:	8b 45 1c             	mov    0x1c(%ebp),%eax
56f45b:	83 c4 04             	add    $0x4,%esp
56f45e:	85 c0                	test   %eax,%eax
56f460:	74 07                	je     0x56f469
56f462:	8b f8                	mov    %eax,%edi
56f464:	89 7d ec             	mov    %edi,-0x14(%ebp)
56f467:	eb 27                	jmp    0x56f490
56f469:	e8 12 15 00 00       	call   0x570980
56f46e:	8b f8                	mov    %eax,%edi
56f470:	89 7d ec             	mov    %edi,-0x14(%ebp)
56f473:	85 ff                	test   %edi,%edi
56f475:	0f 84 b8 04 00 00    	je     0x56f933
56f47b:	ff 75 18             	push   0x18(%ebp)
56f47e:	53                   	push   %ebx
56f47f:	57                   	push   %edi
56f480:	e8 5b 15 00 00       	call   0x5709e0
56f485:	83 c4 0c             	add    $0xc,%esp
56f488:	85 c0                	test   %eax,%eax
56f48a:	0f 84 73 04 00 00    	je     0x56f903
56f490:	81 fe a9 03 00 00    	cmp    $0x3a9,%esi
56f496:	7e 07                	jle    0x56f49f
56f498:	bb 06 00 00 00       	mov    $0x6,%ebx
56f49d:	eb 2a                	jmp    0x56f4c9
56f49f:	81 fe 32 01 00 00    	cmp    $0x132,%esi
56f4a5:	7e 07                	jle    0x56f4ae
56f4a7:	bb 05 00 00 00       	mov    $0x5,%ebx
56f4ac:	eb 1b                	jmp    0x56f4c9
56f4ae:	83 fe 59             	cmp    $0x59,%esi
56f4b1:	7e 07                	jle    0x56f4ba
56f4b3:	bb 04 00 00 00       	mov    $0x4,%ebx
56f4b8:	eb 0f                	jmp    0x56f4c9
56f4ba:	33 db                	xor    %ebx,%ebx
56f4bc:	83 fe 16             	cmp    $0x16,%esi
56f4bf:	0f 9f c3             	setg   %bl
56f4c2:	8d 1c 5d 01 00 00 00 	lea    0x1(,%ebx,2),%ebx
56f4c9:	8b 55 f8             	mov    -0x8(%ebp),%edx
56f4cc:	8b cb                	mov    %ebx,%ecx
56f4ce:	b8 01 00 00 00       	mov    $0x1,%eax
56f4d3:	89 5d f0             	mov    %ebx,-0x10(%ebp)
56f4d6:	d3 e0                	shl    %cl,%eax
56f4d8:	89 45 e0             	mov    %eax,-0x20(%ebp)
56f4db:	8b 4d e0             	mov    -0x20(%ebp),%ecx
56f4de:	8d 04 12             	lea    (%edx,%edx,1),%eax
56f4e1:	3b c1                	cmp    %ecx,%eax
56f4e3:	0f 4f c8             	cmovg  %eax,%ecx
56f4e6:	8b 45 e0             	mov    -0x20(%ebp),%eax
56f4e9:	0f af c2             	imul   %edx,%eax
56f4ec:	89 45 e4             	mov    %eax,-0x1c(%ebp)
56f4ef:	03 c1                	add    %ecx,%eax
56f4f1:	c1 e0 02             	shl    $0x2,%eax
56f4f4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
56f4f7:	3d 00 0c 00 00       	cmp    $0xc00,%eax
56f4fc:	7d 0f                	jge    0x56f50d
56f4fe:	83 c0 40             	add    $0x40,%eax
56f501:	e8 4a 29 07 00       	call   0x5e1e50
56f506:	8b cc                	mov    %esp,%ecx
56f508:	89 4d dc             	mov    %ecx,-0x24(%ebp)
56f50b:	eb 23                	jmp    0x56f530
56f50d:	68 2e 03 00 00       	push   $0x32e
56f512:	83 c0 40             	add    $0x40,%eax
56f515:	68 88 c9 6b 00       	push   $0x6bc988
56f51a:	50                   	push   %eax
56f51b:	e8 90 0c f3 ff       	call   0x4a01b0
56f520:	8b c8                	mov    %eax,%ecx
56f522:	83 c4 0c             	add    $0xc,%esp
56f525:	89 4d dc             	mov    %ecx,-0x24(%ebp)
56f528:	85 c9                	test   %ecx,%ecx
56f52a:	0f 84 ca 03 00 00    	je     0x56f8fa
56f530:	ff 75 d4             	push   -0x2c(%ebp)
56f533:	8b c1                	mov    %ecx,%eax
56f535:	83 e0 3f             	and    $0x3f,%eax
56f538:	2b c8                	sub    %eax,%ecx
56f53a:	83 c1 40             	add    $0x40,%ecx
56f53d:	6a 00                	push   $0x0
56f53f:	51                   	push   %ecx
56f540:	89 4d f4             	mov    %ecx,-0xc(%ebp)
56f543:	e8 b8 44 07 00       	call   0x5e3a00
56f548:	8b 45 dc             	mov    -0x24(%ebp),%eax
56f54b:	33 c9                	xor    %ecx,%ecx
56f54d:	8b 55 f8             	mov    -0x8(%ebp),%edx
56f550:	83 c4 0c             	add    $0xc,%esp
56f553:	81 7d d4 00 0c 00 00 	cmpl   $0xc00,-0x2c(%ebp)
56f55a:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
56f561:	0f 4c c1             	cmovl  %ecx,%eax
56f564:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
56f56b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
56f56e:	89 45 dc             	mov    %eax,-0x24(%ebp)
56f571:	8b 45 f4             	mov    -0xc(%ebp),%eax
56f574:	89 55 a8             	mov    %edx,-0x58(%ebp)
56f577:	89 55 c8             	mov    %edx,-0x38(%ebp)
56f57a:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
56f581:	8d 04 88             	lea    (%eax,%ecx,4),%eax
56f584:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
56f58b:	8b 4d 14             	mov    0x14(%ebp),%ecx
56f58e:	89 45 c0             	mov    %eax,-0x40(%ebp)
56f591:	89 45 e4             	mov    %eax,-0x1c(%ebp)
56f594:	8d 04 90             	lea    (%eax,%edx,4),%eax
56f597:	89 45 a0             	mov    %eax,-0x60(%ebp)
56f59a:	8b 01                	mov    (%ecx),%eax
56f59c:	c7 45 b0 02 00 00 00 	movl   $0x2,-0x50(%ebp)
56f5a3:	c7 45 d0 02 00 00 00 	movl   $0x2,-0x30(%ebp)
56f5aa:	f7 44 90 fc 00 00 00 	testl  $0x80000000,-0x4(%eax,%edx,4)
56f5b1:	80
56f5b2:	0f 84 de 00 00 00    	je     0x56f696
56f5b8:	8b 00                	mov    (%eax),%eax
56f5ba:	8b 55 e4             	mov    -0x1c(%ebp),%edx
56f5bd:	f7 d8                	neg    %eax
56f5bf:	89 02                	mov    %eax,(%edx)
56f5c1:	ba 01 00 00 00       	mov    $0x1,%edx
56f5c6:	8b 45 f8             	mov    -0x8(%ebp),%eax
56f5c9:	8d 78 ff             	lea    -0x1(%eax),%edi
56f5cc:	89 7d e8             	mov    %edi,-0x18(%ebp)
56f5cf:	8b 7d ec             	mov    -0x14(%ebp),%edi
56f5d2:	3b c2                	cmp    %edx,%eax
56f5d4:	0f 8e b4 00 00 00    	jle    0x56f68e
56f5da:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
56f5de:	0f 82 87 00 00 00    	jb     0x56f66b
56f5e4:	8b 01                	mov    (%ecx),%eax
56f5e6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
56f5e9:	8b 45 c0             	mov    -0x40(%ebp),%eax
56f5ec:	8d 58 04             	lea    0x4(%eax),%ebx
56f5ef:	89 5d b8             	mov    %ebx,-0x48(%ebp)
56f5f2:	8b 5d e8             	mov    -0x18(%ebp),%ebx
56f5f5:	8d 04 98             	lea    (%eax,%ebx,4),%eax
56f5f8:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
56f5fb:	89 45 bc             	mov    %eax,-0x44(%ebp)
56f5fe:	8d 43 04             	lea    0x4(%ebx),%eax
56f601:	89 45 d8             	mov    %eax,-0x28(%ebp)
56f604:	8b 45 e8             	mov    -0x18(%ebp),%eax
56f607:	8d 04 83             	lea    (%ebx,%eax,4),%eax
56f60a:	8b 5d f0             	mov    -0x10(%ebp),%ebx
56f60d:	39 45 b8             	cmp    %eax,-0x48(%ebp)
56f610:	8b 45 bc             	mov    -0x44(%ebp),%eax
56f613:	77 05                	ja     0x56f61a
56f615:	3b 45 d8             	cmp    -0x28(%ebp),%eax
56f618:	73 51                	jae    0x56f66b
56f61a:	39 4d b8             	cmp    %ecx,-0x48(%ebp)
56f61d:	77 04                	ja     0x56f623
56f61f:	3b c1                	cmp    %ecx,%eax
56f621:	73 48                	jae    0x56f66b