462052:	8b 11                	mov    (%ecx),%edx
462054:	8b 40 28             	mov    0x28(%eax),%eax
462057:	89 45 f8             	mov    %eax,-0x8(%ebp)
46205a:	8b 42 28             	mov    0x28(%edx),%eax
46205d:	3b 45 f8             	cmp    -0x8(%ebp),%eax
462060:	7c 0f                	jl     0x462071
462062:	7f 17                	jg     0x46207b
462064:	83 ee 04             	sub    $0x4,%esi
462067:	3b f1                	cmp    %ecx,%esi
462069:	74 06                	je     0x462071
46206b:	8b 06                	mov    (%esi),%eax
46206d:	89 16                	mov    %edx,(%esi)
46206f:	89 01                	mov    %eax,(%ecx)
462071:	83 eb 04             	sub    $0x4,%ebx
462074:	83 e9 04             	sub    $0x4,%ecx
462077:	3b fb                	cmp    %ebx,%edi
462079:	72 d5                	jb     0x462050
46207b:	8b 45 0c             	mov    0xc(%ebp),%eax
46207e:	3b d8                	cmp    %eax,%ebx
462080:	8b 55 f4             	mov    -0xc(%ebp),%edx
462083:	8b 7d fc             	mov    -0x4(%ebp),%edi
462086:	89 5d f8             	mov    %ebx,-0x8(%ebp)
462089:	75 2a                	jne    0x4620b5
46208b:	3b 55 10             	cmp    0x10(%ebp),%edx
46208e:	74 73                	je     0x462103
462090:	3b fa                	cmp    %edx,%edi
462092:	74 08                	je     0x46209c
462094:	8b 0e                	mov    (%esi),%ecx
462096:	8b 07                	mov    (%edi),%eax
462098:	89 06                	mov    %eax,(%esi)
46209a:	89 0f                	mov    %ecx,(%edi)
46209c:	8b 0e                	mov    (%esi),%ecx
46209e:	83 c7 04             	add    $0x4,%edi
4620a1:	8b 02                	mov    (%edx),%eax
4620a3:	89 06                	mov    %eax,(%esi)
4620a5:	83 c6 04             	add    $0x4,%esi
4620a8:	89 0a                	mov    %ecx,(%edx)
4620aa:	83 c2 04             	add    $0x4,%edx
4620ad:	89 7d fc             	mov    %edi,-0x4(%ebp)
4620b0:	e9 4c ff ff ff       	jmp    0x462001
4620b5:	83 c3 fc             	add    $0xfffffffc,%ebx
4620b8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4620bb:	3b 55 10             	cmp    0x10(%ebp),%edx
4620be:	75 33                	jne    0x4620f3
4620c0:	83 ee 04             	sub    $0x4,%esi
4620c3:	3b de                	cmp    %esi,%ebx
4620c5:	74 19                	je     0x4620e0
4620c7:	8b 06                	mov    (%esi),%eax
4620c9:	83 ef 04             	sub    $0x4,%edi
4620cc:	8b 0b                	mov    (%ebx),%ecx
4620ce:	89 03                	mov    %eax,(%ebx)
4620d0:	89 0e                	mov    %ecx,(%esi)
4620d2:	8b 07                	mov    (%edi),%eax
4620d4:	89 06                	mov    %eax,(%esi)
4620d6:	89 7d fc             	mov    %edi,-0x4(%ebp)
4620d9:	89 0f                	mov    %ecx,(%edi)
4620db:	e9 24 ff ff ff       	jmp    0x462004
4620e0:	8b 0e                	mov    (%esi),%ecx
4620e2:	83 ef 04             	sub    $0x4,%edi
4620e5:	89 7d fc             	mov    %edi,-0x4(%ebp)
4620e8:	8b 07                	mov    (%edi),%eax
4620ea:	89 06                	mov    %eax,(%esi)
4620ec:	89 0f                	mov    %ecx,(%edi)
4620ee:	e9 11 ff ff ff       	jmp    0x462004
4620f3:	8b 0a                	mov    (%edx),%ecx
4620f5:	8b 03                	mov    (%ebx),%eax
4620f7:	89 02                	mov    %eax,(%edx)
4620f9:	83 c2 04             	add    $0x4,%edx
4620fc:	89 0b                	mov    %ecx,(%ebx)
4620fe:	e9 fb fe ff ff       	jmp    0x461ffe
462103:	8b 45 08             	mov    0x8(%ebp),%eax
462106:	89 78 04             	mov    %edi,0x4(%eax)
462109:	5f                   	pop    %edi
46210a:	89 30                	mov    %esi,(%eax)
46210c:	5e                   	pop    %esi
46210d:	5b                   	pop    %ebx
46210e:	8b e5                	mov    %ebp,%esp
462110:	5d                   	pop    %ebp
462111:	c3                   	ret
462112:	cc                   	int3
462113:	cc                   	int3
462114:	cc                   	int3
462115:	cc                   	int3
462116:	cc                   	int3
462117:	cc                   	int3
462118:	cc                   	int3
462119:	cc                   	int3
46211a:	cc                   	int3
46211b:	cc                   	int3
46211c:	cc                   	int3
46211d:	cc                   	int3
46211e:	cc                   	int3
46211f:	cc                   	int3
462120:	55                   	push   %ebp
462121:	8b ec                	mov    %esp,%ebp
462123:	83 ec 08             	sub    $0x8,%esp
462126:	8b 45 0c             	mov    0xc(%ebp),%eax
462129:	8b d0                	mov    %eax,%edx
46212b:	53                   	push   %ebx
46212c:	56                   	push   %esi
46212d:	8b 75 10             	mov    0x10(%ebp),%esi
462130:	8b d8                	mov    %eax,%ebx
462132:	4e                   	dec    %esi
462133:	89 5d 0c             	mov    %ebx,0xc(%ebp)
462136:	8b ce                	mov    %esi,%ecx
462138:	89 75 f8             	mov    %esi,-0x8(%ebp)
46213b:	d1 f9                	sar    $1,%ecx
46213d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
462140:	57                   	push   %edi
462141:	8b 7d 08             	mov    0x8(%ebp),%edi
462144:	3b c1                	cmp    %ecx,%eax
462146:	7d 38                	jge    0x462180
462148:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
46214f:	00
462150:	8d 34 12             	lea    (%edx,%edx,1),%esi
462153:	33 db                	xor    %ebx,%ebx
462155:	8b 4c b7 08          	mov    0x8(%edi,%esi,4),%ecx
462159:	8b 54 b7 04          	mov    0x4(%edi,%esi,4),%edx
46215d:	8b 49 28             	mov    0x28(%ecx),%ecx
462160:	3b 4a 28             	cmp    0x28(%edx),%ecx
462163:	0f 9d c3             	setge  %bl
462166:	8d 53 01             	lea    0x1(%ebx),%edx
462169:	03 d6                	add    %esi,%edx
46216b:	8b 0c 97             	mov    (%edi,%edx,4),%ecx
46216e:	89 0c 87             	mov    %ecx,(%edi,%eax,4)
462171:	8b c2                	mov    %edx,%eax
462173:	8b 4d fc             	mov    -0x4(%ebp),%ecx
462176:	3b d1                	cmp    %ecx,%edx
462178:	7c d6                	jl     0x462150
46217a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46217d:	8b 75 f8             	mov    -0x8(%ebp),%esi
462180:	3b d1                	cmp    %ecx,%edx
462182:	75 11                	jne    0x462195
462184:	8b 4d 10             	mov    0x10(%ebp),%ecx
462187:	f6 c1 01             	test   $0x1,%cl
46218a:	75 09                	jne    0x462195
46218c:	8b 4c 8f fc          	mov    -0x4(%edi,%ecx,4),%ecx
462190:	89 0c 87             	mov    %ecx,(%edi,%eax,4)
462193:	8b c6                	mov    %esi,%eax
462195:	3b d8                	cmp    %eax,%ebx
462197:	7d 26                	jge    0x4621bf
462199:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4621a0:	8b 4d 14             	mov    0x14(%ebp),%ecx
4621a3:	8d 70 ff             	lea    -0x1(%eax),%esi
4621a6:	d1 fe                	sar    $1,%esi
4621a8:	8b 11                	mov    (%ecx),%edx
4621aa:	8b 1c b7             	mov    (%edi,%esi,4),%ebx
4621ad:	8b 4b 28             	mov    0x28(%ebx),%ecx
4621b0:	3b 4a 28             	cmp    0x28(%edx),%ecx
4621b3:	7d 0a                	jge    0x4621bf
4621b5:	89 1c 87             	mov    %ebx,(%edi,%eax,4)
4621b8:	8b c6                	mov    %esi,%eax
4621ba:	39 75 0c             	cmp    %esi,0xc(%ebp)
4621bd:	7c e1                	jl     0x4621a0
4621bf:	8b 4d 14             	mov    0x14(%ebp),%ecx
4621c2:	8b 09                	mov    (%ecx),%ecx
4621c4:	89 0c 87             	mov    %ecx,(%edi,%eax,4)
4621c7:	5f                   	pop    %edi
4621c8:	5e                   	pop    %esi
4621c9:	5b                   	pop    %ebx
4621ca:	8b e5                	mov    %ebp,%esp
4621cc:	5d                   	pop    %ebp
4621cd:	c3                   	ret
4621ce:	cc                   	int3
4621cf:	cc                   	int3
4621d0:	55                   	push   %ebp
4621d1:	8b ec                	mov    %esp,%ebp
4621d3:	83 ec 18             	sub    $0x18,%esp
4621d6:	53                   	push   %ebx
4621d7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4621da:	8b c3                	mov    %ebx,%eax
4621dc:	56                   	push   %esi
4621dd:	8b 75 08             	mov    0x8(%ebp),%esi
4621e0:	2b c6                	sub    %esi,%eax
4621e2:	83 e0 fc             	and    $0xfffffffc,%eax
4621e5:	57                   	push   %edi
4621e6:	3d 80 00 00 00       	cmp    $0x80,%eax
4621eb:	7e 74                	jle    0x462261
4621ed:	8b 4d 14             	mov    0x14(%ebp),%ecx
4621f0:	8b 7d 10             	mov    0x10(%ebp),%edi
4621f3:	85 ff                	test   %edi,%edi
4621f5:	0f 8e bb 00 00 00    	jle    0x4622b6
4621fb:	51                   	push   %ecx
4621fc:	53                   	push   %ebx
4621fd:	8d 45 e8             	lea    -0x18(%ebp),%eax
462200:	56                   	push   %esi
462201:	50                   	push   %eax
462202:	e8 79 fd ff ff       	call   0x461f80
462207:	8b 55 ec             	mov    -0x14(%ebp),%edx
46220a:	8b c7                	mov    %edi,%eax
46220c:	c1 f8 02             	sar    $0x2,%eax
46220f:	8b cb                	mov    %ebx,%ecx
462211:	d1 ff                	sar    $1,%edi
462213:	83 c4 10             	add    $0x10,%esp
462216:	03 f8                	add    %eax,%edi
462218:	2b ca                	sub    %edx,%ecx
46221a:	8b 45 e8             	mov    -0x18(%ebp),%eax
46221d:	83 e1 fc             	and    $0xfffffffc,%ecx
462220:	2b c6                	sub    %esi,%eax
462222:	83 e0 fc             	and    $0xfffffffc,%eax
462225:	3b c1                	cmp    %ecx,%eax
462227:	8b 45 14             	mov    0x14(%ebp),%eax
46222a:	50                   	push   %eax
46222b:	57                   	push   %edi
46222c:	7d 12                	jge    0x462240
46222e:	8b 45 e8             	mov    -0x18(%ebp),%eax
462231:	50                   	push   %eax
462232:	56                   	push   %esi
462233:	e8 98 ff ff ff       	call   0x4621d0
462238:	8b 75 ec             	mov    -0x14(%ebp),%esi
46223b:	89 75 08             	mov    %esi,0x8(%ebp)
46223e:	eb 0d                	jmp    0x46224d
462240:	53                   	push   %ebx
462241:	52                   	push   %edx
462242:	e8 89 ff ff ff       	call   0x4621d0
462247:	8b 5d e8             	mov    -0x18(%ebp),%ebx
46224a:	89 5d 0c             	mov    %ebx,0xc(%ebp)
46224d:	8b 4d 14             	mov    0x14(%ebp),%ecx
462250:	8b c3                	mov    %ebx,%eax
462252:	2b c6                	sub    %esi,%eax
462254:	83 c4 10             	add    $0x10,%esp
462257:	83 e0 fc             	and    $0xfffffffc,%eax
46225a:	3d 80 00 00 00       	cmp    $0x80,%eax
46225f:	7f 92                	jg     0x4621f3
462261:	3b f3                	cmp    %ebx,%esi
462263:	0f 84 99 01 00 00    	je     0x462402
462269:	8d 7e 04             	lea    0x4(%esi),%edi
46226c:	3b fb                	cmp    %ebx,%edi
46226e:	0f 84 8e 01 00 00    	je     0x462402
462274:	ba 04 00 00 00       	mov    $0x4,%edx
462279:	2b d6                	sub    %esi,%edx
46227b:	89 55 f0             	mov    %edx,-0x10(%ebp)
46227e:	66 90                	xchg   %ax,%ax
462280:	8b 07                	mov    (%edi),%eax
462282:	89 45 f8             	mov    %eax,-0x8(%ebp)
462285:	89 7d fc             	mov    %edi,-0x4(%ebp)
462288:	8b 48 28             	mov    0x28(%eax),%ecx
46228b:	8b 06                	mov    (%esi),%eax
46228d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
462290:	3b 48 28             	cmp    0x28(%eax),%ecx
462293:	0f 8d 24 01 00 00    	jge    0x4623bd
462299:	8d 42 fc             	lea    -0x4(%edx),%eax
46229c:	03 c7                	add    %edi,%eax
46229e:	50                   	push   %eax
46229f:	8d 46 04             	lea    0x4(%esi),%eax
4622a2:	56                   	push   %esi
4622a3:	50                   	push   %eax
4622a4:	e8 27 0b 17 00       	call   0x5d2dd0
4622a9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4622ac:	83 c4 0c             	add    $0xc,%esp
4622af:	89 0e                	mov    %ecx,(%esi)
4622b1:	e9 3e 01 00 00       	jmp    0x4623f4
4622b6:	2b de                	sub    %esi,%ebx
4622b8:	8b c3                	mov    %ebx,%eax
4622ba:	89 5d 0c             	mov    %ebx,0xc(%ebp)
4622bd:	c1 f8 02             	sar    $0x2,%eax
4622c0:	8b d0                	mov    %eax,%edx
4622c2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4622c5:	d1 fa                	sar    $1,%edx
4622c7:	85 d2                	test   %edx,%edx
4622c9:	0f 8e aa 00 00 00    	jle    0x462379
4622cf:	48                   	dec    %eax
4622d0:	8b f8                	mov    %eax,%edi
4622d2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4622d5:	d1 ff                	sar    $1,%edi
4622d7:	89 7d f8             	mov    %edi,-0x8(%ebp)
4622da:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4622e0:	8b 44 96 fc          	mov    -0x4(%esi,%edx,4),%eax
4622e4:	4a                   	dec    %edx
4622e5:	89 55 f0             	mov    %edx,-0x10(%ebp)
4622e8:	8b da                	mov    %edx,%ebx
4622ea:	89 45 fc             	mov    %eax,-0x4(%ebp)
4622ed:	8b ca                	mov    %edx,%ecx
4622ef:	3b d7                	cmp    %edi,%edx
4622f1:	7d 2d                	jge    0x462320
4622f3:	8d 3c 09             	lea    (%ecx,%ecx,1),%edi
4622f6:	33 d2                	xor    %edx,%edx
4622f8:	8b 44 be 08          	mov    0x8(%esi,%edi,4),%eax
4622fc:	8b 4c be 04          	mov    0x4(%esi,%edi,4),%ecx
462300:	8b 40 28             	mov    0x28(%eax),%eax
462303:	3b 41 28             	cmp    0x28(%ecx),%eax
462306:	8d 4f 01             	lea    0x1(%edi),%ecx
462309:	8b 7d f8             	mov    -0x8(%ebp),%edi
46230c:	0f 9d c2             	setge  %dl
46230f:	03 ca                	add    %edx,%ecx
462311:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
462314:	89 04 9e             	mov    %eax,(%esi,%ebx,4)
462317:	8b d9                	mov    %ecx,%ebx
462319:	3b cf                	cmp    %edi,%ecx
46231b:	7c d6                	jl     0x4622f3
46231d:	8b 55 f0             	mov    -0x10(%ebp),%edx
462320:	3b df                	cmp    %edi,%ebx
462322:	75 11                	jne    0x462335
462324:	8b 45 f4             	mov    -0xc(%ebp),%eax
462327:	a8 01                	test   $0x1,%al
462329:	75 0a                	jne    0x462335
46232b:	8b 44 86 fc          	mov    -0x4(%esi,%eax,4),%eax
46232f:	89 04 9e             	mov    %eax,(%esi,%ebx,4)
462332:	8b 5d ec             	mov    -0x14(%ebp),%ebx
462335:	3b d3                	cmp    %ebx,%edx
462337:	7d 29                	jge    0x462362
462339:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
462340:	8d 4b ff             	lea    -0x1(%ebx),%ecx
462343:	d1 f9                	sar    $1,%ecx
462345:	8b 3c 8e             	mov    (%esi,%ecx,4),%edi
462348:	8b 75 fc             	mov    -0x4(%ebp),%esi
46234b:	8b 47 28             	mov    0x28(%edi),%eax
46234e:	3b 46 28             	cmp    0x28(%esi),%eax
462351:	8b 75 08             	mov    0x8(%ebp),%esi
462354:	7d 09                	jge    0x46235f
462356:	89 3c 9e             	mov    %edi,(%esi,%ebx,4)
462359:	8b d9                	mov    %ecx,%ebx
46235b:	3b d1                	cmp    %ecx,%edx
46235d:	7c e1                	jl     0x462340
46235f:	8b 7d f8             	mov    -0x8(%ebp),%edi
462362:	8b 45 fc             	mov    -0x4(%ebp),%eax
462365:	89 04 9e             	mov    %eax,(%esi,%ebx,4)
462368:	85 d2                	test   %edx,%edx
46236a:	0f 8f 70 ff ff ff    	jg     0x4622e0
462370:	8b 5d 0c             	mov    0xc(%ebp),%ebx
462373:	8b 4d 14             	mov    0x14(%ebp),%ecx
462376:	8b 45 f4             	mov    -0xc(%ebp),%eax
462379:	83 f8 02             	cmp    $0x2,%eax
46237c:	0f 8c 80 00 00 00    	jl     0x462402
462382:	8b 44 1e fc          	mov    -0x4(%esi,%ebx,1),%eax
462386:	89 45 0c             	mov    %eax,0xc(%ebp)
462389:	8b 06                	mov    (%esi),%eax
46238b:	89 44 1e fc          	mov    %eax,-0x4(%esi,%ebx,1)
46238f:	8d 45 0c             	lea    0xc(%ebp),%eax
462392:	51                   	push   %ecx
462393:	50                   	push   %eax
462394:	8d 43 fc             	lea    -0x4(%ebx),%eax
462397:	c1 f8 02             	sar    $0x2,%eax
46239a:	50                   	push   %eax
46239b:	6a 00                	push   $0x0
46239d:	56                   	push   %esi
46239e:	e8 7d fd ff ff       	call   0x462120
4623a3:	8b 4d 14             	mov    0x14(%ebp),%ecx
4623a6:	83 eb 04             	sub    $0x4,%ebx
4623a9:	8b c3                	mov    %ebx,%eax
4623ab:	83 c4 14             	add    $0x14,%esp
4623ae:	83 e0 fc             	and    $0xfffffffc,%eax
4623b1:	83 f8 08             	cmp    $0x8,%eax
4623b4:	7d cc                	jge    0x462382
4623b6:	5f                   	pop    %edi
4623b7:	5e                   	pop    %esi
4623b8:	5b                   	pop    %ebx
4623b9:	8b e5                	mov    %ebp,%esp
4623bb:	5d                   	pop    %ebp
4623bc:	c3                   	ret