4352c4:	8b 75 0c             	mov    0xc(%ebp),%esi
4352c7:	0f b7 1e             	movzwl (%esi),%ebx
4352ca:	8b fe                	mov    %esi,%edi
4352cc:	66 85 db             	test   %bx,%bx
4352cf:	74 23                	je     0x4352f4
4352d1:	0f b7 01             	movzwl (%ecx),%eax
4352d4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4352d7:	8b c3                	mov    %ebx,%eax
4352d9:	66 39 45 fc          	cmp    %ax,-0x4(%ebp)
4352dd:	74 1d                	je     0x4352fc
4352df:	83 c7 02             	add    $0x2,%edi
4352e2:	0f b7 07             	movzwl (%edi),%eax
4352e5:	8b d0                	mov    %eax,%edx
4352e7:	89 55 f8             	mov    %edx,-0x8(%ebp)
4352ea:	8b 55 08             	mov    0x8(%ebp),%edx
4352ed:	66 85 c0             	test   %ax,%ax
4352f0:	75 e7                	jne    0x4352d9
4352f2:	33 c0                	xor    %eax,%eax
4352f4:	83 c1 02             	add    $0x2,%ecx
4352f7:	66 39 01             	cmp    %ax,(%ecx)
4352fa:	75 ce                	jne    0x4352ca
4352fc:	5f                   	pop    %edi
4352fd:	2b ca                	sub    %edx,%ecx
4352ff:	d1 f9                	sar    $1,%ecx
435301:	5e                   	pop    %esi
435302:	8b c1                	mov    %ecx,%eax
435304:	5b                   	pop    %ebx
435305:	c9                   	leave
435306:	c3                   	ret
435307:	8b ff                	mov    %edi,%edi
435309:	55                   	push   %ebp
43530a:	8b ec                	mov    %esp,%ebp
43530c:	8b 4d 08             	mov    0x8(%ebp),%ecx
43530f:	33 c0                	xor    %eax,%eax
435311:	53                   	push   %ebx
435312:	56                   	push   %esi
435313:	57                   	push   %edi
435314:	66 39 01             	cmp    %ax,(%ecx)
435317:	74 31                	je     0x43534a
435319:	8b 55 0c             	mov    0xc(%ebp),%edx
43531c:	0f b7 3a             	movzwl (%edx),%edi
43531f:	8b f2                	mov    %edx,%esi
435321:	66 85 ff             	test   %di,%di
435324:	74 1c                	je     0x435342
435326:	0f b7 01             	movzwl (%ecx),%eax
435329:	8b df                	mov    %edi,%ebx
43532b:	66 3b d8             	cmp    %ax,%bx
43532e:	74 21                	je     0x435351
435330:	83 c6 02             	add    $0x2,%esi
435333:	0f b7 06             	movzwl (%esi),%eax
435336:	8b d8                	mov    %eax,%ebx
435338:	66 85 c0             	test   %ax,%ax
43533b:	0f b7 01             	movzwl (%ecx),%eax
43533e:	75 eb                	jne    0x43532b
435340:	33 c0                	xor    %eax,%eax
435342:	83 c1 02             	add    $0x2,%ecx
435345:	66 39 01             	cmp    %ax,(%ecx)
435348:	75 d5                	jne    0x43531f
43534a:	33 c0                	xor    %eax,%eax
43534c:	5f                   	pop    %edi
43534d:	5e                   	pop    %esi
43534e:	5b                   	pop    %ebx
43534f:	5d                   	pop    %ebp
435350:	c3                   	ret
435351:	8b c1                	mov    %ecx,%eax
435353:	eb f7                	jmp    0x43534c
435355:	8b ff                	mov    %edi,%edi
435357:	55                   	push   %ebp
435358:	8b ec                	mov    %esp,%ebp
43535a:	8b 45 08             	mov    0x8(%ebp),%eax
43535d:	f0 ff 40 0c          	lock incl 0xc(%eax)
435361:	8b 48 7c             	mov    0x7c(%eax),%ecx
435364:	85 c9                	test   %ecx,%ecx
435366:	74 03                	je     0x43536b
435368:	f0 ff 01             	lock incl (%ecx)
43536b:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
435371:	85 c9                	test   %ecx,%ecx
435373:	74 03                	je     0x435378
435375:	f0 ff 01             	lock incl (%ecx)
435378:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
43537e:	85 c9                	test   %ecx,%ecx
435380:	74 03                	je     0x435385
435382:	f0 ff 01             	lock incl (%ecx)
435385:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
43538b:	85 c9                	test   %ecx,%ecx
43538d:	74 03                	je     0x435392
43538f:	f0 ff 01             	lock incl (%ecx)
435392:	56                   	push   %esi
435393:	6a 06                	push   $0x6
435395:	8d 48 28             	lea    0x28(%eax),%ecx
435398:	5e                   	pop    %esi
435399:	81 79 f8 78 42 45 00 	cmpl   $0x454278,-0x8(%ecx)
4353a0:	74 09                	je     0x4353ab
4353a2:	8b 11                	mov    (%ecx),%edx
4353a4:	85 d2                	test   %edx,%edx
4353a6:	74 03                	je     0x4353ab
4353a8:	f0 ff 02             	lock incl (%edx)
4353ab:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
4353af:	74 0a                	je     0x4353bb
4353b1:	8b 51 fc             	mov    -0x4(%ecx),%edx
4353b4:	85 d2                	test   %edx,%edx
4353b6:	74 03                	je     0x4353bb
4353b8:	f0 ff 02             	lock incl (%edx)
4353bb:	83 c1 10             	add    $0x10,%ecx
4353be:	83 ee 01             	sub    $0x1,%esi
4353c1:	75 d6                	jne    0x435399
4353c3:	ff b0 9c 00 00 00    	push   0x9c(%eax)
4353c9:	e8 4c 01 00 00       	call   0x43551a
4353ce:	59                   	pop    %ecx
4353cf:	5e                   	pop    %esi
4353d0:	5d                   	pop    %ebp
4353d1:	c3                   	ret
4353d2:	8b ff                	mov    %edi,%edi
4353d4:	55                   	push   %ebp
4353d5:	8b ec                	mov    %esp,%ebp
4353d7:	51                   	push   %ecx
4353d8:	53                   	push   %ebx
4353d9:	56                   	push   %esi
4353da:	8b 75 08             	mov    0x8(%ebp),%esi
4353dd:	57                   	push   %edi
4353de:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
4353e4:	85 c0                	test   %eax,%eax
4353e6:	74 6c                	je     0x435454
4353e8:	3d 80 40 45 00       	cmp    $0x454080,%eax
4353ed:	74 65                	je     0x435454
4353ef:	8b 46 7c             	mov    0x7c(%esi),%eax
4353f2:	85 c0                	test   %eax,%eax
4353f4:	74 5e                	je     0x435454
4353f6:	83 38 00             	cmpl   $0x0,(%eax)
4353f9:	75 59                	jne    0x435454
4353fb:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
435401:	85 c0                	test   %eax,%eax
435403:	74 18                	je     0x43541d
435405:	83 38 00             	cmpl   $0x0,(%eax)
435408:	75 13                	jne    0x43541d
43540a:	50                   	push   %eax
43540b:	e8 67 70 ff ff       	call   0x42c477
435410:	ff b6 88 00 00 00    	push   0x88(%esi)
435416:	e8 9b f2 ff ff       	call   0x4346b6
43541b:	59                   	pop    %ecx
43541c:	59                   	pop    %ecx
43541d:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
435423:	85 c0                	test   %eax,%eax
435425:	74 18                	je     0x43543f
435427:	83 38 00             	cmpl   $0x0,(%eax)
43542a:	75 13                	jne    0x43543f
43542c:	50                   	push   %eax
43542d:	e8 45 70 ff ff       	call   0x42c477
435432:	ff b6 88 00 00 00    	push   0x88(%esi)
435438:	e8 e4 f6 ff ff       	call   0x434b21
43543d:	59                   	pop    %ecx
43543e:	59                   	pop    %ecx
43543f:	ff 76 7c             	push   0x7c(%esi)
435442:	e8 30 70 ff ff       	call   0x42c477
435447:	ff b6 88 00 00 00    	push   0x88(%esi)
43544d:	e8 25 70 ff ff       	call   0x42c477
435452:	59                   	pop    %ecx
435453:	59                   	pop    %ecx
435454:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
43545a:	85 c0                	test   %eax,%eax
43545c:	74 45                	je     0x4354a3
43545e:	83 38 00             	cmpl   $0x0,(%eax)
435461:	75 40                	jne    0x4354a3
435463:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
435469:	2d fe 00 00 00       	sub    $0xfe,%eax
43546e:	50                   	push   %eax
43546f:	e8 03 70 ff ff       	call   0x42c477
435474:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
43547a:	bf 80 00 00 00       	mov    $0x80,%edi
43547f:	2b c7                	sub    %edi,%eax
435481:	50                   	push   %eax
435482:	e8 f0 6f ff ff       	call   0x42c477
435487:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
43548d:	2b c7                	sub    %edi,%eax
43548f:	50                   	push   %eax
435490:	e8 e2 6f ff ff       	call   0x42c477
435495:	ff b6 8c 00 00 00    	push   0x8c(%esi)
43549b:	e8 d7 6f ff ff       	call   0x42c477
4354a0:	83 c4 10             	add    $0x10,%esp
4354a3:	ff b6 9c 00 00 00    	push   0x9c(%esi)
4354a9:	e8 95 00 00 00       	call   0x435543
4354ae:	59                   	pop    %ecx
4354af:	6a 06                	push   $0x6
4354b1:	58                   	pop    %eax
4354b2:	8d 9e a0 00 00 00    	lea    0xa0(%esi),%ebx
4354b8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4354bb:	8d 7e 28             	lea    0x28(%esi),%edi
4354be:	81 7f f8 78 42 45 00 	cmpl   $0x454278,-0x8(%edi)
4354c5:	74 1d                	je     0x4354e4
4354c7:	8b 07                	mov    (%edi),%eax
4354c9:	85 c0                	test   %eax,%eax
4354cb:	74 14                	je     0x4354e1
4354cd:	83 38 00             	cmpl   $0x0,(%eax)
4354d0:	75 0f                	jne    0x4354e1
4354d2:	50                   	push   %eax
4354d3:	e8 9f 6f ff ff       	call   0x42c477
4354d8:	ff 33                	push   (%ebx)
4354da:	e8 98 6f ff ff       	call   0x42c477
4354df:	59                   	pop    %ecx
4354e0:	59                   	pop    %ecx
4354e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4354e4:	83 7f f4 00          	cmpl   $0x0,-0xc(%edi)
4354e8:	74 16                	je     0x435500
4354ea:	8b 47 fc             	mov    -0x4(%edi),%eax
4354ed:	85 c0                	test   %eax,%eax
4354ef:	74 0c                	je     0x4354fd
4354f1:	83 38 00             	cmpl   $0x0,(%eax)
4354f4:	75 07                	jne    0x4354fd
4354f6:	50                   	push   %eax
4354f7:	e8 7b 6f ff ff       	call   0x42c477
4354fc:	59                   	pop    %ecx
4354fd:	8b 45 fc             	mov    -0x4(%ebp),%eax
435500:	83 c3 04             	add    $0x4,%ebx
435503:	83 c7 10             	add    $0x10,%edi
435506:	83 e8 01             	sub    $0x1,%eax
435509:	89 45 fc             	mov    %eax,-0x4(%ebp)
43550c:	75 b0                	jne    0x4354be
43550e:	56                   	push   %esi
43550f:	e8 63 6f ff ff       	call   0x42c477
435514:	59                   	pop    %ecx
435515:	5f                   	pop    %edi
435516:	5e                   	pop    %esi
435517:	5b                   	pop    %ebx
435518:	c9                   	leave
435519:	c3                   	ret
43551a:	8b ff                	mov    %edi,%edi
43551c:	55                   	push   %ebp
43551d:	8b ec                	mov    %esp,%ebp
43551f:	8b 4d 08             	mov    0x8(%ebp),%ecx
435522:	85 c9                	test   %ecx,%ecx
435524:	74 16                	je     0x43553c
435526:	81 f9 d0 29 44 00    	cmp    $0x4429d0,%ecx
43552c:	74 0e                	je     0x43553c
43552e:	33 c0                	xor    %eax,%eax
435530:	40                   	inc    %eax
435531:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
435538:	00
435539:	40                   	inc    %eax
43553a:	5d                   	pop    %ebp
43553b:	c3                   	ret
43553c:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
435541:	5d                   	pop    %ebp
435542:	c3                   	ret
435543:	8b ff                	mov    %edi,%edi
435545:	55                   	push   %ebp
435546:	8b ec                	mov    %esp,%ebp
435548:	56                   	push   %esi
435549:	8b 75 08             	mov    0x8(%ebp),%esi
43554c:	85 f6                	test   %esi,%esi
43554e:	74 21                	je     0x435571
435550:	81 fe d0 29 44 00    	cmp    $0x4429d0,%esi
435556:	74 19                	je     0x435571
435558:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
43555e:	90                   	nop
43555f:	85 c0                	test   %eax,%eax
435561:	75 0e                	jne    0x435571
435563:	56                   	push   %esi
435564:	e8 e5 fa ff ff       	call   0x43504e
435569:	56                   	push   %esi
43556a:	e8 08 6f ff ff       	call   0x42c477
43556f:	59                   	pop    %ecx
435570:	59                   	pop    %ecx
435571:	5e                   	pop    %esi
435572:	5d                   	pop    %ebp
435573:	c3                   	ret
435574:	8b ff                	mov    %edi,%edi
435576:	55                   	push   %ebp
435577:	8b ec                	mov    %esp,%ebp
435579:	8b 4d 08             	mov    0x8(%ebp),%ecx
43557c:	85 c9                	test   %ecx,%ecx
43557e:	74 16                	je     0x435596
435580:	81 f9 d0 29 44 00    	cmp    $0x4429d0,%ecx
435586:	74 0e                	je     0x435596
435588:	83 c8 ff             	or     $0xffffffff,%eax
43558b:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
435592:	00
435593:	48                   	dec    %eax
435594:	5d                   	pop    %ebp
435595:	c3                   	ret
435596:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
43559b:	5d                   	pop    %ebp
43559c:	c3                   	ret
43559d:	8b ff                	mov    %edi,%edi
43559f:	55                   	push   %ebp
4355a0:	8b ec                	mov    %esp,%ebp
4355a2:	8b 45 08             	mov    0x8(%ebp),%eax
4355a5:	85 c0                	test   %eax,%eax
4355a7:	74 73                	je     0x43561c
4355a9:	f0 ff 48 0c          	lock decl 0xc(%eax)
4355ad:	8b 48 7c             	mov    0x7c(%eax),%ecx
4355b0:	85 c9                	test   %ecx,%ecx
4355b2:	74 03                	je     0x4355b7
4355b4:	f0 ff 09             	lock decl (%ecx)
4355b7:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
4355bd:	85 c9                	test   %ecx,%ecx
4355bf:	74 03                	je     0x4355c4
4355c1:	f0 ff 09             	lock decl (%ecx)
4355c4:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
4355ca:	85 c9                	test   %ecx,%ecx
4355cc:	74 03                	je     0x4355d1
4355ce:	f0 ff 09             	lock decl (%ecx)
4355d1:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
4355d7:	85 c9                	test   %ecx,%ecx
4355d9:	74 03                	je     0x4355de
4355db:	f0 ff 09             	lock decl (%ecx)
4355de:	56                   	push   %esi
4355df:	6a 06                	push   $0x6
4355e1:	8d 48 28             	lea    0x28(%eax),%ecx
4355e4:	5e                   	pop    %esi
4355e5:	81 79 f8 78 42 45 00 	cmpl   $0x454278,-0x8(%ecx)
4355ec:	74 09                	je     0x4355f7
4355ee:	8b 11                	mov    (%ecx),%edx
4355f0:	85 d2                	test   %edx,%edx
4355f2:	74 03                	je     0x4355f7
4355f4:	f0 ff 0a             	lock decl (%edx)
4355f7:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
4355fb:	74 0a                	je     0x435607
4355fd:	8b 51 fc             	mov    -0x4(%ecx),%edx
435600:	85 d2                	test   %edx,%edx
435602:	74 03                	je     0x435607
435604:	f0 ff 0a             	lock decl (%edx)
435607:	83 c1 10             	add    $0x10,%ecx
43560a:	83 ee 01             	sub    $0x1,%esi
43560d:	75 d6                	jne    0x4355e5
43560f:	ff b0 9c 00 00 00    	push   0x9c(%eax)
435615:	e8 5a ff ff ff       	call   0x435574
43561a:	59                   	pop    %ecx
43561b:	5e                   	pop    %esi
43561c:	5d                   	pop    %ebp
43561d:	c3                   	ret
43561e:	6a 0c                	push   $0xc
435620:	68 70 27 45 00       	push   $0x452770
435625:	e8 a6 72 fe ff       	call   0x41c8d0
43562a:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
43562e:	e8 f6 6a ff ff       	call   0x42c129
435633:	8d 78 4c             	lea    0x4c(%eax),%edi
435636:	8b 0d 68 45 45 00    	mov    0x454568,%ecx
43563c:	85 88 50 03 00 00    	test   %ecx,0x350(%eax)
435642:	74 06                	je     0x43564a
435644:	8b 37                	mov    (%edi),%esi
435646:	85 f6                	test   %esi,%esi
435648:	75 3d                	jne    0x435687
43564a:	6a 04                	push   $0x4
43564c:	e8 70 2e ff ff       	call   0x4284c1
435651:	59                   	pop    %ecx
435652:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
435656:	ff 35 20 5d 45 00    	push   0x455d20
43565c:	57                   	push   %edi
43565d:	e8 3d 00 00 00       	call   0x43569f
435662:	59                   	pop    %ecx