43721b:	50                   	push   %eax
43721c:	8b 4e 3c             	mov    0x3c(%esi),%ecx
43721f:	ff 15 c4 12 45 00    	call   *0x4512c4
437225:	ff 56 3c             	call   *0x3c(%esi)
437228:	8b f0                	mov    %eax,%esi
43722a:	f0 ff 0f             	lock decl (%edi)
43722d:	85 f6                	test   %esi,%esi
43722f:	79 0f                	jns    0x437240
437231:	56                   	push   %esi
437232:	ff 15 a0 12 45 00    	call   *0x4512a0
437238:	8b c8                	mov    %eax,%ecx
43723a:	ff 15 a4 12 45 00    	call   *0x4512a4
437240:	a1 00 f0 44 00       	mov    0x44f000,%eax
437245:	3b c3                	cmp    %ebx,%eax
437247:	74 20                	je     0x437269
437249:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
43724d:	74 1a                	je     0x437269
43724f:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
437253:	72 14                	jb     0x437269
437255:	56                   	push   %esi
437256:	ff 70 14             	push   0x14(%eax)
437259:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
43725e:	ff 70 10             	push   0x10(%eax)
437261:	6a 22                	push   $0x22
437263:	59                   	pop    %ecx
437264:	e8 5d 95 ff ff       	call   0x4307c6
437269:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
437270:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
437274:	74 06                	je     0x43727c
437276:	ff 15 64 30 45 00    	call   *0x453064
43727c:	8b c6                	mov    %esi,%eax
43727e:	e8 b8 83 fe ff       	call   0x41f63b
437283:	c2 14 00             	ret    $0x14
437286:	cc                   	int3
437287:	cc                   	int3
437288:	cc                   	int3
437289:	cc                   	int3
43728a:	cc                   	int3
43728b:	cc                   	int3
43728c:	cc                   	int3
43728d:	cc                   	int3
43728e:	cc                   	int3
43728f:	cc                   	int3
437290:	8b ff                	mov    %edi,%edi
437292:	55                   	push   %ebp
437293:	8b ec                	mov    %esp,%ebp
437295:	83 ec 20             	sub    $0x20,%esp
437298:	a1 00 f0 44 00       	mov    0x44f000,%eax
43729d:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
4372a2:	74 2b                	je     0x4372cf
4372a4:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
4372a8:	74 25                	je     0x4372cf
4372aa:	80 78 19 05          	cmpb   $0x5,0x19(%eax)
4372ae:	72 1f                	jb     0x4372cf
4372b0:	ff 75 18             	push   0x18(%ebp)
4372b3:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
4372b8:	ff 75 14             	push   0x14(%ebp)
4372bb:	ff 75 10             	push   0x10(%ebp)
4372be:	ff 75 0c             	push   0xc(%ebp)
4372c1:	ff 70 14             	push   0x14(%eax)
4372c4:	ff 70 10             	push   0x10(%eax)
4372c7:	6a 5f                	push   $0x5f
4372c9:	59                   	pop    %ecx
4372ca:	e8 e9 c4 ff ff       	call   0x4337b8
4372cf:	53                   	push   %ebx
4372d0:	56                   	push   %esi
4372d1:	57                   	push   %edi
4372d2:	8b 7d 08             	mov    0x8(%ebp),%edi
4372d5:	8d 5f 14             	lea    0x14(%edi),%ebx
4372d8:	f0 ff 03             	lock incl (%ebx)
4372db:	83 7f 10 01          	cmpl   $0x1,0x10(%edi)
4372df:	75 0a                	jne    0x4372eb
4372e1:	be 33 10 04 80       	mov    $0x80041033,%esi
4372e6:	e9 85 00 00 00       	jmp    0x437370
4372eb:	51                   	push   %ecx
4372ec:	8d 45 f8             	lea    -0x8(%ebp),%eax
4372ef:	8b cf                	mov    %edi,%ecx
4372f1:	50                   	push   %eax
4372f2:	8d 45 ec             	lea    -0x14(%ebp),%eax
4372f5:	50                   	push   %eax
4372f6:	8d 45 fc             	lea    -0x4(%ebp),%eax
4372f9:	50                   	push   %eax
4372fa:	8d 45 e0             	lea    -0x20(%ebp),%eax
4372fd:	50                   	push   %eax
4372fe:	8d 45 f4             	lea    -0xc(%ebp),%eax
437301:	50                   	push   %eax
437302:	8d 45 f0             	lea    -0x10(%ebp),%eax
437305:	50                   	push   %eax
437306:	8d 45 e8             	lea    -0x18(%ebp),%eax
437309:	50                   	push   %eax
43730a:	e8 96 ce ff ff       	call   0x4341a5
43730f:	8b f0                	mov    %eax,%esi
437311:	85 f6                	test   %esi,%esi
437313:	78 5b                	js     0x437370
437315:	ff 75 18             	push   0x18(%ebp)
437318:	8b 45 fc             	mov    -0x4(%ebp),%eax
43731b:	ff 75 14             	push   0x14(%ebp)
43731e:	ff 75 10             	push   0x10(%ebp)
437321:	8b 30                	mov    (%eax),%esi
437323:	ff 75 0c             	push   0xc(%ebp)
437326:	50                   	push   %eax
437327:	8b 4e 3c             	mov    0x3c(%esi),%ecx
43732a:	ff 15 c4 12 45 00    	call   *0x4512c4
437330:	ff 56 3c             	call   *0x3c(%esi)
437333:	8b f0                	mov    %eax,%esi
437335:	8b 45 f8             	mov    -0x8(%ebp),%eax
437338:	89 45 fc             	mov    %eax,-0x4(%ebp)
43733b:	8b 45 f4             	mov    -0xc(%ebp),%eax
43733e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
437341:	8b 45 f0             	mov    -0x10(%ebp),%eax
437344:	89 45 e0             	mov    %eax,-0x20(%ebp)
437347:	ff 15 64 30 45 00    	call   *0x453064
43734d:	8b 45 fc             	mov    -0x4(%ebp),%eax
437350:	85 c0                	test   %eax,%eax
437352:	74 0e                	je     0x437362
437354:	ff 75 ec             	push   -0x14(%ebp)
437357:	8d 4f 44             	lea    0x44(%edi),%ecx
43735a:	33 d2                	xor    %edx,%edx
43735c:	50                   	push   %eax
43735d:	e8 2c fb 00 00       	call   0x446e8e
437362:	ff 75 e8             	push   -0x18(%ebp)
437365:	8b 55 e4             	mov    -0x1c(%ebp),%edx
437368:	8b 4d e0             	mov    -0x20(%ebp),%ecx
43736b:	e8 e2 79 fe ff       	call   0x41ed52
437370:	f0 ff 0b             	lock decl (%ebx)
437373:	85 f6                	test   %esi,%esi
437375:	79 0f                	jns    0x437386
437377:	56                   	push   %esi
437378:	ff 15 a0 12 45 00    	call   *0x4512a0
43737e:	8b c8                	mov    %eax,%ecx
437380:	ff 15 a4 12 45 00    	call   *0x4512a4
437386:	a1 00 f0 44 00       	mov    0x44f000,%eax
43738b:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
437390:	74 20                	je     0x4373b2
437392:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437396:	74 1a                	je     0x4373b2
437398:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
43739c:	72 14                	jb     0x4373b2
43739e:	56                   	push   %esi
43739f:	ff 70 14             	push   0x14(%eax)
4373a2:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
4373a7:	ff 70 10             	push   0x10(%eax)
4373aa:	6a 60                	push   $0x60
4373ac:	59                   	pop    %ecx
4373ad:	e8 14 94 ff ff       	call   0x4307c6
4373b2:	5f                   	pop    %edi
4373b3:	8b c6                	mov    %esi,%eax
4373b5:	5e                   	pop    %esi
4373b6:	5b                   	pop    %ebx
4373b7:	c9                   	leave
4373b8:	c2 14 00             	ret    $0x14
4373bb:	cc                   	int3
4373bc:	cc                   	int3
4373bd:	cc                   	int3
4373be:	cc                   	int3
4373bf:	cc                   	int3
4373c0:	8b ff                	mov    %edi,%edi
4373c2:	55                   	push   %ebp
4373c3:	8b ec                	mov    %esp,%ebp
4373c5:	53                   	push   %ebx
4373c6:	8b 5d 10             	mov    0x10(%ebp),%ebx
4373c9:	56                   	push   %esi
4373ca:	8b 75 08             	mov    0x8(%ebp),%esi
4373cd:	6a 10                	push   $0x10
4373cf:	83 23 00             	andl   $0x0,(%ebx)
4373d2:	68 84 7a 40 00       	push   $0x407a84
4373d7:	ff 75 0c             	push   0xc(%ebp)
4373da:	e8 8b ae fe ff       	call   0x42226a
4373df:	83 c4 0c             	add    $0xc,%esp
4373e2:	85 c0                	test   %eax,%eax
4373e4:	74 50                	je     0x437436
4373e6:	6a 10                	push   $0x10
4373e8:	68 48 6b 40 00       	push   $0x406b48
4373ed:	ff 75 0c             	push   0xc(%ebp)
4373f0:	e8 75 ae fe ff       	call   0x42226a
4373f5:	83 c4 0c             	add    $0xc,%esp
4373f8:	85 c0                	test   %eax,%eax
4373fa:	74 3a                	je     0x437436
4373fc:	6a 10                	push   $0x10
4373fe:	68 a4 b4 40 00       	push   $0x40b4a4
437403:	ff 75 0c             	push   0xc(%ebp)
437406:	e8 5f ae fe ff       	call   0x42226a
43740b:	83 c4 0c             	add    $0xc,%esp
43740e:	85 c0                	test   %eax,%eax
437410:	75 05                	jne    0x437417
437412:	8d 46 04             	lea    0x4(%esi),%eax
437415:	eb 19                	jmp    0x437430
437417:	6a 10                	push   $0x10
437419:	68 08 6c 40 00       	push   $0x406c08
43741e:	ff 75 0c             	push   0xc(%ebp)
437421:	e8 44 ae fe ff       	call   0x42226a
437426:	83 c4 0c             	add    $0xc,%esp
437429:	85 c0                	test   %eax,%eax
43742b:	75 23                	jne    0x437450
43742d:	8d 46 08             	lea    0x8(%esi),%eax
437430:	f7 de                	neg    %esi
437432:	1b f6                	sbb    %esi,%esi
437434:	23 f0                	and    %eax,%esi
437436:	89 33                	mov    %esi,(%ebx)
437438:	85 f6                	test   %esi,%esi
43743a:	74 14                	je     0x437450
43743c:	8b 06                	mov    (%esi),%eax
43743e:	56                   	push   %esi
43743f:	8b 70 04             	mov    0x4(%eax),%esi
437442:	8b ce                	mov    %esi,%ecx
437444:	ff 15 c4 12 45 00    	call   *0x4512c4
43744a:	ff d6                	call   *%esi
43744c:	33 c0                	xor    %eax,%eax
43744e:	eb 05                	jmp    0x437455
437450:	b8 02 40 00 80       	mov    $0x80004002,%eax
437455:	5e                   	pop    %esi
437456:	5b                   	pop    %ebx
437457:	5d                   	pop    %ebp
437458:	c2 0c 00             	ret    $0xc
43745b:	cc                   	int3
43745c:	cc                   	int3
43745d:	cc                   	int3
43745e:	cc                   	int3
43745f:	cc                   	int3
437460:	6a 04                	push   $0x4
437462:	b8 7e 3c 42 00       	mov    $0x423c7e,%eax
437467:	e8 01 82 fe ff       	call   0x41f66d
43746c:	8b 75 08             	mov    0x8(%ebp),%esi
43746f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
437472:	ff 76 40             	push   0x40(%esi)
437475:	e8 8b c4 ff ff       	call   0x433905
43747a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43747e:	8d 7e 14             	lea    0x14(%esi),%edi
437481:	f0 ff 07             	lock incl (%edi)
437484:	83 7e 10 01          	cmpl   $0x1,0x10(%esi)
437488:	75 07                	jne    0x437491
43748a:	be 33 10 04 80       	mov    $0x80041033,%esi
43748f:	eb 1b                	jmp    0x4374ac
437491:	8b 46 38             	mov    0x38(%esi),%eax
437494:	ff 75 10             	push   0x10(%ebp)
437497:	ff 75 0c             	push   0xc(%ebp)
43749a:	8b 08                	mov    (%eax),%ecx
43749c:	50                   	push   %eax
43749d:	8b 71 14             	mov    0x14(%ecx),%esi
4374a0:	8b ce                	mov    %esi,%ecx
4374a2:	ff 15 c4 12 45 00    	call   *0x4512c4
4374a8:	ff d6                	call   *%esi
4374aa:	8b f0                	mov    %eax,%esi
4374ac:	f0 ff 0f             	lock decl (%edi)
4374af:	85 f6                	test   %esi,%esi
4374b1:	79 0f                	jns    0x4374c2
4374b3:	56                   	push   %esi
4374b4:	ff 15 a0 12 45 00    	call   *0x4512a0
4374ba:	8b c8                	mov    %eax,%ecx
4374bc:	ff 15 a4 12 45 00    	call   *0x4512a4
4374c2:	a1 00 f0 44 00       	mov    0x44f000,%eax
4374c7:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
4374cc:	74 20                	je     0x4374ee
4374ce:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
4374d2:	74 1a                	je     0x4374ee
4374d4:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
4374d8:	72 14                	jb     0x4374ee
4374da:	56                   	push   %esi
4374db:	ff 70 14             	push   0x14(%eax)
4374de:	ba d4 b1 40 00       	mov    $0x40b1d4,%edx
4374e3:	ff 70 10             	push   0x10(%eax)
4374e6:	6a 0e                	push   $0xe
4374e8:	59                   	pop    %ecx
4374e9:	e8 d8 92 ff ff       	call   0x4307c6
4374ee:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4374f5:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4374f9:	74 06                	je     0x437501
4374fb:	ff 15 64 30 45 00    	call   *0x453064
437501:	8b c6                	mov    %esi,%eax
437503:	e8 33 81 fe ff       	call   0x41f63b
437508:	c2 0c 00             	ret    $0xc
43750b:	cc                   	int3
43750c:	cc                   	int3
43750d:	cc                   	int3
43750e:	cc                   	int3
43750f:	cc                   	int3
437510:	8b ff                	mov    %edi,%edi
437512:	55                   	push   %ebp
437513:	8b ec                	mov    %esp,%ebp
437515:	83 ec 20             	sub    $0x20,%esp
437518:	a1 00 f0 44 00       	mov    0x44f000,%eax
43751d:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
437522:	74 1d                	je     0x437541
437524:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
437528:	74 17                	je     0x437541
43752a:	80 78 19 05          	cmpb   $0x5,0x19(%eax)
43752e:	72 11                	jb     0x437541
437530:	ff 75 10             	push   0x10(%ebp)
437533:	ff 75 0c             	push   0xc(%ebp)
437536:	ff 70 14             	push   0x14(%eax)
437539:	ff 70 10             	push   0x10(%eax)
43753c:	e8 7e 08 00 00       	call   0x437dbf
437541:	53                   	push   %ebx
437542:	56                   	push   %esi
437543:	57                   	push   %edi
437544:	8b 7d 08             	mov    0x8(%ebp),%edi
437547:	8d 5f 14             	lea    0x14(%edi),%ebx
43754a:	f0 ff 03             	lock incl (%ebx)
43754d:	83 7f 10 01          	cmpl   $0x1,0x10(%edi)
437551:	75 0a                	jne    0x43755d
437553:	be 33 10 04 80       	mov    $0x80041033,%esi
437558:	e9 80 00 00 00       	jmp    0x4375dd
43755d:	51                   	push   %ecx
43755e:	8d 45 f8             	lea    -0x8(%ebp),%eax
437561:	8b cf                	mov    %edi,%ecx
437563:	50                   	push   %eax
437564:	8d 45 ec             	lea    -0x14(%ebp),%eax
437567:	50                   	push   %eax
437568:	8d 45 fc             	lea    -0x4(%ebp),%eax
43756b:	50                   	push   %eax
43756c:	8d 45 e0             	lea    -0x20(%ebp),%eax
43756f:	50                   	push   %eax
437570:	8d 45 f4             	lea    -0xc(%ebp),%eax
437573:	50                   	push   %eax
437574:	8d 45 f0             	lea    -0x10(%ebp),%eax
437577:	50                   	push   %eax
437578:	8d 45 e8             	lea    -0x18(%ebp),%eax
43757b:	50                   	push   %eax
43757c:	e8 24 cc ff ff       	call   0x4341a5
437581:	8b f0                	mov    %eax,%esi
437583:	85 f6                	test   %esi,%esi
437585:	78 56                	js     0x4375dd
437587:	8b 45 fc             	mov    -0x4(%ebp),%eax
43758a:	ff 75 10             	push   0x10(%ebp)
43758d:	ff 75 0c             	push   0xc(%ebp)
437590:	8b 08                	mov    (%eax),%ecx
437592:	50                   	push   %eax
437593:	8b 71 14             	mov    0x14(%ecx),%esi
437596:	8b ce                	mov    %esi,%ecx
437598:	ff 15 c4 12 45 00    	call   *0x4512c4
43759e:	ff d6                	call   *%esi
4375a0:	8b f0                	mov    %eax,%esi
4375a2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4375a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4375a8:	8b 45 f4             	mov    -0xc(%ebp),%eax
4375ab:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4375ae:	8b 45 f0             	mov    -0x10(%ebp),%eax
4375b1:	89 45 e0             	mov    %eax,-0x20(%ebp)
4375b4:	ff 15 64 30 45 00    	call   *0x453064
4375ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
4375bd:	85 c0                	test   %eax,%eax
4375bf:	74 0e                	je     0x4375cf
4375c1:	ff 75 ec             	push   -0x14(%ebp)
4375c4:	8d 4f 44             	lea    0x44(%edi),%ecx
4375c7:	33 d2                	xor    %edx,%edx
4375c9:	50                   	push   %eax
4375ca:	e8 bf f8 00 00       	call   0x446e8e
4375cf:	ff 75 e8             	push   -0x18(%ebp)
4375d2:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4375d5:	8b 4d e0             	mov    -0x20(%ebp),%ecx