425341:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
425345:	0f b7 46 02          	movzwl 0x2(%esi),%eax
425349:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
42534d:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
425351:	0f 8c 09 ff ff ff    	jl     0x425260
425357:	03 3d e8 12 45 00    	add    0x4512e8,%edi
42535d:	b8 01 00 00 00       	mov    $0x1,%eax
425362:	b9 20 11 45 00       	mov    $0x451120,%ecx
425367:	f0 0f c1 01          	lock xadd %eax,(%ecx)
42536b:	8b 35 0c f0 44 00    	mov    0x44f00c,%esi
425371:	8b ce                	mov    %esi,%ecx
425373:	ff 15 84 23 45 00    	call   *0x452384
425379:	ff d6                	call   *%esi
42537b:	6a 00                	push   $0x0
42537d:	6a ff                	push   $0xffffffff
42537f:	ff 37                	push   (%edi)
425381:	ff 15 24 22 45 00    	call   *0x452224
425387:	8b 35 08 f0 44 00    	mov    0x44f008,%esi
42538d:	8b ce                	mov    %esi,%ecx
42538f:	ff 15 84 23 45 00    	call   *0x452384
425395:	ff d6                	call   *%esi
425397:	b9 e4 11 45 00       	mov    $0x4511e4,%ecx
42539c:	b8 01 00 00 00       	mov    $0x1,%eax
4253a1:	f0 0f c1 01          	lock xadd %eax,(%ecx)
4253a5:	53                   	push   %ebx
4253a6:	e8 35 f3 ff ff       	call   0x4246e0
4253ab:	5f                   	pop    %edi
4253ac:	5e                   	pop    %esi
4253ad:	b8 01 00 00 00       	mov    $0x1,%eax
4253b2:	5b                   	pop    %ebx
4253b3:	8b e5                	mov    %ebp,%esp
4253b5:	5d                   	pop    %ebp
4253b6:	c2 04 00             	ret    $0x4
4253b9:	53                   	push   %ebx
4253ba:	e8 21 f3 ff ff       	call   0x4246e0
4253bf:	5f                   	pop    %edi
4253c0:	5e                   	pop    %esi
4253c1:	33 c0                	xor    %eax,%eax
4253c3:	5b                   	pop    %ebx
4253c4:	8b e5                	mov    %ebp,%esp
4253c6:	5d                   	pop    %ebp
4253c7:	c2 04 00             	ret    $0x4
4253ca:	b8 ff ff 00 00       	mov    $0xffff,%eax
4253cf:	66 3b d8             	cmp    %ax,%bx
4253d2:	74 06                	je     0x4253da
4253d4:	53                   	push   %ebx
4253d5:	e8 06 f3 ff ff       	call   0x4246e0
4253da:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
4253de:	0f b7 c0             	movzwl %ax,%eax
4253e1:	6a ff                	push   $0xffffffff
4253e3:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
4253e6:	a1 e8 12 45 00       	mov    0x4512e8,%eax
4253eb:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
4253ee:	e8 ed 02 00 00       	call   0x4256e0
4253f3:	85 c0                	test   %eax,%eax
4253f5:	0f 85 d2 00 00 00    	jne    0x4254cd
4253fb:	8b 06                	mov    (%esi),%eax
4253fd:	89 45 f8             	mov    %eax,-0x8(%ebp)
425400:	0f b7 06             	movzwl (%esi),%eax
425403:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
425407:	0f b7 46 02          	movzwl 0x2(%esi),%eax
42540b:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
42540f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
425413:	7d 61                	jge    0x425476
425415:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
425419:	0f b7 c0             	movzwl %ax,%eax
42541c:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
425420:	75 54                	jne    0x425476
425422:	66 83 7d fa ff       	cmpw   $0xffff,-0x6(%ebp)
425427:	75 0c                	jne    0x425435
425429:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
425430:	8b 4d f0             	mov    -0x10(%ebp),%ecx
425433:	eb 15                	jmp    0x42544a
425435:	0f b7 4d f8          	movzwl -0x8(%ebp),%ecx
425439:	0f b7 45 fa          	movzwl -0x6(%ebp),%eax
42543d:	66 40                	inc    %ax
42543f:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
425443:	66 89 4d f4          	mov    %cx,-0xc(%ebp)
425447:	8b 4d f4             	mov    -0xc(%ebp),%ecx
42544a:	8b 45 f8             	mov    -0x8(%ebp),%eax
42544d:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
425451:	3b 45 f8             	cmp    -0x8(%ebp),%eax
425454:	0f 84 8b 00 00 00    	je     0x4254e5
42545a:	f3 90                	pause
42545c:	8b 06                	mov    (%esi),%eax
42545e:	89 45 f8             	mov    %eax,-0x8(%ebp)
425461:	0f b7 06             	movzwl (%esi),%eax
425464:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
425468:	0f b7 46 02          	movzwl 0x2(%esi),%eax
42546c:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
425470:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
425474:	7c 9f                	jl     0x425415
425476:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
42547a:	bb 01 00 00 00       	mov    $0x1,%ebx
42547f:	0f b7 c0             	movzwl %ax,%eax
425482:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
425485:	a1 e8 12 45 00       	mov    0x4512e8,%eax
42548a:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
42548d:	8b c3                	mov    %ebx,%eax
42548f:	b9 20 11 45 00       	mov    $0x451120,%ecx
425494:	f0 0f c1 01          	lock xadd %eax,(%ecx)
425498:	8b 35 0c f0 44 00    	mov    0x44f00c,%esi
42549e:	8b ce                	mov    %esi,%ecx
4254a0:	ff 15 84 23 45 00    	call   *0x452384
4254a6:	ff d6                	call   *%esi
4254a8:	6a 00                	push   $0x0
4254aa:	6a ff                	push   $0xffffffff
4254ac:	ff 37                	push   (%edi)
4254ae:	ff 15 24 22 45 00    	call   *0x452224
4254b4:	8b 35 08 f0 44 00    	mov    0x44f008,%esi
4254ba:	8b ce                	mov    %esi,%ecx
4254bc:	ff 15 84 23 45 00    	call   *0x452384
4254c2:	ff d6                	call   *%esi
4254c4:	b8 e4 11 45 00       	mov    $0x4511e4,%eax
4254c9:	f0 0f c1 18          	lock xadd %ebx,(%eax)
4254cd:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
4254d1:	50                   	push   %eax
4254d2:	e8 09 f2 ff ff       	call   0x4246e0
4254d7:	5f                   	pop    %edi
4254d8:	5e                   	pop    %esi
4254d9:	b8 01 00 00 00       	mov    $0x1,%eax
4254de:	5b                   	pop    %ebx
4254df:	8b e5                	mov    %ebp,%esp
4254e1:	5d                   	pop    %ebp
4254e2:	c2 04 00             	ret    $0x4
4254e5:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
4254e9:	50                   	push   %eax
4254ea:	e8 f1 f1 ff ff       	call   0x4246e0
4254ef:	5f                   	pop    %edi
4254f0:	5e                   	pop    %esi
4254f1:	33 c0                	xor    %eax,%eax
4254f3:	5b                   	pop    %ebx
4254f4:	8b e5                	mov    %ebp,%esp
4254f6:	5d                   	pop    %ebp
4254f7:	c2 04 00             	ret    $0x4
4254fa:	cc                   	int3
4254fb:	cc                   	int3
4254fc:	cc                   	int3
4254fd:	cc                   	int3
4254fe:	cc                   	int3
4254ff:	cc                   	int3
425500:	8b ff                	mov    %edi,%edi
425502:	55                   	push   %ebp
425503:	8b ec                	mov    %esp,%ebp
425505:	8b 45 08             	mov    0x8(%ebp),%eax
425508:	56                   	push   %esi
425509:	8b f1                	mov    %ecx,%esi
42550b:	57                   	push   %edi
42550c:	8d 7e 04             	lea    0x4(%esi),%edi
42550f:	f0 0f c1 07          	lock xadd %eax,(%edi)
425513:	03 45 08             	add    0x8(%ebp),%eax
425516:	75 71                	jne    0x425589
425518:	8b 16                	mov    (%esi),%edx
42551a:	8b c2                	mov    %edx,%eax
42551c:	8d 8a ff 7f 00 00    	lea    0x7fff(%edx),%ecx
425522:	c1 e1 10             	shl    $0x10,%ecx
425525:	c1 f9 1f             	sar    $0x1f,%ecx
425528:	81 e1 00 00 ff ff    	and    $0xffff0000,%ecx
42552e:	81 f1 ff ff 00 80    	xor    $0x8000ffff,%ecx
425534:	23 ca                	and    %edx,%ecx
425536:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
42553a:	3b c2                	cmp    %edx,%eax
42553c:	74 2a                	je     0x425568
42553e:	8b ff                	mov    %edi,%edi
425540:	f3 90                	pause
425542:	8b 16                	mov    (%esi),%edx
425544:	8b c2                	mov    %edx,%eax
425546:	8d 8a ff 7f 00 00    	lea    0x7fff(%edx),%ecx
42554c:	c1 e1 10             	shl    $0x10,%ecx
42554f:	c1 f9 1f             	sar    $0x1f,%ecx
425552:	81 e1 00 00 ff ff    	and    $0xffff0000,%ecx
425558:	81 f1 ff ff 00 80    	xor    $0x8000ffff,%ecx
42555e:	23 ca                	and    %edx,%ecx
425560:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
425564:	3b c2                	cmp    %edx,%eax
425566:	75 d8                	jne    0x425540
425568:	8b c8                	mov    %eax,%ecx
42556a:	c1 e9 10             	shr    $0x10,%ecx
42556d:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
425573:	a9 ff 7f 00 00       	test   $0x7fff,%eax
425578:	74 06                	je     0x425580
42557a:	8b c1                	mov    %ecx,%eax
42557c:	f0 0f c1 07          	lock xadd %eax,(%edi)
425580:	51                   	push   %ecx
425581:	8d 4e 0c             	lea    0xc(%esi),%ecx
425584:	e8 b7 f8 fe ff       	call   0x414e40
425589:	5f                   	pop    %edi
42558a:	5e                   	pop    %esi
42558b:	5d                   	pop    %ebp
42558c:	c2 04 00             	ret    $0x4
42558f:	cc                   	int3
425590:	8b ff                	mov    %edi,%edi
425592:	55                   	push   %ebp
425593:	8b ec                	mov    %esp,%ebp
425595:	8b 45 08             	mov    0x8(%ebp),%eax
425598:	56                   	push   %esi
425599:	8b f1                	mov    %ecx,%esi
42559b:	57                   	push   %edi
42559c:	8d 7e 04             	lea    0x4(%esi),%edi
42559f:	f0 0f c1 07          	lock xadd %eax,(%edi)
4255a3:	03 45 08             	add    0x8(%ebp),%eax
4255a6:	75 6a                	jne    0x425612
4255a8:	8b 16                	mov    (%esi),%edx
4255aa:	8b ca                	mov    %edx,%ecx
4255ac:	81 e1 00 00 ff 7f    	and    $0x7fff0000,%ecx
4255b2:	8b c2                	mov    %edx,%eax
4255b4:	f7 d9                	neg    %ecx
4255b6:	1b c9                	sbb    %ecx,%ecx
4255b8:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
4255be:	81 c1 00 80 ff ff    	add    $0xffff8000,%ecx
4255c4:	03 ca                	add    %edx,%ecx
4255c6:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
4255ca:	3b c2                	cmp    %edx,%eax
4255cc:	74 2a                	je     0x4255f8
4255ce:	8b ff                	mov    %edi,%edi
4255d0:	f3 90                	pause
4255d2:	8b 16                	mov    (%esi),%edx
4255d4:	8b ca                	mov    %edx,%ecx
4255d6:	81 e1 00 00 ff 7f    	and    $0x7fff0000,%ecx
4255dc:	8b c2                	mov    %edx,%eax
4255de:	f7 d9                	neg    %ecx
4255e0:	1b c9                	sbb    %ecx,%ecx
4255e2:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
4255e8:	81 c1 00 80 ff ff    	add    $0xffff8000,%ecx
4255ee:	03 ca                	add    %edx,%ecx
4255f0:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
4255f4:	3b c2                	cmp    %edx,%eax
4255f6:	75 d8                	jne    0x4255d0
4255f8:	a9 00 00 ff 7f       	test   $0x7fff0000,%eax
4255fd:	74 09                	je     0x425608
4255ff:	b8 01 00 00 00       	mov    $0x1,%eax
425604:	f0 0f c1 07          	lock xadd %eax,(%edi)
425608:	6a 01                	push   $0x1
42560a:	8d 4e 08             	lea    0x8(%esi),%ecx
42560d:	e8 2e f8 fe ff       	call   0x414e40
425612:	5f                   	pop    %edi
425613:	5e                   	pop    %esi
425614:	5d                   	pop    %ebp
425615:	c2 04 00             	ret    $0x4
425618:	cc                   	int3
425619:	cc                   	int3
42561a:	cc                   	int3
42561b:	cc                   	int3
42561c:	cc                   	int3
42561d:	cc                   	int3
42561e:	cc                   	int3
42561f:	cc                   	int3
425620:	c2 00 00             	ret    $0x0
425623:	cc                   	int3
425624:	cc                   	int3
425625:	cc                   	int3
425626:	cc                   	int3
425627:	cc                   	int3
425628:	cc                   	int3
425629:	cc                   	int3
42562a:	cc                   	int3
42562b:	cc                   	int3
42562c:	cc                   	int3
42562d:	cc                   	int3
42562e:	cc                   	int3
42562f:	cc                   	int3
425630:	8b ff                	mov    %edi,%edi
425632:	55                   	push   %ebp
425633:	8b ec                	mov    %esp,%ebp
425635:	51                   	push   %ecx
425636:	56                   	push   %esi
425637:	8b 35 2c 11 45 00    	mov    0x45112c,%esi
42563d:	68 30 11 45 00       	push   $0x451130
425642:	ff 15 1c 22 45 00    	call   *0x45221c
425648:	8b 4e 08             	mov    0x8(%esi),%ecx
42564b:	39 35 d4 11 45 00    	cmp    %esi,0x4511d4
425651:	75 06                	jne    0x425659
425653:	89 0d d4 11 45 00    	mov    %ecx,0x4511d4
425659:	85 c9                	test   %ecx,%ecx
42565b:	74 09                	je     0x425666
42565d:	8b 46 0c             	mov    0xc(%esi),%eax
425660:	89 41 0c             	mov    %eax,0xc(%ecx)
425663:	8b 4e 08             	mov    0x8(%esi),%ecx
425666:	8b 46 0c             	mov    0xc(%esi),%eax
425669:	ff 0d d0 11 45 00    	decl   0x4511d0
42566f:	89 08                	mov    %ecx,(%eax)
425671:	83 3d 2c 11 45 00 00 	cmpl   $0x0,0x45112c
425678:	75 2c                	jne    0x4256a6
42567a:	ff 35 48 11 45 00    	push   0x451148
425680:	ff 15 c0 21 45 00    	call   *0x4521c0
425686:	ff 35 28 11 45 00    	push   0x451128
42568c:	ff 15 c0 21 45 00    	call   *0x4521c0
425692:	c7 05 48 11 45 00 ff 	movl   $0xffffffff,0x451148
425699:	ff ff ff
42569c:	c7 05 28 11 45 00 ff 	movl   $0xffffffff,0x451128
4256a3:	ff ff ff
4256a6:	68 30 11 45 00       	push   $0x451130
4256ab:	ff 15 08 22 45 00    	call   *0x452208
4256b1:	8b 46 04             	mov    0x4(%esi),%eax
4256b4:	85 c0                	test   %eax,%eax
4256b6:	74 14                	je     0x4256cc
4256b8:	6a 00                	push   $0x0
4256ba:	6a 02                	push   $0x2
4256bc:	50                   	push   %eax
4256bd:	ff 15 0c 21 45 00    	call   *0x45210c
4256c3:	ff 76 04             	push   0x4(%esi)
4256c6:	ff 15 10 21 45 00    	call   *0x452110
4256cc:	56                   	push   %esi
4256cd:	ff 15 34 21 45 00    	call   *0x452134
4256d3:	5e                   	pop    %esi
4256d4:	8b e5                	mov    %ebp,%esp
4256d6:	5d                   	pop    %ebp
4256d7:	c3                   	ret
4256d8:	cc                   	int3
4256d9:	cc                   	int3
4256da:	cc                   	int3
4256db:	cc                   	int3
4256dc:	cc                   	int3
4256dd:	cc                   	int3
4256de:	cc                   	int3
4256df:	cc                   	int3
4256e0:	8b ff                	mov    %edi,%edi
4256e2:	55                   	push   %ebp
4256e3:	8b ec                	mov    %esp,%ebp
4256e5:	51                   	push   %ecx
4256e6:	53                   	push   %ebx
4256e7:	56                   	push   %esi
4256e8:	57                   	push   %edi
4256e9:	8b 7d 08             	mov    0x8(%ebp),%edi
4256ec:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4256ef:	85 ff                	test   %edi,%edi
4256f1:	74 0e                	je     0x425701
4256f3:	b8 01 00 00 00       	mov    $0x1,%eax
4256f8:	b9 20 11 45 00       	mov    $0x451120,%ecx
4256fd:	f0 0f c1 01          	lock xadd %eax,(%ecx)
425701:	83 ff ff             	cmp    $0xffffffff,%edi
425704:	74 10                	je     0x425716
425706:	83 ff fe             	cmp    $0xfffffffe,%edi
425709:	74 0b                	je     0x425716
42570b:	8b c7                	mov    %edi,%eax
42570d:	99                   	cltd
42570e:	8b d8                	mov    %eax,%ebx
425710:	33 da                	xor    %edx,%ebx
425712:	2b da                	sub    %edx,%ebx
425714:	eb 03                	jmp    0x425719
425716:	83 cb ff             	or     $0xffffffff,%ebx
425719:	85 ff                	test   %edi,%edi
42571b:	74 10                	je     0x42572d
42571d:	8b 35 0c f0 44 00    	mov    0x44f00c,%esi
425723:	8b ce                	mov    %esi,%ecx
425725:	ff 15 84 23 45 00    	call   *0x452384
42572b:	ff d6                	call   *%esi
42572d:	8b 45 fc             	mov    -0x4(%ebp),%eax
425730:	6a 00                	push   $0x0
425732:	53                   	push   %ebx