576123:	8b c8                	mov    %eax,%ecx
576125:	85 c9                	test   %ecx,%ecx
576127:	79 09                	jns    0x576132
576129:	c7 46 60 01 00 00 00 	movl   $0x1,0x60(%esi)
576130:	eb 10                	jmp    0x576142
576132:	75 0e                	jne    0x576142
576134:	c7 46 60 4f 00 00 00 	movl   $0x4f,0x60(%esi)
57613b:	eb 05                	jmp    0x576142
57613d:	b9 01 00 00 00       	mov    $0x1,%ecx
576142:	8b 6c 24 10          	mov    0x10(%esp),%ebp
576146:	f6 87 80 00 00 00 10 	testb  $0x10,0x80(%edi)
57614d:	75 18                	jne    0x576167
57614f:	83 7f 78 ff          	cmpl   $0xffffffff,0x78(%edi)
576153:	74 12                	je     0x576167
576155:	8b 46 10             	mov    0x10(%esi),%eax
576158:	f6 40 14 20          	testb  $0x20,0x14(%eax)
57615c:	74 09                	je     0x576167
57615e:	c7 46 60 29 00 00 00 	movl   $0x29,0x60(%esi)
576165:	eb 04                	jmp    0x57616b
576167:	85 c9                	test   %ecx,%ecx
576169:	75 19                	jne    0x576184
57616b:	8b 46 1c             	mov    0x1c(%esi),%eax
57616e:	56                   	push   %esi
57616f:	6a 00                	push   $0x0
576171:	89 5e 5c             	mov    %ebx,0x5c(%esi)
576174:	89 7e 64             	mov    %edi,0x64(%esi)
576177:	ff d0                	call   *%eax
576179:	83 c4 08             	add    $0x8,%esp
57617c:	85 c0                	test   %eax,%eax
57617e:	0f 84 35 01 00 00    	je     0x5762b9
576184:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
576188:	85 c9                	test   %ecx,%ecx
57618a:	7e 6e                	jle    0x5761fa
57618c:	3b 5e 4c             	cmp    0x4c(%esi),%ebx
57618f:	7c 24                	jl     0x5761b5
576191:	8b 46 10             	mov    0x10(%esi),%eax
576194:	3b 48 18             	cmp    0x18(%eax),%ecx
576197:	75 1c                	jne    0x5761b5
576199:	6a 04                	push   $0x4
57619b:	ff 70 1c             	push   0x1c(%eax)
57619e:	57                   	push   %edi
57619f:	e8 ac a8 00 00       	call   0x580a50
5761a4:	83 c4 0c             	add    $0xc,%esp
5761a7:	83 e8 01             	sub    $0x1,%eax
5761aa:	74 4e                	je     0x5761fa
5761ac:	83 e8 01             	sub    $0x1,%eax
5761af:	74 29                	je     0x5761da
5761b1:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5761b5:	33 c0                	xor    %eax,%eax
5761b7:	85 ed                	test   %ebp,%ebp
5761b9:	0f 9f c0             	setg   %al
5761bc:	50                   	push   %eax
5761bd:	51                   	push   %ecx
5761be:	57                   	push   %edi
5761bf:	e8 4c 63 fe ff       	call   0x55c510
5761c4:	83 c4 0c             	add    $0xc,%esp
5761c7:	83 e8 00             	sub    $0x0,%eax
5761ca:	74 0e                	je     0x5761da
5761cc:	83 e8 01             	sub    $0x1,%eax
5761cf:	74 29                	je     0x5761fa
5761d1:	8b 46 10             	mov    0x10(%esi),%eax
5761d4:	f6 40 14 20          	testb  $0x20,0x14(%eax)
5761d8:	74 20                	je     0x5761fa
5761da:	8b 46 1c             	mov    0x1c(%esi),%eax
5761dd:	56                   	push   %esi
5761de:	6a 00                	push   $0x0
5761e0:	89 5e 5c             	mov    %ebx,0x5c(%esi)
5761e3:	89 7e 64             	mov    %edi,0x64(%esi)
5761e6:	c7 46 60 1a 00 00 00 	movl   $0x1a,0x60(%esi)
5761ed:	ff d0                	call   *%eax
5761ef:	83 c4 08             	add    $0x8,%esp
5761f2:	85 c0                	test   %eax,%eax
5761f4:	0f 84 bf 00 00 00    	je     0x5762b9
5761fa:	83 fb 01             	cmp    $0x1,%ebx
5761fd:	76 34                	jbe    0x576233
5761ff:	8b 47 78             	mov    0x78(%edi),%eax
576202:	8b 4c 24 14          	mov    0x14(%esp),%ecx
576206:	83 f8 ff             	cmp    $0xffffffff,%eax
576209:	74 30                	je     0x57623b
57620b:	03 44 24 18          	add    0x18(%esp),%eax
57620f:	3b c8                	cmp    %eax,%ecx
576211:	7e 28                	jle    0x57623b
576213:	8b 46 1c             	mov    0x1c(%esi),%eax
576216:	56                   	push   %esi
576217:	6a 00                	push   $0x0
576219:	89 5e 5c             	mov    %ebx,0x5c(%esi)
57621c:	89 7e 64             	mov    %edi,0x64(%esi)
57621f:	c7 46 60 19 00 00 00 	movl   $0x19,0x60(%esi)
576226:	ff d0                	call   *%eax
576228:	83 c4 08             	add    $0x8,%esp
57622b:	85 c0                	test   %eax,%eax
57622d:	0f 84 86 00 00 00    	je     0x5762b9
576233:	85 db                	test   %ebx,%ebx
576235:	74 12                	je     0x576249
576237:	8b 4c 24 14          	mov    0x14(%esp),%ecx
57623b:	f6 87 80 00 00 00 20 	testb  $0x20,0x80(%edi)
576242:	75 05                	jne    0x576249
576244:	41                   	inc    %ecx
576245:	89 4c 24 14          	mov    %ecx,0x14(%esp)
576249:	f7 87 80 00 00 00 00 	testl  $0x400,0x80(%edi)
576250:	04 00 00
576253:	74 43                	je     0x576298
576255:	8b 47 7c             	mov    0x7c(%edi),%eax
576258:	83 f8 ff             	cmp    $0xffffffff,%eax
57625b:	74 2e                	je     0x57628b
57625d:	39 44 24 18          	cmp    %eax,0x18(%esp)
576261:	7e 1c                	jle    0x57627f
576263:	8b 46 1c             	mov    0x1c(%esi),%eax
576266:	56                   	push   %esi
576267:	6a 00                	push   $0x0
576269:	89 5e 5c             	mov    %ebx,0x5c(%esi)
57626c:	89 7e 64             	mov    %edi,0x64(%esi)
57626f:	c7 46 60 26 00 00 00 	movl   $0x26,0x60(%esi)
576276:	ff d0                	call   *%eax
576278:	83 c4 08             	add    $0x8,%esp
57627b:	85 c0                	test   %eax,%eax
57627d:	74 3a                	je     0x5762b9
57627f:	8b 47 7c             	mov    0x7c(%edi),%eax
576282:	40                   	inc    %eax
576283:	33 ed                	xor    %ebp,%ebp
576285:	89 44 24 18          	mov    %eax,0x18(%esp)
576289:	eb 12                	jmp    0x57629d
57628b:	8b 44 24 18          	mov    0x18(%esp),%eax
57628f:	40                   	inc    %eax
576290:	33 ed                	xor    %ebp,%ebp
576292:	89 44 24 18          	mov    %eax,0x18(%esp)
576296:	eb 05                	jmp    0x57629d
576298:	bd 01 00 00 00       	mov    $0x1,%ebp
57629d:	43                   	inc    %ebx
57629e:	89 6c 24 10          	mov    %ebp,0x10(%esp)
5762a2:	3b 5c 24 28          	cmp    0x28(%esp),%ebx
5762a6:	0f 8c 37 fd ff ff    	jl     0x575fe3
5762ac:	5f                   	pop    %edi
5762ad:	5e                   	pop    %esi
5762ae:	5d                   	pop    %ebp
5762af:	b8 01 00 00 00       	mov    $0x1,%eax
5762b4:	5b                   	pop    %ebx
5762b5:	83 c4 14             	add    $0x14,%esp
5762b8:	c3                   	ret
5762b9:	5f                   	pop    %edi
5762ba:	5e                   	pop    %esi
5762bb:	5d                   	pop    %ebp
5762bc:	33 c0                	xor    %eax,%eax
5762be:	5b                   	pop    %ebx
5762bf:	83 c4 14             	add    $0x14,%esp
5762c2:	c3                   	ret
5762c3:	cc                   	int3
5762c4:	cc                   	int3
5762c5:	cc                   	int3
5762c6:	cc                   	int3
5762c7:	cc                   	int3
5762c8:	cc                   	int3
5762c9:	cc                   	int3
5762ca:	cc                   	int3
5762cb:	cc                   	int3
5762cc:	cc                   	int3
5762cd:	cc                   	int3
5762ce:	cc                   	int3
5762cf:	cc                   	int3
5762d0:	53                   	push   %ebx
5762d1:	55                   	push   %ebp
5762d2:	56                   	push   %esi
5762d3:	8b 74 24 10          	mov    0x10(%esp),%esi
5762d7:	57                   	push   %edi
5762d8:	ff 76 50             	push   0x50(%esi)
5762db:	8b 7e 5c             	mov    0x5c(%esi),%edi
5762de:	e8 dd ed f6 ff       	call   0x4e50c0
5762e3:	8b 5e 68             	mov    0x68(%esi),%ebx
5762e6:	83 c4 04             	add    $0x4,%esp
5762e9:	48                   	dec    %eax
5762ea:	85 db                	test   %ebx,%ebx
5762ec:	75 51                	jne    0x57633f
5762ee:	8b 4e 50             	mov    0x50(%esi),%ecx
5762f1:	3b f8                	cmp    %eax,%edi
5762f3:	7d 11                	jge    0x576306
5762f5:	8d 47 01             	lea    0x1(%edi),%eax
5762f8:	50                   	push   %eax
5762f9:	51                   	push   %ecx
5762fa:	e8 81 ef f6 ff       	call   0x4e5280
5762ff:	83 c4 08             	add    $0x8,%esp
576302:	8b d8                	mov    %eax,%ebx
576304:	eb 31                	jmp    0x576337
576306:	50                   	push   %eax
576307:	51                   	push   %ecx
576308:	e8 73 ef f6 ff       	call   0x4e5280
57630d:	8b d8                	mov    %eax,%ebx
57630f:	8b 46 24             	mov    0x24(%esi),%eax
576312:	53                   	push   %ebx
576313:	53                   	push   %ebx
576314:	56                   	push   %esi
576315:	ff d0                	call   *%eax
576317:	83 c4 14             	add    $0x14,%esp
57631a:	85 c0                	test   %eax,%eax
57631c:	75 19                	jne    0x576337
57631e:	56                   	push   %esi
57631f:	50                   	push   %eax
576320:	8b 46 1c             	mov    0x1c(%esi),%eax
576323:	c7 46 60 21 00 00 00 	movl   $0x21,0x60(%esi)
57632a:	ff d0                	call   *%eax
57632c:	83 c4 08             	add    $0x8,%esp
57632f:	85 c0                	test   %eax,%eax
576331:	0f 84 ed 01 00 00    	je     0x576524
576337:	85 db                	test   %ebx,%ebx
576339:	0f 84 ec 01 00 00    	je     0x57652b
57633f:	8b 7c 24 18          	mov    0x18(%esp),%edi
576343:	83 7f 60 00          	cmpl   $0x0,0x60(%edi)
576347:	0f 85 9c 00 00 00    	jne    0x5763e9
57634d:	f6 83 80 00 00 00 02 	testb  $0x2,0x80(%ebx)
576354:	74 23                	je     0x576379
576356:	f6 83 84 00 00 00 02 	testb  $0x2,0x84(%ebx)
57635d:	75 1a                	jne    0x576379
57635f:	8b 46 1c             	mov    0x1c(%esi),%eax
576362:	56                   	push   %esi
576363:	6a 00                	push   $0x0
576365:	c7 46 60 23 00 00 00 	movl   $0x23,0x60(%esi)
57636c:	ff d0                	call   *%eax
57636e:	83 c4 08             	add    $0x8,%esp
576371:	85 c0                	test   %eax,%eax
576373:	0f 84 ab 01 00 00    	je     0x576524
576379:	f6 46 70 80          	testb  $0x80,0x70(%esi)
57637d:	75 1a                	jne    0x576399
57637f:	8b 46 1c             	mov    0x1c(%esi),%eax
576382:	56                   	push   %esi
576383:	6a 00                	push   $0x0
576385:	c7 46 60 2c 00 00 00 	movl   $0x2c,0x60(%esi)
57638c:	ff d0                	call   *%eax
57638e:	83 c4 08             	add    $0x8,%esp
576391:	85 c0                	test   %eax,%eax
576393:	0f 84 8b 01 00 00    	je     0x576524
576399:	f6 46 70 08          	testb  $0x8,0x70(%esi)
57639d:	75 2a                	jne    0x5763c9
57639f:	ff 76 68             	push   0x68(%esi)
5763a2:	56                   	push   %esi
5763a3:	e8 98 01 00 00       	call   0x576540
5763a8:	83 c4 08             	add    $0x8,%esp
5763ab:	85 c0                	test   %eax,%eax
5763ad:	7f 1a                	jg     0x5763c9
5763af:	8b 46 1c             	mov    0x1c(%esi),%eax
5763b2:	56                   	push   %esi
5763b3:	6a 00                	push   $0x0
5763b5:	c7 46 60 36 00 00 00 	movl   $0x36,0x60(%esi)
5763bc:	ff d0                	call   *%eax
5763be:	83 c4 08             	add    $0x8,%esp
5763c1:	85 c0                	test   %eax,%eax
5763c3:	0f 84 5b 01 00 00    	je     0x576524
5763c9:	f6 47 54 02          	testb  $0x2,0x54(%edi)
5763cd:	74 1a                	je     0x5763e9
5763cf:	8b 46 1c             	mov    0x1c(%esi),%eax
5763d2:	56                   	push   %esi
5763d3:	6a 00                	push   $0x0
5763d5:	c7 46 60 29 00 00 00 	movl   $0x29,0x60(%esi)
5763dc:	ff d0                	call   *%eax
5763de:	83 c4 08             	add    $0x8,%esp
5763e1:	85 c0                	test   %eax,%eax
5763e3:	0f 84 3b 01 00 00    	je     0x576524
5763e9:	f6 46 70 40          	testb  $0x40,0x70(%esi)
5763ed:	0f 85 cf 00 00 00    	jne    0x5764c2
5763f3:	8b 4e 10             	mov    0x10(%esi),%ecx
5763f6:	89 7e 6c             	mov    %edi,0x6c(%esi)
5763f9:	8b 41 14             	mov    0x14(%ecx),%eax
5763fc:	a8 02                	test   $0x2,%al
5763fe:	74 05                	je     0x576405
576400:	8d 69 08             	lea    0x8(%ecx),%ebp
576403:	eb 0d                	jmp    0x576412
576405:	a9 00 00 20 00       	test   $0x200000,%eax
57640a:	0f 85 b2 00 00 00    	jne    0x5764c2
576410:	33 ed                	xor    %ebp,%ebp
576412:	55                   	push   %ebp
576413:	57                   	push   %edi
576414:	e8 97 9e f7 ff       	call   0x4f02b0
576419:	83 c4 04             	add    $0x4,%esp
57641c:	50                   	push   %eax
57641d:	e8 4e ee ff ff       	call   0x575270
576422:	83 c4 08             	add    $0x8,%esp
576425:	85 c0                	test   %eax,%eax
576427:	75 1a                	jne    0x576443
576429:	56                   	push   %esi
57642a:	50                   	push   %eax
57642b:	8b 46 1c             	mov    0x1c(%esi),%eax
57642e:	c7 46 60 0f 00 00 00 	movl   $0xf,0x60(%esi)
576435:	ff d0                	call   *%eax
576437:	83 c4 08             	add    $0x8,%esp
57643a:	85 c0                	test   %eax,%eax
57643c:	75 21                	jne    0x57645f
57643e:	5f                   	pop    %edi
57643f:	5e                   	pop    %esi
576440:	5d                   	pop    %ebp
576441:	5b                   	pop    %ebx
576442:	c3                   	ret
576443:	7e 1a                	jle    0x57645f
576445:	8b 46 1c             	mov    0x1c(%esi),%eax
576448:	56                   	push   %esi
576449:	6a 00                	push   $0x0
57644b:	c7 46 60 0b 00 00 00 	movl   $0xb,0x60(%esi)
576452:	ff d0                	call   *%eax
576454:	83 c4 08             	add    $0x8,%esp
576457:	85 c0                	test   %eax,%eax
576459:	0f 84 c5 00 00 00    	je     0x576524
57645f:	57                   	push   %edi
576460:	e8 fb 0d f7 ff       	call   0x4e7260
576465:	83 c4 04             	add    $0x4,%esp
576468:	85 c0                	test   %eax,%eax
57646a:	74 4f                	je     0x5764bb
57646c:	55                   	push   %ebp
57646d:	57                   	push   %edi
57646e:	e8 ed 0d f7 ff       	call   0x4e7260
576473:	83 c4 04             	add    $0x4,%esp
576476:	50                   	push   %eax
576477:	e8 f4 ed ff ff       	call   0x575270
57647c:	83 c4 08             	add    $0x8,%esp
57647f:	85 c0                	test   %eax,%eax
576481:	75 1a                	jne    0x57649d
576483:	56                   	push   %esi
576484:	50                   	push   %eax
576485:	8b 46 1c             	mov    0x1c(%esi),%eax
576488:	c7 46 60 10 00 00 00 	movl   $0x10,0x60(%esi)
57648f:	ff d0                	call   *%eax
576491:	83 c4 08             	add    $0x8,%esp
576494:	85 c0                	test   %eax,%eax
576496:	75 23                	jne    0x5764bb
576498:	5f                   	pop    %edi
576499:	5e                   	pop    %esi
57649a:	5d                   	pop    %ebp
57649b:	5b                   	pop    %ebx
57649c:	c3                   	ret
57649d:	79 1c                	jns    0x5764bb
57649f:	f6 46 70 02          	testb  $0x2,0x70(%esi)
5764a3:	75 16                	jne    0x5764bb
5764a5:	8b 46 1c             	mov    0x1c(%esi),%eax
5764a8:	56                   	push   %esi
5764a9:	6a 00                	push   $0x0
5764ab:	c7 46 60 0c 00 00 00 	movl   $0xc,0x60(%esi)
5764b2:	ff d0                	call   *%eax
5764b4:	83 c4 08             	add    $0x8,%esp
5764b7:	85 c0                	test   %eax,%eax
5764b9:	74 69                	je     0x576524
5764bb:	c7 46 6c 00 00 00 00 	movl   $0x0,0x6c(%esi)
5764c2:	53                   	push   %ebx
5764c3:	e8 68 1c fe ff       	call   0x558130
5764c8:	8b d8                	mov    %eax,%ebx
5764ca:	83 c4 04             	add    $0x4,%esp
5764cd:	85 db                	test   %ebx,%ebx
5764cf:	75 09                	jne    0x5764da
5764d1:	c7 46 60 06 00 00 00 	movl   $0x6,0x60(%esi)
5764d8:	eb 3b                	jmp    0x576515
5764da:	8b 46 10             	mov    0x10(%esi),%eax
5764dd:	ff 70 14             	push   0x14(%eax)
5764e0:	53                   	push   %ebx
5764e1:	57                   	push   %edi
5764e2:	e8 c9 15 fe ff       	call   0x557ab0