4246bd:	8d 04 88             	lea    (%eax,%ecx,4),%eax
4246c0:	83 c0 04             	add    $0x4,%eax
4246c3:	f0 0f c1 10          	lock xadd %edx,(%eax)
4246c7:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
4246cb:	5f                   	pop    %edi
4246cc:	5e                   	pop    %esi
4246cd:	5b                   	pop    %ebx
4246ce:	8b e5                	mov    %ebp,%esp
4246d0:	5d                   	pop    %ebp
4246d1:	c2 04 00             	ret    $0x4
4246d4:	66 89 75 fc          	mov    %si,-0x4(%ebp)
4246d8:	eb c2                	jmp    0x42469c
4246da:	cc                   	int3
4246db:	cc                   	int3
4246dc:	cc                   	int3
4246dd:	cc                   	int3
4246de:	cc                   	int3
4246df:	cc                   	int3
4246e0:	8b ff                	mov    %edi,%edi
4246e2:	55                   	push   %ebp
4246e3:	8b ec                	mov    %esp,%ebp
4246e5:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
4246e9:	56                   	push   %esi
4246ea:	8b 35 e8 12 45 00    	mov    0x4512e8,%esi
4246f0:	57                   	push   %edi
4246f1:	8d 3c 40             	lea    (%eax,%eax,2),%edi
4246f4:	83 c6 04             	add    $0x4,%esi
4246f7:	c1 e7 02             	shl    $0x2,%edi
4246fa:	03 f7                	add    %edi,%esi
4246fc:	8b 16                	mov    (%esi),%edx
4246fe:	8b c2                	mov    %edx,%eax
424700:	8d 8a ff 7f ff ff    	lea    -0x8001(%edx),%ecx
424706:	f7 d9                	neg    %ecx
424708:	1b c9                	sbb    %ecx,%ecx
42470a:	81 e1 00 80 00 00    	and    $0x8000,%ecx
424710:	81 c1 ff 7f ff ff    	add    $0xffff7fff,%ecx
424716:	03 ca                	add    %edx,%ecx
424718:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
42471c:	3b c2                	cmp    %edx,%eax
42471e:	74 26                	je     0x424746
424720:	f3 90                	pause
424722:	8b 16                	mov    (%esi),%edx
424724:	8b c2                	mov    %edx,%eax
424726:	8d 8a ff 7f ff ff    	lea    -0x8001(%edx),%ecx
42472c:	f7 d9                	neg    %ecx
42472e:	1b c9                	sbb    %ecx,%ecx
424730:	81 e1 00 80 00 00    	and    $0x8000,%ecx
424736:	81 c1 ff 7f ff ff    	add    $0xffff7fff,%ecx
42473c:	03 ca                	add    %edx,%ecx
42473e:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
424742:	3b c2                	cmp    %edx,%eax
424744:	75 da                	jne    0x424720
424746:	3d 01 80 00 00       	cmp    $0x8001,%eax
42474b:	75 11                	jne    0x42475e
42474d:	a1 e8 12 45 00       	mov    0x4512e8,%eax
424752:	b9 01 00 00 00       	mov    $0x1,%ecx
424757:	83 c0 08             	add    $0x8,%eax
42475a:	03 c7                	add    %edi,%eax
42475c:	87 08                	xchg   %ecx,(%eax)
42475e:	5f                   	pop    %edi
42475f:	5e                   	pop    %esi
424760:	5d                   	pop    %ebp
424761:	c2 04 00             	ret    $0x4
424764:	cc                   	int3
424765:	cc                   	int3
424766:	cc                   	int3
424767:	cc                   	int3
424768:	cc                   	int3
424769:	cc                   	int3
42476a:	cc                   	int3
42476b:	cc                   	int3
42476c:	cc                   	int3
42476d:	cc                   	int3
42476e:	cc                   	int3
42476f:	cc                   	int3
424770:	8b ff                	mov    %edi,%edi
424772:	56                   	push   %esi
424773:	8b f1                	mov    %ecx,%esi
424775:	e8 16 00 00 00       	call   0x424790
42477a:	85 c0                	test   %eax,%eax
42477c:	75 09                	jne    0x424787
42477e:	6a ff                	push   $0xffffffff
424780:	8b ce                	mov    %esi,%ecx
424782:	e8 59 03 00 00       	call   0x424ae0
424787:	5e                   	pop    %esi
424788:	c3                   	ret
424789:	cc                   	int3
42478a:	cc                   	int3
42478b:	cc                   	int3
42478c:	cc                   	int3
42478d:	cc                   	int3
42478e:	cc                   	int3
42478f:	cc                   	int3
424790:	8b ff                	mov    %edi,%edi
424792:	56                   	push   %esi
424793:	57                   	push   %edi
424794:	8b f9                	mov    %ecx,%edi
424796:	8b 37                	mov    (%edi),%esi
424798:	4e                   	dec    %esi
424799:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
42479f:	8d 56 01             	lea    0x1(%esi),%edx
4247a2:	8b c2                	mov    %edx,%eax
4247a4:	f0 0f b1 37          	lock cmpxchg %esi,(%edi)
4247a8:	3b c2                	cmp    %edx,%eax
4247aa:	74 20                	je     0x4247cc
4247ac:	8d 64 24 00          	lea    0x0(%esp),%esp
4247b0:	85 c0                	test   %eax,%eax
4247b2:	7e 20                	jle    0x4247d4
4247b4:	f3 90                	pause
4247b6:	8b 17                	mov    (%edi),%edx
4247b8:	4a                   	dec    %edx
4247b9:	81 e2 ff ff ff 7f    	and    $0x7fffffff,%edx
4247bf:	8d 4a 01             	lea    0x1(%edx),%ecx
4247c2:	8b c1                	mov    %ecx,%eax
4247c4:	f0 0f b1 17          	lock cmpxchg %edx,(%edi)
4247c8:	3b c1                	cmp    %ecx,%eax
4247ca:	75 e4                	jne    0x4247b0
4247cc:	5f                   	pop    %edi
4247cd:	b8 01 00 00 00       	mov    $0x1,%eax
4247d2:	5e                   	pop    %esi
4247d3:	c3                   	ret
4247d4:	5f                   	pop    %edi
4247d5:	33 c0                	xor    %eax,%eax
4247d7:	5e                   	pop    %esi
4247d8:	c3                   	ret
4247d9:	cc                   	int3
4247da:	cc                   	int3
4247db:	cc                   	int3
4247dc:	cc                   	int3
4247dd:	cc                   	int3
4247de:	cc                   	int3
4247df:	cc                   	int3
4247e0:	8b ff                	mov    %edi,%edi
4247e2:	55                   	push   %ebp
4247e3:	8b ec                	mov    %esp,%ebp
4247e5:	33 c0                	xor    %eax,%eax
4247e7:	57                   	push   %edi
4247e8:	8b f9                	mov    %ecx,%edi
4247ea:	85 d2                	test   %edx,%edx
4247ec:	74 08                	je     0x4247f6
4247ee:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4247f4:	76 05                	jbe    0x4247fb
4247f6:	b8 57 00 07 80       	mov    $0x80070057,%eax
4247fb:	85 c0                	test   %eax,%eax
4247fd:	78 3f                	js     0x42483e
4247ff:	53                   	push   %ebx
424800:	56                   	push   %esi
424801:	ff 75 0c             	push   0xc(%ebp)
424804:	8d 72 ff             	lea    -0x1(%edx),%esi
424807:	33 db                	xor    %ebx,%ebx
424809:	ff 75 08             	push   0x8(%ebp)
42480c:	56                   	push   %esi
42480d:	57                   	push   %edi
42480e:	ff 15 44 23 45 00    	call   *0x452344
424814:	83 c4 10             	add    $0x10,%esp
424817:	85 c0                	test   %eax,%eax
424819:	78 12                	js     0x42482d
42481b:	3b c6                	cmp    %esi,%eax
42481d:	77 0e                	ja     0x42482d
42481f:	75 14                	jne    0x424835
424821:	88 1c 3e             	mov    %bl,(%esi,%edi,1)
424824:	8b c3                	mov    %ebx,%eax
424826:	5e                   	pop    %esi
424827:	5b                   	pop    %ebx
424828:	5f                   	pop    %edi
424829:	5d                   	pop    %ebp
42482a:	c2 08 00             	ret    $0x8
42482d:	88 1c 3e             	mov    %bl,(%esi,%edi,1)
424830:	bb 7a 00 07 80       	mov    $0x8007007a,%ebx
424835:	5e                   	pop    %esi
424836:	8b c3                	mov    %ebx,%eax
424838:	5b                   	pop    %ebx
424839:	5f                   	pop    %edi
42483a:	5d                   	pop    %ebp
42483b:	c2 08 00             	ret    $0x8
42483e:	85 d2                	test   %edx,%edx
424840:	74 03                	je     0x424845
424842:	c6 07 00             	movb   $0x0,(%edi)
424845:	5f                   	pop    %edi
424846:	5d                   	pop    %ebp
424847:	c2 08 00             	ret    $0x8
42484a:	cc                   	int3
42484b:	cc                   	int3
42484c:	cc                   	int3
42484d:	cc                   	int3
42484e:	cc                   	int3
42484f:	cc                   	int3
424850:	8b ff                	mov    %edi,%edi
424852:	55                   	push   %ebp
424853:	8b ec                	mov    %esp,%ebp
424855:	51                   	push   %ecx
424856:	83 3d e8 12 45 00 00 	cmpl   $0x0,0x4512e8
42485d:	0f 84 ba 00 00 00    	je     0x42491d
424863:	57                   	push   %edi
424864:	8b 3d ec 12 45 00    	mov    0x4512ec,%edi
42486a:	a1 ec 12 45 00       	mov    0x4512ec,%eax
42486f:	83 e8 01             	sub    $0x1,%eax
424872:	89 7d fc             	mov    %edi,-0x4(%ebp)
424875:	a3 ec 12 45 00       	mov    %eax,0x4512ec
42487a:	78 6b                	js     0x4248e7
42487c:	53                   	push   %ebx
42487d:	bb 00 80 00 00       	mov    $0x8000,%ebx
424882:	56                   	push   %esi
424883:	8d 7b ff             	lea    -0x1(%ebx),%edi
424886:	a1 ec 12 45 00       	mov    0x4512ec,%eax
42488b:	6a 00                	push   $0x0
42488d:	6a 02                	push   $0x2
42488f:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
424892:	a1 e8 12 45 00       	mov    0x4512e8,%eax
424897:	ff 34 88             	push   (%eax,%ecx,4)
42489a:	8d 34 88             	lea    (%eax,%ecx,4),%esi
42489d:	ff 15 0c 21 45 00    	call   *0x45210c
4248a3:	ff 36                	push   (%esi)
4248a5:	ff 15 10 21 45 00    	call   *0x452110
4248ab:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4248af:	66 23 c3             	and    %bx,%ax
4248b2:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4248b8:	66 89 46 04          	mov    %ax,0x4(%esi)
4248bc:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4248c0:	66 23 c7             	and    %di,%ax
4248c3:	66 89 46 04          	mov    %ax,0x4(%esi)
4248c7:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4248ce:	a1 ec 12 45 00       	mov    0x4512ec,%eax
4248d3:	a1 ec 12 45 00       	mov    0x4512ec,%eax
4248d8:	83 e8 01             	sub    $0x1,%eax
4248db:	a3 ec 12 45 00       	mov    %eax,0x4512ec
4248e0:	79 a4                	jns    0x424886
4248e2:	8b 7d fc             	mov    -0x4(%ebp),%edi
4248e5:	5e                   	pop    %esi
4248e6:	5b                   	pop    %ebx
4248e7:	8b 0d e8 12 45 00    	mov    0x4512e8,%ecx
4248ed:	85 c9                	test   %ecx,%ecx
4248ef:	74 19                	je     0x42490a
4248f1:	68 00 40 00 00       	push   $0x4000
4248f6:	8d 04 7f             	lea    (%edi,%edi,2),%eax
4248f9:	c1 e0 02             	shl    $0x2,%eax
4248fc:	50                   	push   %eax
4248fd:	51                   	push   %ecx
4248fe:	ff 15 84 21 45 00    	call   *0x452184
424904:	8b 0d e8 12 45 00    	mov    0x4512e8,%ecx
42490a:	5f                   	pop    %edi
42490b:	85 c9                	test   %ecx,%ecx
42490d:	74 0e                	je     0x42491d
42490f:	68 00 80 00 00       	push   $0x8000
424914:	6a 00                	push   $0x0
424916:	51                   	push   %ecx
424917:	ff 15 84 21 45 00    	call   *0x452184
42491d:	c7 05 e8 12 45 00 00 	movl   $0x0,0x4512e8
424924:	00 00 00
424927:	c7 05 ec 12 45 00 00 	movl   $0x0,0x4512ec
42492e:	00 00 00
424931:	8b e5                	mov    %ebp,%esp
424933:	5d                   	pop    %ebp
424934:	c3                   	ret
424935:	cc                   	int3
424936:	cc                   	int3
424937:	cc                   	int3
424938:	cc                   	int3
424939:	cc                   	int3
42493a:	cc                   	int3
42493b:	cc                   	int3
42493c:	cc                   	int3
42493d:	cc                   	int3
42493e:	cc                   	int3
42493f:	cc                   	int3
424940:	8b ff                	mov    %edi,%edi
424942:	55                   	push   %ebp
424943:	8b ec                	mov    %esp,%ebp
424945:	83 ec 08             	sub    $0x8,%esp
424948:	53                   	push   %ebx
424949:	57                   	push   %edi
42494a:	b8 01 00 00 00       	mov    $0x1,%eax
42494f:	b9 ec 12 45 00       	mov    $0x4512ec,%ecx
424954:	f0 0f c1 01          	lock xadd %eax,(%ecx)
424958:	0f b7 d8             	movzwl %ax,%ebx
42495b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
42495e:	ff 15 54 22 45 00    	call   *0x452254
424964:	8b f8                	mov    %eax,%edi
424966:	56                   	push   %esi
424967:	eb 07                	jmp    0x424970
424969:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
424970:	8b 0d e8 12 45 00    	mov    0x4512e8,%ecx
424976:	85 c9                	test   %ecx,%ecx
424978:	75 04                	jne    0x42497e
42497a:	33 f6                	xor    %esi,%esi
42497c:	eb 21                	jmp    0x42499f
42497e:	0f b7 c3             	movzwl %bx,%eax
424981:	40                   	inc    %eax
424982:	6a 04                	push   $0x4
424984:	68 00 10 00 00       	push   $0x1000
424989:	8d 04 40             	lea    (%eax,%eax,2),%eax
42498c:	c1 e0 02             	shl    $0x2,%eax
42498f:	50                   	push   %eax
424990:	51                   	push   %ecx
424991:	ff 15 8c 21 45 00    	call   *0x45218c
424997:	8b f0                	mov    %eax,%esi
424999:	f7 de                	neg    %esi
42499b:	1b f6                	sbb    %esi,%esi
42499d:	f7 de                	neg    %esi
42499f:	ff 15 54 22 45 00    	call   *0x452254
4249a5:	2b c7                	sub    %edi,%eax
4249a7:	85 f6                	test   %esi,%esi
4249a9:	75 1c                	jne    0x4249c7
4249ab:	3d 20 bf 02 00       	cmp    $0x2bf20,%eax
4249b0:	72 be                	jb     0x424970
4249b2:	68 1e 01 00 00       	push   $0x11e
4249b7:	68 80 07 41 00       	push   $0x410780
4249bc:	68 a4 07 41 00       	push   $0x4107a4
4249c1:	56                   	push   %esi
4249c2:	e8 49 3c 00 00       	call   0x428610
4249c7:	8b 0d e8 12 45 00    	mov    0x4512e8,%ecx
4249cd:	ba 00 80 00 00       	mov    $0x8000,%edx
4249d2:	0f b7 c3             	movzwl %bx,%eax
4249d5:	8d 1c 40             	lea    (%eax,%eax,2),%ebx
4249d8:	c1 e3 02             	shl    $0x2,%ebx
4249db:	03 cb                	add    %ebx,%ecx
4249dd:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
4249e1:	66 23 c2             	and    %dx,%ax
4249e4:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4249ea:	66 89 41 04          	mov    %ax,0x4(%ecx)
4249ee:	ba ff 7f 00 00       	mov    $0x7fff,%edx
4249f3:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
4249f7:	66 23 c2             	and    %dx,%ax
4249fa:	66 89 41 04          	mov    %ax,0x4(%ecx)
4249fe:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
424a05:	ff 15 54 22 45 00    	call   *0x452254
424a0b:	89 45 fc             	mov    %eax,-0x4(%ebp)
424a0e:	8b ff                	mov    %edi,%edi
424a10:	8b 3d e8 12 45 00    	mov    0x4512e8,%edi
424a16:	b9 00 80 00 00       	mov    $0x8000,%ecx
424a1b:	03 fb                	add    %ebx,%edi
424a1d:	0f b7 47 04          	movzwl 0x4(%edi),%eax
424a21:	66 23 c1             	and    %cx,%ax
424a24:	b9 ff 7f 00 00       	mov    $0x7fff,%ecx
424a29:	66 89 47 04          	mov    %ax,0x4(%edi)
424a2d:	0f b7 47 04          	movzwl 0x4(%edi),%eax
424a31:	8b 35 28 1a 45 00    	mov    0x451a28,%esi
424a37:	66 23 c1             	and    %cx,%ax
424a3a:	66 89 47 04          	mov    %ax,0x4(%edi)
424a3e:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
424a45:	85 f6                	test   %esi,%esi
424a47:	74 19                	je     0x424a62
424a49:	6a 00                	push   $0x0
424a4b:	68 ff ff ff 7f       	push   $0x7fffffff
424a50:	6a 00                	push   $0x0
424a52:	6a 00                	push   $0x0
424a54:	8b ce                	mov    %esi,%ecx
424a56:	ff 15 84 23 45 00    	call   *0x452384
424a5c:	ff d6                	call   *%esi
424a5e:	8b f0                	mov    %eax,%esi