5701bf:	d3 fa                	sar    %cl,%edx
5701c1:	be 01 00 00 00       	mov    $0x1,%esi
5701c6:	d3 e6                	shl    %cl,%esi
5701c8:	8b 4c 24 44          	mov    0x44(%esp),%ecx
5701cc:	89 74 24 2c          	mov    %esi,0x2c(%esp)
5701d0:	8d 46 ff             	lea    -0x1(%esi),%eax
5701d3:	23 c8                	and    %eax,%ecx
5701d5:	8b c2                	mov    %edx,%eax
5701d7:	89 4c 24 18          	mov    %ecx,0x18(%esp)
5701db:	f7 d0                	not    %eax
5701dd:	c1 e8 1f             	shr    $0x1f,%eax
5701e0:	8d 4a ff             	lea    -0x1(%edx),%ecx
5701e3:	c1 e9 1f             	shr    $0x1f,%ecx
5701e6:	23 c8                	and    %eax,%ecx
5701e8:	8b c2                	mov    %edx,%eax
5701ea:	f7 d9                	neg    %ecx
5701ec:	83 f0 01             	xor    $0x1,%eax
5701ef:	83 e1 01             	and    $0x1,%ecx
5701f2:	f7 d9                	neg    %ecx
5701f4:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5701f8:	8d 48 ff             	lea    -0x1(%eax),%ecx
5701fb:	f7 d0                	not    %eax
5701fd:	c1 e9 1f             	shr    $0x1f,%ecx
570200:	c1 e8 1f             	shr    $0x1f,%eax
570203:	23 c8                	and    %eax,%ecx
570205:	8b c2                	mov    %edx,%eax
570207:	f7 d9                	neg    %ecx
570209:	83 f0 02             	xor    $0x2,%eax
57020c:	83 e1 01             	and    $0x1,%ecx
57020f:	83 f2 03             	xor    $0x3,%edx
570212:	f7 d9                	neg    %ecx
570214:	89 4c 24 24          	mov    %ecx,0x24(%esp)
570218:	8d 48 ff             	lea    -0x1(%eax),%ecx
57021b:	f7 d0                	not    %eax
57021d:	c1 e8 1f             	shr    $0x1f,%eax
570220:	c1 e9 1f             	shr    $0x1f,%ecx
570223:	23 c8                	and    %eax,%ecx
570225:	8d 42 ff             	lea    -0x1(%edx),%eax
570228:	c1 e8 1f             	shr    $0x1f,%eax
57022b:	f7 d9                	neg    %ecx
57022d:	f7 d2                	not    %edx
57022f:	83 e1 01             	and    $0x1,%ecx
570232:	c1 ea 1f             	shr    $0x1f,%edx
570235:	f7 d9                	neg    %ecx
570237:	23 c2                	and    %edx,%eax
570239:	89 4c 24 20          	mov    %ecx,0x20(%esp)
57023d:	f7 d8                	neg    %eax
57023f:	33 c9                	xor    %ecx,%ecx
570241:	83 e0 01             	and    $0x1,%eax
570244:	89 4c 24 14          	mov    %ecx,0x14(%esp)
570248:	f7 d8                	neg    %eax
57024a:	89 44 24 1c          	mov    %eax,0x1c(%esp)
57024e:	85 ed                	test   %ebp,%ebp
570250:	0f 8e b8 00 00 00    	jle    0x57030e
570256:	c1 e3 02             	shl    $0x2,%ebx
570259:	89 5c 24 30          	mov    %ebx,0x30(%esp)
57025d:	0f 1f 00             	nopl   (%eax)
570260:	33 d2                	xor    %edx,%edx
570262:	33 db                	xor    %ebx,%ebx
570264:	89 54 24 48          	mov    %edx,0x48(%esp)
570268:	85 f6                	test   %esi,%esi
57026a:	0f 8e 84 00 00 00    	jle    0x5702f4
570270:	8d 04 76             	lea    (%esi,%esi,2),%eax
570273:	8d 0c f7             	lea    (%edi,%esi,8),%ecx
570276:	8d 04 87             	lea    (%edi,%eax,4),%eax
570279:	89 4c 24 10          	mov    %ecx,0x10(%esp)
57027d:	8d 2c b7             	lea    (%edi,%esi,4),%ebp
570280:	89 44 24 40          	mov    %eax,0x40(%esp)
570284:	8b 00                	mov    (%eax),%eax
570286:	8d 6d 04             	lea    0x4(%ebp),%ebp
570289:	8b 09                	mov    (%ecx),%ecx
57028b:	8b f3                	mov    %ebx,%esi
57028d:	23 4c 24 20          	and    0x20(%esp),%ecx
570291:	23 44 24 1c          	and    0x1c(%esp),%eax
570295:	33 74 24 18          	xor    0x18(%esp),%esi
570299:	0b c8                	or     %eax,%ecx
57029b:	8b 55 fc             	mov    -0x4(%ebp),%edx
57029e:	23 54 24 24          	and    0x24(%esp),%edx
5702a2:	8b 04 9f             	mov    (%edi,%ebx,4),%eax
5702a5:	0b d1                	or     %ecx,%edx
5702a7:	23 44 24 28          	and    0x28(%esp),%eax
5702ab:	8d 4e ff             	lea    -0x1(%esi),%ecx
5702ae:	c1 e9 1f             	shr    $0x1f,%ecx
5702b1:	f7 d6                	not    %esi
5702b3:	c1 ee 1f             	shr    $0x1f,%esi
5702b6:	0b c2                	or     %edx,%eax
5702b8:	8b 54 24 48          	mov    0x48(%esp),%edx
5702bc:	23 ce                	and    %esi,%ecx
5702be:	8b 74 24 2c          	mov    0x2c(%esp),%esi
5702c2:	f7 d9                	neg    %ecx
5702c4:	83 e1 01             	and    $0x1,%ecx
5702c7:	43                   	inc    %ebx
5702c8:	f7 d9                	neg    %ecx
5702ca:	23 c8                	and    %eax,%ecx
5702cc:	8b 44 24 40          	mov    0x40(%esp),%eax
5702d0:	0b d1                	or     %ecx,%edx
5702d2:	83 c0 04             	add    $0x4,%eax
5702d5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5702d9:	83 c1 04             	add    $0x4,%ecx
5702dc:	89 54 24 48          	mov    %edx,0x48(%esp)
5702e0:	89 44 24 40          	mov    %eax,0x40(%esp)
5702e4:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5702e8:	3b de                	cmp    %esi,%ebx
5702ea:	7c 98                	jl     0x570284
5702ec:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
5702f0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5702f4:	8b 44 24 38          	mov    0x38(%esp),%eax
5702f8:	03 7c 24 30          	add    0x30(%esp),%edi
5702fc:	8b 00                	mov    (%eax),%eax
5702fe:	89 14 88             	mov    %edx,(%eax,%ecx,4)
570301:	41                   	inc    %ecx
570302:	89 4c 24 14          	mov    %ecx,0x14(%esp)
570306:	3b cd                	cmp    %ebp,%ecx
570308:	0f 8c 52 ff ff ff    	jl     0x570260
57030e:	8b 54 24 38          	mov    0x38(%esp),%edx
570312:	89 6a 04             	mov    %ebp,0x4(%edx)
570315:	85 ed                	test   %ebp,%ebp
570317:	7e 19                	jle    0x570332
570319:	8b 0a                	mov    (%edx),%ecx
57031b:	83 c1 fc             	add    $0xfffffffc,%ecx
57031e:	8d 0c a9             	lea    (%ecx,%ebp,4),%ecx
570321:	8b 01                	mov    (%ecx),%eax
570323:	8d 49 fc             	lea    -0x4(%ecx),%ecx
570326:	85 c0                	test   %eax,%eax
570328:	75 05                	jne    0x57032f
57032a:	4d                   	dec    %ebp
57032b:	85 ed                	test   %ebp,%ebp
57032d:	7f f2                	jg     0x570321
57032f:	89 6a 04             	mov    %ebp,0x4(%edx)
570332:	83 7a 04 00          	cmpl   $0x0,0x4(%edx)
570336:	75 07                	jne    0x57033f
570338:	c7 42 0c 00 00 00 00 	movl   $0x0,0xc(%edx)
57033f:	5f                   	pop    %edi
570340:	5e                   	pop    %esi
570341:	5d                   	pop    %ebp
570342:	b8 01 00 00 00       	mov    $0x1,%eax
570347:	5b                   	pop    %ebx
570348:	83 c4 24             	add    $0x24,%esp
57034b:	c3                   	ret
57034c:	cc                   	int3
57034d:	cc                   	int3
57034e:	cc                   	int3
57034f:	cc                   	int3
570350:	8b 4c 24 14          	mov    0x14(%esp),%ecx
570354:	53                   	push   %ebx
570355:	8b 5c 24 08          	mov    0x8(%esp),%ebx
570359:	55                   	push   %ebp
57035a:	57                   	push   %edi
57035b:	8b 7c 24 14          	mov    0x14(%esp),%edi
57035f:	bd 01 00 00 00       	mov    $0x1,%ebp
570364:	d3 e5                	shl    %cl,%ebp
570366:	3b 7b 04             	cmp    0x4(%ebx),%edi
570369:	0f 4f 7b 04          	cmovg  0x4(%ebx),%edi
57036d:	33 c9                	xor    %ecx,%ecx
57036f:	85 ff                	test   %edi,%edi
570371:	7e 1e                	jle    0x570391
570373:	8b 54 24 1c          	mov    0x1c(%esp),%edx
570377:	8b 44 24 18          	mov    0x18(%esp),%eax
57037b:	56                   	push   %esi
57037c:	c1 e5 02             	shl    $0x2,%ebp
57037f:	8d 34 90             	lea    (%eax,%edx,4),%esi
570382:	8b 13                	mov    (%ebx),%edx
570384:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
570387:	41                   	inc    %ecx
570388:	89 16                	mov    %edx,(%esi)
57038a:	03 f5                	add    %ebp,%esi
57038c:	3b cf                	cmp    %edi,%ecx
57038e:	7c f2                	jl     0x570382
570390:	5e                   	pop    %esi
570391:	5f                   	pop    %edi
570392:	5d                   	pop    %ebp
570393:	b8 01 00 00 00       	mov    $0x1,%eax
570398:	5b                   	pop    %ebx
570399:	c3                   	ret
57039a:	cc                   	int3
57039b:	cc                   	int3
57039c:	cc                   	int3
57039d:	cc                   	int3
57039e:	cc                   	int3
57039f:	cc                   	int3
5703a0:	b8 50 00 00 00       	mov    $0x50,%eax
5703a5:	e8 46 11 07 00       	call   0x5e14f0
5703aa:	53                   	push   %ebx
5703ab:	8b 5c 24 60          	mov    0x60(%esp),%ebx
5703af:	33 d2                	xor    %edx,%edx
5703b1:	56                   	push   %esi
5703b2:	89 54 24 14          	mov    %edx,0x14(%esp)
5703b6:	8b 4b 04             	mov    0x4(%ebx),%ecx
5703b9:	85 c9                	test   %ecx,%ecx
5703bb:	7e 08                	jle    0x5703c5
5703bd:	8b 03                	mov    (%ebx),%eax
5703bf:	39 54 88 fc          	cmp    %edx,-0x4(%eax,%ecx,4)
5703c3:	74 13                	je     0x5703d8
5703c5:	8b 74 24 68          	mov    0x68(%esp),%esi
5703c9:	8b 4e 04             	mov    0x4(%esi),%ecx
5703cc:	85 c9                	test   %ecx,%ecx
5703ce:	7e 28                	jle    0x5703f8
5703d0:	8b 06                	mov    (%esi),%eax
5703d2:	39 54 88 fc          	cmp    %edx,-0x4(%eax,%ecx,4)
5703d6:	75 20                	jne    0x5703f8
5703d8:	68 cf 00 00 00       	push   $0xcf
5703dd:	68 a0 c9 6b 00       	push   $0x6bc9a0
5703e2:	6a 6b                	push   $0x6b
5703e4:	6a 6b                	push   $0x6b
5703e6:	6a 03                	push   $0x3
5703e8:	e8 b3 10 f3 ff       	call   0x4a14a0
5703ed:	83 c4 14             	add    $0x14,%esp
5703f0:	5e                   	pop    %esi
5703f1:	33 c0                	xor    %eax,%eax
5703f3:	5b                   	pop    %ebx
5703f4:	83 c4 50             	add    $0x50,%esp
5703f7:	c3                   	ret
5703f8:	f6 43 10 04          	testb  $0x4,0x10(%ebx)
5703fc:	75 06                	jne    0x570404
5703fe:	f6 46 10 04          	testb  $0x4,0x10(%esi)
570402:	74 09                	je     0x57040d
570404:	ba 01 00 00 00       	mov    $0x1,%edx
570409:	89 54 24 14          	mov    %edx,0x14(%esp)
57040d:	85 c9                	test   %ecx,%ecx
57040f:	75 20                	jne    0x570431
570411:	68 e5 00 00 00       	push   $0xe5
570416:	68 a0 c9 6b 00       	push   $0x6bc9a0
57041b:	6a 67                	push   $0x67
57041d:	6a 6b                	push   $0x6b
57041f:	6a 03                	push   $0x3
570421:	e8 7a 10 f3 ff       	call   0x4a14a0
570426:	83 c4 14             	add    $0x14,%esp
570429:	33 c0                	xor    %eax,%eax
57042b:	5e                   	pop    %esi
57042c:	5b                   	pop    %ebx
57042d:	83 c4 50             	add    $0x50,%esp
570430:	c3                   	ret
570431:	85 d2                	test   %edx,%edx
570433:	75 42                	jne    0x570477
570435:	56                   	push   %esi
570436:	53                   	push   %ebx
570437:	e8 14 31 f4 ff       	call   0x4b3550
57043c:	83 c4 08             	add    $0x8,%esp
57043f:	85 c0                	test   %eax,%eax
570441:	79 34                	jns    0x570477
570443:	8b 44 24 60          	mov    0x60(%esp),%eax
570447:	85 c0                	test   %eax,%eax
570449:	74 0e                	je     0x570459
57044b:	53                   	push   %ebx
57044c:	50                   	push   %eax
57044d:	e8 7e 2c f4 ff       	call   0x4b30d0
570452:	83 c4 08             	add    $0x8,%esp
570455:	85 c0                	test   %eax,%eax
570457:	74 97                	je     0x5703f0
570459:	8b 44 24 5c          	mov    0x5c(%esp),%eax
57045d:	85 c0                	test   %eax,%eax
57045f:	74 0b                	je     0x57046c
570461:	6a 00                	push   $0x0
570463:	50                   	push   %eax
570464:	e8 87 30 f4 ff       	call   0x4b34f0
570469:	83 c4 08             	add    $0x8,%esp
57046c:	5e                   	pop    %esi
57046d:	b8 01 00 00 00       	mov    $0x1,%eax
570472:	5b                   	pop    %ebx
570473:	83 c4 50             	add    $0x50,%esp
570476:	c3                   	ret
570477:	8b 5c 24 6c          	mov    0x6c(%esp),%ebx
57047b:	55                   	push   %ebp
57047c:	57                   	push   %edi
57047d:	53                   	push   %ebx
57047e:	e8 1d 7a f6 ff       	call   0x4d7ea0
570483:	53                   	push   %ebx
570484:	e8 37 79 f6 ff       	call   0x4d7dc0
570489:	53                   	push   %ebx
57048a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
57048e:	e8 2d 79 f6 ff       	call   0x4d7dc0
570493:	8b e8                	mov    %eax,%ebp
570495:	53                   	push   %ebx
570496:	89 6c 24 54          	mov    %ebp,0x54(%esp)
57049a:	e8 21 79 f6 ff       	call   0x4d7dc0
57049f:	8b 5c 24 74          	mov    0x74(%esp),%ebx
5704a3:	83 c4 10             	add    $0x10,%esp
5704a6:	89 5c 24 28          	mov    %ebx,0x28(%esp)
5704aa:	8b f8                	mov    %eax,%edi
5704ac:	89 7c 24 38          	mov    %edi,0x38(%esp)
5704b0:	85 db                	test   %ebx,%ebx
5704b2:	75 12                	jne    0x5704c6
5704b4:	ff 74 24 74          	push   0x74(%esp)
5704b8:	e8 03 79 f6 ff       	call   0x4d7dc0
5704bd:	83 c4 04             	add    $0x4,%esp
5704c0:	89 44 24 28          	mov    %eax,0x28(%esp)
5704c4:	8b d8                	mov    %eax,%ebx
5704c6:	85 ff                	test   %edi,%edi
5704c8:	0f 84 e9 03 00 00    	je     0x5708b7
5704ce:	85 db                	test   %ebx,%ebx
5704d0:	0f 84 e1 03 00 00    	je     0x5708b7
5704d6:	8b 44 24 20          	mov    0x20(%esp),%eax
5704da:	85 c0                	test   %eax,%eax
5704dc:	0f 84 d5 03 00 00    	je     0x5708b7
5704e2:	85 ed                	test   %ebp,%ebp
5704e4:	0f 84 cd 03 00 00    	je     0x5708b7
5704ea:	56                   	push   %esi
5704eb:	e8 80 2e f4 ff       	call   0x4b3370
5704f0:	25 1f 00 00 80       	and    $0x8000001f,%eax
5704f5:	79 05                	jns    0x5704fc
5704f7:	48                   	dec    %eax
5704f8:	83 c8 e0             	or     $0xffffffe0,%eax
5704fb:	40                   	inc    %eax
5704fc:	bb 20 00 00 00       	mov    $0x20,%ebx
570501:	2b d8                	sub    %eax,%ebx
570503:	53                   	push   %ebx
570504:	56                   	push   %esi
570505:	57                   	push   %edi
570506:	e8 f5 3f f4 ff       	call   0x4b4500
57050b:	83 c4 10             	add    $0x10,%esp
57050e:	85 c0                	test   %eax,%eax
570510:	0f 84 a1 03 00 00    	je     0x5708b7
570516:	83 c3 20             	add    $0x20,%ebx
570519:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
570520:	53                   	push   %ebx
570521:	ff 74 24 70          	push   0x70(%esp)
570525:	89 5c 24 50          	mov    %ebx,0x50(%esp)
570529:	55                   	push   %ebp
57052a:	e8 d1 3f f4 ff       	call   0x4b4500
57052f:	83 c4 0c             	add    $0xc,%esp
570532:	85 c0                	test   %eax,%eax
570534:	0f 84 7d 03 00 00    	je     0x5708b7
57053a:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
57053f:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
570546:	0f 84 86 00 00 00    	je     0x5705d2
57054c:	8b 57 04             	mov    0x4(%edi),%edx
57054f:	8b 4d 04             	mov    0x4(%ebp),%ecx
570552:	8d 42 01             	lea    0x1(%edx),%eax
570555:	3b c8                	cmp    %eax,%ecx
570557:	7f 4b                	jg     0x5705a4
570559:	8d 42 02             	lea    0x2(%edx),%eax
57055c:	3b 45 08             	cmp    0x8(%ebp),%eax
57055f:	7f 04                	jg     0x570565
570561:	8b c5                	mov    %ebp,%eax
570563:	eb 0a                	jmp    0x57056f
570565:	50                   	push   %eax
570566:	55                   	push   %ebp
570567:	e8 34 31 f4 ff       	call   0x4b36a0
57056c:	83 c4 08             	add    $0x8,%esp
57056f:	85 c0                	test   %eax,%eax
570571:	0f 84 40 03 00 00    	je     0x5708b7
570577:	8b 47 04             	mov    0x4(%edi),%eax
57057a:	8b 4d 04             	mov    0x4(%ebp),%ecx
57057d:	83 c0 02             	add    $0x2,%eax
570580:	3b c8                	cmp    %eax,%ecx
570582:	7d 15                	jge    0x570599
570584:	8b 45 00             	mov    0x0(%ebp),%eax
570587:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
57058e:	41                   	inc    %ecx
57058f:	8b 47 04             	mov    0x4(%edi),%eax