60035d:	8b 46 0c             	mov    0xc(%esi),%eax
600360:	8b 00                	mov    (%eax),%eax
600362:	85 c0                	test   %eax,%eax
600364:	75 29                	jne    0x60038f
600366:	57                   	push   %edi
600367:	e8 89 5a 00 00       	call   0x605df5
60036c:	6a 00                	push   $0x0
60036e:	8b d8                	mov    %eax,%ebx
600370:	e8 b3 44 00 00       	call   0x604828
600375:	59                   	pop    %ecx
600376:	59                   	pop    %ecx
600377:	85 db                	test   %ebx,%ebx
600379:	75 0b                	jne    0x600386
60037b:	ff 05 d0 0c 73 00    	incl   0x730cd0
600381:	83 c8 ff             	or     $0xffffffff,%eax
600384:	eb 1d                	jmp    0x6003a3
600386:	68 40 01 00 00       	push   $0x140
60038b:	57                   	push   %edi
60038c:	53                   	push   %ebx
60038d:	eb 07                	jmp    0x600396
60038f:	68 80 01 00 00       	push   $0x180
600394:	57                   	push   %edi
600395:	50                   	push   %eax
600396:	8b 46 04             	mov    0x4(%esi),%eax
600399:	ff 30                	push   (%eax)
60039b:	e8 07 00 00 00       	call   0x6003a7
6003a0:	83 c4 10             	add    $0x10,%esp
6003a3:	5f                   	pop    %edi
6003a4:	5e                   	pop    %esi
6003a5:	5b                   	pop    %ebx
6003a6:	c3                   	ret
6003a7:	8b ff                	mov    %edi,%edi
6003a9:	55                   	push   %ebp
6003aa:	8b ec                	mov    %esp,%ebp
6003ac:	8b 45 08             	mov    0x8(%ebp),%eax
6003af:	8b 4d 14             	mov    0x14(%ebp),%ecx
6003b2:	83 c0 0c             	add    $0xc,%eax
6003b5:	f0 09 08             	lock or %ecx,(%eax)
6003b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
6003bb:	8b 45 10             	mov    0x10(%ebp),%eax
6003be:	89 41 18             	mov    %eax,0x18(%ecx)
6003c1:	8b 45 08             	mov    0x8(%ebp),%eax
6003c4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6003c7:	89 08                	mov    %ecx,(%eax)
6003c9:	8b 45 08             	mov    0x8(%ebp),%eax
6003cc:	89 48 04             	mov    %ecx,0x4(%eax)
6003cf:	8b 45 08             	mov    0x8(%ebp),%eax
6003d2:	83 60 08 00          	andl   $0x0,0x8(%eax)
6003d6:	33 c0                	xor    %eax,%eax
6003d8:	5d                   	pop    %ebp
6003d9:	c3                   	ret
6003da:	8b ff                	mov    %edi,%edi
6003dc:	55                   	push   %ebp
6003dd:	8b ec                	mov    %esp,%ebp
6003df:	83 ec 20             	sub    $0x20,%esp
6003e2:	8b 4d 08             	mov    0x8(%ebp),%ecx
6003e5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
6003e8:	85 c9                	test   %ecx,%ecx
6003ea:	75 15                	jne    0x600401
6003ec:	e8 08 cc fe ff       	call   0x5ecff9
6003f1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
6003f7:	e8 23 cb fe ff       	call   0x5ecf1f
6003fc:	83 c8 ff             	or     $0xffffffff,%eax
6003ff:	c9                   	leave
600400:	c3                   	ret
600401:	8b 45 10             	mov    0x10(%ebp),%eax
600404:	83 f8 04             	cmp    $0x4,%eax
600407:	74 09                	je     0x600412
600409:	85 c0                	test   %eax,%eax
60040b:	74 0e                	je     0x60041b
60040d:	83 f8 40             	cmp    $0x40,%eax
600410:	75 da                	jne    0x6003ec
600412:	85 c0                	test   %eax,%eax
600414:	74 05                	je     0x60041b
600416:	83 f8 40             	cmp    $0x40,%eax
600419:	75 0d                	jne    0x600428
60041b:	8b 45 14             	mov    0x14(%ebp),%eax
60041e:	83 c0 fe             	add    $0xfffffffe,%eax
600421:	3d fd ff ff 7f       	cmp    $0x7ffffffd,%eax
600426:	77 c4                	ja     0x6003ec
600428:	8d 45 14             	lea    0x14(%ebp),%eax
60042b:	89 4d f4             	mov    %ecx,-0xc(%ebp)
60042e:	89 45 e0             	mov    %eax,-0x20(%ebp)
600431:	8d 45 f8             	lea    -0x8(%ebp),%eax
600434:	89 45 e4             	mov    %eax,-0x1c(%ebp)
600437:	8d 45 10             	lea    0x10(%ebp),%eax
60043a:	89 45 e8             	mov    %eax,-0x18(%ebp)
60043d:	8d 45 0c             	lea    0xc(%ebp),%eax
600440:	89 45 ec             	mov    %eax,-0x14(%ebp)
600443:	8d 45 f4             	lea    -0xc(%ebp),%eax
600446:	50                   	push   %eax
600447:	8d 45 e0             	lea    -0x20(%ebp),%eax
60044a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
60044d:	50                   	push   %eax
60044e:	8d 45 f0             	lea    -0x10(%ebp),%eax
600451:	50                   	push   %eax
600452:	8d 4d ff             	lea    -0x1(%ebp),%ecx
600455:	e8 58 fe ff ff       	call   0x6002b2
60045a:	c9                   	leave
60045b:	c3                   	ret
60045c:	8b ff                	mov    %edi,%edi
60045e:	55                   	push   %ebp
60045f:	8b ec                	mov    %esp,%ebp
600461:	53                   	push   %ebx
600462:	56                   	push   %esi
600463:	8b 75 0c             	mov    0xc(%ebp),%esi
600466:	57                   	push   %edi
600467:	8d 56 0c             	lea    0xc(%esi),%edx
60046a:	8b 02                	mov    (%edx),%eax
60046c:	90                   	nop
60046d:	c1 e8 0c             	shr    $0xc,%eax
600470:	a8 01                	test   $0x1,%al
600472:	75 73                	jne    0x6004e7
600474:	56                   	push   %esi
600475:	e8 2e f3 ff ff       	call   0x5ff7a8
60047a:	bf 48 8d 72 00       	mov    $0x728d48,%edi
60047f:	59                   	pop    %ecx
600480:	83 f8 ff             	cmp    $0xffffffff,%eax
600483:	74 1b                	je     0x6004a0
600485:	83 f8 fe             	cmp    $0xfffffffe,%eax
600488:	74 16                	je     0x6004a0
60048a:	8b d0                	mov    %eax,%edx
60048c:	8b c8                	mov    %eax,%ecx
60048e:	83 e2 3f             	and    $0x3f,%edx
600491:	c1 f9 06             	sar    $0x6,%ecx
600494:	6b da 38             	imul   $0x38,%edx,%ebx
600497:	03 1c 8d b8 10 73 00 	add    0x7310b8(,%ecx,4),%ebx
60049e:	eb 0c                	jmp    0x6004ac
6004a0:	8b c8                	mov    %eax,%ecx
6004a2:	8b d0                	mov    %eax,%edx
6004a4:	c1 f9 06             	sar    $0x6,%ecx
6004a7:	8b df                	mov    %edi,%ebx
6004a9:	83 e2 3f             	and    $0x3f,%edx
6004ac:	80 7b 29 00          	cmpb   $0x0,0x29(%ebx)
6004b0:	75 1a                	jne    0x6004cc
6004b2:	83 f8 ff             	cmp    $0xffffffff,%eax
6004b5:	74 0f                	je     0x6004c6
6004b7:	83 f8 fe             	cmp    $0xfffffffe,%eax
6004ba:	74 0a                	je     0x6004c6
6004bc:	6b fa 38             	imul   $0x38,%edx,%edi
6004bf:	03 3c 8d b8 10 73 00 	add    0x7310b8(,%ecx,4),%edi
6004c6:	f6 47 2d 01          	testb  $0x1,0x2d(%edi)
6004ca:	74 18                	je     0x6004e4
6004cc:	e8 28 cb fe ff       	call   0x5ecff9
6004d1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
6004d7:	e8 43 ca fe ff       	call   0x5ecf1f
6004dc:	83 c8 ff             	or     $0xffffffff,%eax
6004df:	5f                   	pop    %edi
6004e0:	5e                   	pop    %esi
6004e1:	5b                   	pop    %ebx
6004e2:	5d                   	pop    %ebp
6004e3:	c3                   	ret
6004e4:	8d 56 0c             	lea    0xc(%esi),%edx
6004e7:	8b 5d 08             	mov    0x8(%ebp),%ebx
6004ea:	83 fb ff             	cmp    $0xffffffff,%ebx
6004ed:	74 ed                	je     0x6004dc
6004ef:	8b 02                	mov    (%edx),%eax
6004f1:	90                   	nop
6004f2:	8b 0a                	mov    (%edx),%ecx
6004f4:	90                   	nop
6004f5:	a8 01                	test   $0x1,%al
6004f7:	75 08                	jne    0x600501
6004f9:	83 e1 06             	and    $0x6,%ecx
6004fc:	80 f9 06             	cmp    $0x6,%cl
6004ff:	75 db                	jne    0x6004dc
600501:	8b 46 04             	mov    0x4(%esi),%eax
600504:	85 c0                	test   %eax,%eax
600506:	75 0d                	jne    0x600515
600508:	56                   	push   %esi
600509:	e8 c9 b0 00 00       	call   0x60b5d7
60050e:	8b 46 04             	mov    0x4(%esi),%eax
600511:	8d 56 0c             	lea    0xc(%esi),%edx
600514:	59                   	pop    %ecx
600515:	8b 0e                	mov    (%esi),%ecx
600517:	3b c8                	cmp    %eax,%ecx
600519:	75 0b                	jne    0x600526
60051b:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
60051f:	75 bb                	jne    0x6004dc
600521:	8d 41 01             	lea    0x1(%ecx),%eax
600524:	89 06                	mov    %eax,(%esi)
600526:	8b 02                	mov    (%edx),%eax
600528:	90                   	nop
600529:	8b 0e                	mov    (%esi),%ecx
60052b:	c1 e8 0c             	shr    $0xc,%eax
60052e:	49                   	dec    %ecx
60052f:	89 0e                	mov    %ecx,(%esi)
600531:	24 01                	and    $0x1,%al
600533:	74 0b                	je     0x600540
600535:	38 19                	cmp    %bl,(%ecx)
600537:	74 09                	je     0x600542
600539:	8d 41 01             	lea    0x1(%ecx),%eax
60053c:	89 06                	mov    %eax,(%esi)
60053e:	eb 9c                	jmp    0x6004dc
600540:	88 19                	mov    %bl,(%ecx)
600542:	ff 46 08             	incl   0x8(%esi)
600545:	6a f7                	push   $0xfffffff7
600547:	58                   	pop    %eax
600548:	f0 21 02             	lock and %eax,(%edx)
60054b:	33 c0                	xor    %eax,%eax
60054d:	40                   	inc    %eax
60054e:	f0 09 02             	lock or %eax,(%edx)
600551:	0f b6 c3             	movzbl %bl,%eax
600554:	eb 89                	jmp    0x6004df
600556:	6a 0c                	push   $0xc
600558:	68 30 1e 70 00       	push   $0x701e30
60055d:	e8 ae 1f fe ff       	call   0x5e2510
600562:	8b 75 0c             	mov    0xc(%ebp),%esi
600565:	85 f6                	test   %esi,%esi
600567:	75 15                	jne    0x60057e
600569:	e8 8b ca fe ff       	call   0x5ecff9
60056e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
600574:	e8 a6 c9 fe ff       	call   0x5ecf1f
600579:	83 c8 ff             	or     $0xffffffff,%eax
60057c:	eb 2d                	jmp    0x6005ab
60057e:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
600582:	56                   	push   %esi
600583:	e8 1a bc ff ff       	call   0x5fc1a2
600588:	59                   	pop    %ecx
600589:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
60058d:	56                   	push   %esi
60058e:	ff 75 08             	push   0x8(%ebp)
600591:	e8 c6 fe ff ff       	call   0x60045c
600596:	59                   	pop    %ecx
600597:	59                   	pop    %ecx
600598:	8b f8                	mov    %eax,%edi
60059a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
60059d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
6005a4:	e8 18 00 00 00       	call   0x6005c1
6005a9:	8b c7                	mov    %edi,%eax
6005ab:	8b 4d f0             	mov    -0x10(%ebp),%ecx
6005ae:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
6005b5:	59                   	pop    %ecx
6005b6:	5f                   	pop    %edi
6005b7:	5e                   	pop    %esi
6005b8:	5b                   	pop    %ebx
6005b9:	c9                   	leave
6005ba:	c3                   	ret
6005bb:	8b 75 0c             	mov    0xc(%ebp),%esi
6005be:	8b 7d e4             	mov    -0x1c(%ebp),%edi
6005c1:	56                   	push   %esi
6005c2:	e8 ef bb ff ff       	call   0x5fc1b6
6005c7:	59                   	pop    %ecx
6005c8:	c3                   	ret
6005c9:	8b ff                	mov    %edi,%edi
6005cb:	55                   	push   %ebp
6005cc:	8b ec                	mov    %esp,%ebp
6005ce:	83 ec 18             	sub    $0x18,%esp
6005d1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
6005d5:	75 0e                	jne    0x6005e5
6005d7:	ff 75 0c             	push   0xc(%ebp)
6005da:	6a 00                	push   $0x0
6005dc:	e8 a4 6d ff ff       	call   0x5f7385
6005e1:	59                   	pop    %ecx
6005e2:	59                   	pop    %ecx
6005e3:	c9                   	leave
6005e4:	c3                   	ret
6005e5:	33 c0                	xor    %eax,%eax
6005e7:	56                   	push   %esi
6005e8:	89 45 e8             	mov    %eax,-0x18(%ebp)
6005eb:	89 45 ec             	mov    %eax,-0x14(%ebp)
6005ee:	89 45 f0             	mov    %eax,-0x10(%ebp)
6005f1:	89 45 f4             	mov    %eax,-0xc(%ebp)
6005f4:	89 45 f8             	mov    %eax,-0x8(%ebp)
6005f7:	88 45 fc             	mov    %al,-0x4(%ebp)
6005fa:	e8 76 65 ff ff       	call   0x5f6b75
6005ff:	50                   	push   %eax
600600:	8d 45 e8             	lea    -0x18(%ebp),%eax
600603:	50                   	push   %eax
600604:	ff 75 08             	push   0x8(%ebp)
600607:	e8 4c 65 ff ff       	call   0x5f6b58
60060c:	83 c4 0c             	add    $0xc,%esp
60060f:	85 c0                	test   %eax,%eax
600611:	74 05                	je     0x600618
600613:	83 ce ff             	or     $0xffffffff,%esi
600616:	eb 0f                	jmp    0x600627
600618:	ff 75 0c             	push   0xc(%ebp)
60061b:	ff 75 f0             	push   -0x10(%ebp)
60061e:	e8 62 6d ff ff       	call   0x5f7385
600623:	59                   	pop    %ecx
600624:	59                   	pop    %ecx
600625:	8b f0                	mov    %eax,%esi
600627:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
60062b:	74 09                	je     0x600636
60062d:	ff 75 f0             	push   -0x10(%ebp)
600630:	e8 f3 41 00 00       	call   0x604828
600635:	59                   	pop    %ecx
600636:	8b c6                	mov    %esi,%eax
600638:	5e                   	pop    %esi
600639:	c9                   	leave
60063a:	c3                   	ret
60063b:	cc                   	int3
60063c:	cc                   	int3
60063d:	cc                   	int3
60063e:	cc                   	int3
60063f:	cc                   	int3
600640:	8b ff                	mov    %edi,%edi
600642:	56                   	push   %esi
600643:	57                   	push   %edi
600644:	bf 10 0d 73 00       	mov    $0x730d10,%edi
600649:	33 f6                	xor    %esi,%esi
60064b:	6a 00                	push   $0x0
60064d:	68 a0 0f 00 00       	push   $0xfa0
600652:	57                   	push   %edi
600653:	e8 ed 70 00 00       	call   0x607745
600658:	85 c0                	test   %eax,%eax
60065a:	74 18                	je     0x600674
60065c:	ff 05 60 0e 73 00    	incl   0x730e60
600662:	83 c6 18             	add    $0x18,%esi
600665:	83 c7 18             	add    $0x18,%edi
600668:	81 fe 50 01 00 00    	cmp    $0x150,%esi
60066e:	72 db                	jb     0x60064b
600670:	b0 01                	mov    $0x1,%al
600672:	eb 0a                	jmp    0x60067e
600674:	6a 00                	push   $0x0
600676:	e8 25 00 00 00       	call   0x6006a0
60067b:	59                   	pop    %ecx
60067c:	32 c0                	xor    %al,%al
60067e:	5f                   	pop    %edi
60067f:	5e                   	pop    %esi
600680:	c3                   	ret
600681:	8b ff                	mov    %edi,%edi
600683:	55                   	push   %ebp
600684:	8b ec                	mov    %esp,%ebp
600686:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
60068a:	05 10 0d 73 00       	add    $0x730d10,%eax
60068f:	50                   	push   %eax
600690:	ff 15 d4 22 68 00    	call   *0x6822d4
600696:	5d                   	pop    %ebp
600697:	c3                   	ret
600698:	cc                   	int3
600699:	cc                   	int3
60069a:	cc                   	int3
60069b:	cc                   	int3
60069c:	cc                   	int3
60069d:	cc                   	int3
60069e:	cc                   	int3
60069f:	cc                   	int3
6006a0:	8b ff                	mov    %edi,%edi
6006a2:	56                   	push   %esi
6006a3:	8b 35 60 0e 73 00    	mov    0x730e60,%esi
6006a9:	85 f6                	test   %esi,%esi
6006ab:	74 20                	je     0x6006cd
6006ad:	6b c6 18             	imul   $0x18,%esi,%eax
6006b0:	57                   	push   %edi
6006b1:	8d b8 f8 0c 73 00    	lea    0x730cf8(%eax),%edi
6006b7:	57                   	push   %edi
6006b8:	ff 15 78 21 68 00    	call   *0x682178
6006be:	ff 0d 60 0e 73 00    	decl   0x730e60
6006c4:	83 ef 18             	sub    $0x18,%edi
6006c7:	83 ee 01             	sub    $0x1,%esi