5780b0:	74 04                	je     0x5780b6
5780b2:	8b c7                	mov    %edi,%eax
5780b4:	eb 0d                	jmp    0x5780c3
5780b6:	6a 00                	push   $0x0
5780b8:	ff 76 50             	push   0x50(%esi)
5780bb:	e8 c0 d1 f6 ff       	call   0x4e5280
5780c0:	83 c4 08             	add    $0x8,%esp
5780c3:	89 46 64             	mov    %eax,0x64(%esi)
5780c6:	8b 46 1c             	mov    0x1c(%esi),%eax
5780c9:	56                   	push   %esi
5780ca:	6a 00                	push   $0x0
5780cc:	c7 46 60 15 00 00 00 	movl   $0x15,0x60(%esi)
5780d3:	ff d0                	call   *%eax
5780d5:	83 c4 08             	add    $0x8,%esp
5780d8:	85 c0                	test   %eax,%eax
5780da:	0f 84 56 01 00 00    	je     0x578236
5780e0:	8b df                	mov    %edi,%ebx
5780e2:	e9 18 01 00 00       	jmp    0x5781ff
5780e7:	4d                   	dec    %ebp
5780e8:	89 6e 5c             	mov    %ebp,0x5c(%esi)
5780eb:	55                   	push   %ebp
5780ec:	ff 76 50             	push   0x50(%esi)
5780ef:	e8 8c d1 f6 ff       	call   0x4e5280
5780f4:	8b d8                	mov    %eax,%ebx
5780f6:	83 c4 08             	add    $0x8,%esp
5780f9:	85 ed                	test   %ebp,%ebp
5780fb:	0f 88 3d 01 00 00    	js     0x57823e
578101:	3b df                	cmp    %edi,%ebx
578103:	75 20                	jne    0x578125
578105:	8b 4e 10             	mov    0x10(%esi),%ecx
578108:	f7 41 14 00 40 00 00 	testl  $0x4000,0x14(%ecx)
57810f:	0f 84 ea 00 00 00    	je     0x5781ff
578115:	f7 87 80 00 00 00 00 	testl  $0x2000,0x80(%edi)
57811c:	20 00 00
57811f:	0f 84 da 00 00 00    	je     0x5781ff
578125:	33 c0                	xor    %eax,%eax
578127:	3b df                	cmp    %edi,%ebx
578129:	0f 95 c0             	setne  %al
57812c:	03 c5                	add    %ebp,%eax
57812e:	89 44 24 18          	mov    %eax,0x18(%esp)
578132:	3b df                	cmp    %edi,%ebx
578134:	75 09                	jne    0x57813f
578136:	f6 87 80 00 00 00 10 	testb  $0x10,0x80(%edi)
57813d:	74 4a                	je     0x578189
57813f:	53                   	push   %ebx
578140:	57                   	push   %edi
578141:	e8 7a 46 fe ff       	call   0x55c7c0
578146:	83 c4 08             	add    $0x8,%esp
578149:	89 44 24 10          	mov    %eax,0x10(%esp)
57814d:	85 c0                	test   %eax,%eax
57814f:	74 38                	je     0x578189
578151:	8b 4c 24 18          	mov    0x18(%esp),%ecx
578155:	89 4e 5c             	mov    %ecx,0x5c(%esi)
578158:	85 ff                	test   %edi,%edi
57815a:	74 04                	je     0x578160
57815c:	8b c7                	mov    %edi,%eax
57815e:	eb 0c                	jmp    0x57816c
578160:	51                   	push   %ecx
578161:	ff 76 50             	push   0x50(%esi)
578164:	e8 17 d1 f6 ff       	call   0x4e5280
578169:	83 c4 08             	add    $0x8,%esp
57816c:	89 46 64             	mov    %eax,0x64(%esi)
57816f:	8b 44 24 10          	mov    0x10(%esp),%eax
578173:	89 46 60             	mov    %eax,0x60(%esi)
578176:	8b 46 1c             	mov    0x1c(%esi),%eax
578179:	56                   	push   %esi
57817a:	6a 00                	push   $0x0
57817c:	ff d0                	call   *%eax
57817e:	83 c4 08             	add    $0x8,%esp
578181:	85 c0                	test   %eax,%eax
578183:	0f 84 ad 00 00 00    	je     0x578236
578189:	57                   	push   %edi
57818a:	e8 a1 ff fd ff       	call   0x558130
57818f:	83 c4 04             	add    $0x4,%esp
578192:	85 c0                	test   %eax,%eax
578194:	75 2b                	jne    0x5781c1
578196:	8b 44 24 18          	mov    0x18(%esp),%eax
57819a:	89 46 5c             	mov    %eax,0x5c(%esi)
57819d:	85 ff                	test   %edi,%edi
57819f:	74 0b                	je     0x5781ac
5781a1:	8b c7                	mov    %edi,%eax
5781a3:	c7 46 60 06 00 00 00 	movl   $0x6,0x60(%esi)
5781aa:	eb 41                	jmp    0x5781ed
5781ac:	50                   	push   %eax
5781ad:	ff 76 50             	push   0x50(%esi)
5781b0:	e8 cb d0 f6 ff       	call   0x4e5280
5781b5:	83 c4 08             	add    $0x8,%esp
5781b8:	c7 46 60 06 00 00 00 	movl   $0x6,0x60(%esi)
5781bf:	eb 2c                	jmp    0x5781ed
5781c1:	50                   	push   %eax
5781c2:	53                   	push   %ebx
5781c3:	e8 68 39 ff ff       	call   0x56bb30
5781c8:	83 c4 08             	add    $0x8,%esp
5781cb:	85 c0                	test   %eax,%eax
5781cd:	7f 30                	jg     0x5781ff
5781cf:	89 6e 5c             	mov    %ebp,0x5c(%esi)
5781d2:	85 db                	test   %ebx,%ebx
5781d4:	74 04                	je     0x5781da
5781d6:	8b c3                	mov    %ebx,%eax
5781d8:	eb 0c                	jmp    0x5781e6
5781da:	55                   	push   %ebp
5781db:	ff 76 50             	push   0x50(%esi)
5781de:	e8 9d d0 f6 ff       	call   0x4e5280
5781e3:	83 c4 08             	add    $0x8,%esp
5781e6:	c7 46 60 07 00 00 00 	movl   $0x7,0x60(%esi)
5781ed:	56                   	push   %esi
5781ee:	89 46 64             	mov    %eax,0x64(%esi)
5781f1:	8b 46 1c             	mov    0x1c(%esi),%eax
5781f4:	6a 00                	push   $0x0
5781f6:	ff d0                	call   *%eax
5781f8:	83 c4 08             	add    $0x8,%esp
5781fb:	85 c0                	test   %eax,%eax
5781fd:	74 37                	je     0x578236
5781ff:	55                   	push   %ebp
578200:	53                   	push   %ebx
578201:	56                   	push   %esi
578202:	e8 99 02 00 00       	call   0x5784a0
578207:	83 c4 0c             	add    $0xc,%esp
57820a:	85 c0                	test   %eax,%eax
57820c:	74 28                	je     0x578236
57820e:	8b 46 1c             	mov    0x1c(%esi),%eax
578211:	56                   	push   %esi
578212:	6a 01                	push   $0x1
578214:	89 7e 68             	mov    %edi,0x68(%esi)
578217:	89 5e 64             	mov    %ebx,0x64(%esi)
57821a:	89 6e 5c             	mov    %ebp,0x5c(%esi)
57821d:	ff d0                	call   *%eax
57821f:	83 c4 08             	add    $0x8,%esp
578222:	85 c0                	test   %eax,%eax
578224:	74 10                	je     0x578236
578226:	83 ed 01             	sub    $0x1,%ebp
578229:	0f 88 ca fe ff ff    	js     0x5780f9
57822f:	8b fb                	mov    %ebx,%edi
578231:	e9 b5 fe ff ff       	jmp    0x5780eb
578236:	5f                   	pop    %edi
578237:	5e                   	pop    %esi
578238:	5d                   	pop    %ebp
578239:	33 c0                	xor    %eax,%eax
57823b:	5b                   	pop    %ebx
57823c:	59                   	pop    %ecx
57823d:	c3                   	ret
57823e:	5f                   	pop    %edi
57823f:	5e                   	pop    %esi
578240:	5d                   	pop    %ebp
578241:	b8 01 00 00 00       	mov    $0x1,%eax
578246:	5b                   	pop    %ebx
578247:	59                   	pop    %ecx
578248:	c3                   	ret
578249:	cc                   	int3
57824a:	cc                   	int3
57824b:	cc                   	int3
57824c:	cc                   	int3
57824d:	cc                   	int3
57824e:	cc                   	int3
57824f:	cc                   	int3
578250:	8b 44 24 04          	mov    0x4(%esp),%eax
578254:	c3                   	ret
578255:	cc                   	int3
578256:	cc                   	int3
578257:	cc                   	int3
578258:	cc                   	int3
578259:	cc                   	int3
57825a:	cc                   	int3
57825b:	cc                   	int3
57825c:	cc                   	int3
57825d:	cc                   	int3
57825e:	cc                   	int3
57825f:	cc                   	int3
578260:	b8 04 00 00 00       	mov    $0x4,%eax
578265:	e8 46 95 05 00       	call   0x5d17b0
57826a:	53                   	push   %ebx
57826b:	55                   	push   %ebp
57826c:	56                   	push   %esi
57826d:	8b 74 24 14          	mov    0x14(%esp),%esi
578271:	57                   	push   %edi
578272:	56                   	push   %esi
578273:	e8 c8 d3 ff ff       	call   0x575640
578278:	8b f8                	mov    %eax,%edi
57827a:	83 c4 04             	add    $0x4,%esp
57827d:	85 ff                	test   %edi,%edi
57827f:	0f 84 44 01 00 00    	je     0x5783c9
578285:	56                   	push   %esi
578286:	e8 e5 dc ff ff       	call   0x575f70
57828b:	8b f8                	mov    %eax,%edi
57828d:	83 c4 04             	add    $0x4,%esp
578290:	85 ff                	test   %edi,%edi
578292:	0f 84 31 01 00 00    	je     0x5783c9
578298:	ff 76 50             	push   0x50(%esi)
57829b:	e8 20 ce f6 ff       	call   0x4e50c0
5782a0:	8b 4e 10             	mov    0x10(%esi),%ecx
5782a3:	83 c4 04             	add    $0x4,%esp
5782a6:	89 44 24 10          	mov    %eax,0x10(%esp)
5782aa:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
5782ae:	0f 8e 0a 01 00 00    	jle    0x5783be
5782b4:	33 ff                	xor    %edi,%edi
5782b6:	85 c0                	test   %eax,%eax
5782b8:	0f 8e 00 01 00 00    	jle    0x5783be
5782be:	66 90                	xchg   %ax,%ax
5782c0:	57                   	push   %edi
5782c1:	ff 76 50             	push   0x50(%esi)
5782c4:	e8 b7 cf f6 ff       	call   0x4e5280
5782c9:	83 c4 08             	add    $0x8,%esp
5782cc:	8b d8                	mov    %eax,%ebx
5782ce:	85 ff                	test   %edi,%edi
5782d0:	74 68                	je     0x57833a
5782d2:	53                   	push   %ebx
5782d3:	e8 58 fe fd ff       	call   0x558130
5782d8:	8b 4e 10             	mov    0x10(%esi),%ecx
5782db:	83 c4 04             	add    $0x4,%esp
5782de:	8b 69 24             	mov    0x24(%ecx),%ebp
5782e1:	85 ed                	test   %ebp,%ebp
5782e3:	7e 55                	jle    0x57833a
5782e5:	85 c0                	test   %eax,%eax
5782e7:	74 1d                	je     0x578306
5782e9:	83 fd 05             	cmp    $0x5,%ebp
5782ec:	b9 05 00 00 00       	mov    $0x5,%ecx
5782f1:	50                   	push   %eax
5782f2:	0f 4f e9             	cmovg  %ecx,%ebp
5782f5:	e8 26 8e f7 ff       	call   0x4f1120
5782fa:	83 c4 04             	add    $0x4,%esp
5782fd:	3b 04 ad 38 a7 65 00 	cmp    0x65a738(,%ebp,4),%eax
578304:	7d 34                	jge    0x57833a
578306:	89 7e 5c             	mov    %edi,0x5c(%esi)
578309:	85 db                	test   %ebx,%ebx
57830b:	74 04                	je     0x578311
57830d:	8b c3                	mov    %ebx,%eax
57830f:	eb 0c                	jmp    0x57831d
578311:	57                   	push   %edi
578312:	ff 76 50             	push   0x50(%esi)
578315:	e8 66 cf f6 ff       	call   0x4e5280
57831a:	83 c4 08             	add    $0x8,%esp
57831d:	89 46 64             	mov    %eax,0x64(%esi)
578320:	8b 46 1c             	mov    0x1c(%esi),%eax
578323:	56                   	push   %esi
578324:	6a 00                	push   $0x0
578326:	c7 46 60 43 00 00 00 	movl   $0x43,0x60(%esi)
57832d:	ff d0                	call   *%eax
57832f:	83 c4 08             	add    $0x8,%esp
578332:	85 c0                	test   %eax,%eax
578334:	0f 84 f7 00 00 00    	je     0x578431
57833a:	8b 44 24 10          	mov    0x10(%esp),%eax
57833e:	48                   	dec    %eax
57833f:	3b f8                	cmp    %eax,%edi
578341:	7d 70                	jge    0x5783b3
578343:	8b 46 10             	mov    0x10(%esi),%eax
578346:	c7 44 24 18 ff ff ff 	movl   $0xffffffff,0x18(%esp)
57834d:	ff
57834e:	8b 68 24             	mov    0x24(%eax),%ebp
578351:	85 ed                	test   %ebp,%ebp
578353:	7e 5e                	jle    0x5783b3
578355:	83 fd 05             	cmp    $0x5,%ebp
578358:	b8 05 00 00 00       	mov    $0x5,%eax
57835d:	6a 00                	push   $0x0
57835f:	0f 4f e8             	cmovg  %eax,%ebp
578362:	8d 44 24 1c          	lea    0x1c(%esp),%eax
578366:	50                   	push   %eax
578367:	6a 00                	push   $0x0
578369:	6a 00                	push   $0x0
57836b:	53                   	push   %ebx
57836c:	e8 bf 8a fa ff       	call   0x520e30
578371:	83 c4 14             	add    $0x14,%esp
578374:	85 c0                	test   %eax,%eax
578376:	74 0d                	je     0x578385
578378:	8b 44 24 18          	mov    0x18(%esp),%eax
57837c:	3b 04 ad 38 a7 65 00 	cmp    0x65a738(,%ebp,4),%eax
578383:	7d 2e                	jge    0x5783b3
578385:	89 7e 5c             	mov    %edi,0x5c(%esi)
578388:	85 db                	test   %ebx,%ebx
57838a:	75 0e                	jne    0x57839a
57838c:	57                   	push   %edi
57838d:	ff 76 50             	push   0x50(%esi)
578390:	e8 eb ce f6 ff       	call   0x4e5280
578395:	83 c4 08             	add    $0x8,%esp
578398:	8b d8                	mov    %eax,%ebx
57839a:	8b 46 1c             	mov    0x1c(%esi),%eax
57839d:	56                   	push   %esi
57839e:	6a 00                	push   $0x0
5783a0:	89 5e 64             	mov    %ebx,0x64(%esi)
5783a3:	c7 46 60 44 00 00 00 	movl   $0x44,0x60(%esi)
5783aa:	ff d0                	call   *%eax
5783ac:	83 c4 08             	add    $0x8,%esp
5783af:	85 c0                	test   %eax,%eax
5783b1:	74 7e                	je     0x578431
5783b3:	47                   	inc    %edi
5783b4:	3b 7c 24 10          	cmp    0x10(%esp),%edi
5783b8:	0f 8c 02 ff ff ff    	jl     0x5782c0
5783be:	56                   	push   %esi
5783bf:	e8 bc e2 ff ff       	call   0x576680
5783c4:	83 c4 04             	add    $0x4,%esp
5783c7:	8b f8                	mov    %eax,%edi
5783c9:	ff 76 50             	push   0x50(%esi)
5783cc:	6a 00                	push   $0x0
5783ce:	e8 9d cf ff ff       	call   0x575370
5783d3:	83 c4 08             	add    $0x8,%esp
5783d6:	85 ff                	test   %edi,%edi
5783d8:	74 65                	je     0x57843f
5783da:	8b 46 28             	mov    0x28(%esi),%eax
5783dd:	56                   	push   %esi
5783de:	ff d0                	call   *%eax
5783e0:	8b f8                	mov    %eax,%edi
5783e2:	83 c4 04             	add    $0x4,%esp
5783e5:	85 ff                	test   %edi,%edi
5783e7:	74 56                	je     0x57843f
5783e9:	8b 46 10             	mov    0x10(%esi),%eax
5783ec:	8d 7e 5c             	lea    0x5c(%esi),%edi
5783ef:	ff 70 14             	push   0x14(%eax)
5783f2:	ff 76 50             	push   0x50(%esi)
5783f5:	6a 00                	push   $0x0
5783f7:	57                   	push   %edi
5783f8:	e8 a3 f8 fd ff       	call   0x557ca0
5783fd:	8b d8                	mov    %eax,%ebx
5783ff:	83 c4 10             	add    $0x10,%esp
578402:	85 db                	test   %ebx,%ebx
578404:	74 1f                	je     0x578425
578406:	ff 37                	push   (%edi)
578408:	ff 76 50             	push   0x50(%esi)
57840b:	e8 70 ce f6 ff       	call   0x4e5280
578410:	89 46 64             	mov    %eax,0x64(%esi)
578413:	8b 46 1c             	mov    0x1c(%esi),%eax
578416:	56                   	push   %esi
578417:	6a 00                	push   $0x0
578419:	89 5e 60             	mov    %ebx,0x60(%esi)
57841c:	ff d0                	call   *%eax
57841e:	83 c4 10             	add    $0x10,%esp
578421:	85 c0                	test   %eax,%eax
578423:	74 6d                	je     0x578492
578425:	8b 46 18             	mov    0x18(%esi),%eax
578428:	56                   	push   %esi
578429:	85 c0                	test   %eax,%eax
57842b:	74 1a                	je     0x578447
57842d:	ff d0                	call   *%eax
57842f:	eb 1b                	jmp    0x57844c
578431:	ff 76 50             	push   0x50(%esi)
578434:	33 ff                	xor    %edi,%edi
578436:	57                   	push   %edi
578437:	e8 34 cf ff ff       	call   0x575370
57843c:	83 c4 08             	add    $0x8,%esp
57843f:	8b c7                	mov    %edi,%eax
578441:	5f                   	pop    %edi
578442:	5e                   	pop    %esi
578443:	5d                   	pop    %ebp
578444:	5b                   	pop    %ebx
578445:	59                   	pop    %ecx
578446:	c3                   	ret
578447:	e8 f4 fb ff ff       	call   0x578040
57844c:	83 c4 04             	add    $0x4,%esp
57844f:	85 c0                	test   %eax,%eax
578451:	74 3f                	je     0x578492
578453:	56                   	push   %esi
578454:	e8 07 e4 ff ff       	call   0x576860