4244d2:	3b d8                	cmp    %eax,%ebx
4244d4:	75 04                	jne    0x4244da
4244d6:	33 c0                	xor    %eax,%eax
4244d8:	eb 5a                	jmp    0x424534
4244da:	33 74 fd 38          	xor    0x38(%ebp,%edi,8),%esi
4244de:	33 d8                	xor    %eax,%ebx
4244e0:	8d 04 d5 00 00 00 00 	lea    0x0(,%edx,8),%eax
4244e7:	8d 48 ff             	lea    -0x1(%eax),%ecx
4244ea:	89 45 c8             	mov    %eax,-0x38(%ebp)
4244ed:	8b c3                	mov    %ebx,%eax
4244ef:	c1 e8 10             	shr    $0x10,%eax
4244f2:	33 c3                	xor    %ebx,%eax
4244f4:	23 c1                	and    %ecx,%eax
4244f6:	3b c8                	cmp    %eax,%ecx
4244f8:	75 32                	jne    0x42452c
4244fa:	33 c9                	xor    %ecx,%ecx
4244fc:	b8 01 00 00 00       	mov    $0x1,%eax
424501:	8d 51 20             	lea    0x20(%ecx),%edx
424504:	85 c6                	test   %eax,%esi
424506:	74 01                	je     0x424509
424508:	41                   	inc    %ecx
424509:	d1 c0                	rol    $1,%eax
42450b:	83 ea 01             	sub    $0x1,%edx
42450e:	75 f4                	jne    0x424504
424510:	83 f9 01             	cmp    $0x1,%ecx
424513:	75 17                	jne    0x42452c
424515:	0f b7 c3             	movzwl %bx,%eax
424518:	39 44 bd ec          	cmp    %eax,-0x14(%ebp,%edi,4)
42451c:	74 0e                	je     0x42452c
42451e:	3b 45 c8             	cmp    -0x38(%ebp),%eax
424521:	73 09                	jae    0x42452c
424523:	89 44 bd ec          	mov    %eax,-0x14(%ebp,%edi,4)
424527:	8d 42 f3             	lea    -0xd(%edx),%eax
42452a:	eb 05                	jmp    0x424531
42452c:	b8 e3 ff ff ff       	mov    $0xffffffe3,%eax
424531:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
424534:	89 44 bd dc          	mov    %eax,-0x24(%ebp,%edi,4)
424538:	83 f8 e3             	cmp    $0xffffffe3,%eax
42453b:	0f 84 c5 00 00 00    	je     0x424606
424541:	8b 55 d8             	mov    -0x28(%ebp),%edx
424544:	83 f8 f3             	cmp    $0xfffffff3,%eax
424547:	75 5f                	jne    0x4245a8
424549:	83 f9 ff             	cmp    $0xffffffff,%ecx
42454c:	75 5a                	jne    0x4245a8
42454e:	8b 44 bd ec          	mov    -0x14(%ebp,%edi,4),%eax
424552:	8b cf                	mov    %edi,%ecx
424554:	0f af ca             	imul   %edx,%ecx
424557:	81 7d c4 00 20 00 00 	cmpl   $0x2000,-0x3c(%ebp)
42455e:	8d 0c c8             	lea    (%eax,%ecx,8),%ecx
424561:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
424564:	76 42                	jbe    0x4245a8
424566:	85 ff                	test   %edi,%edi
424568:	75 3e                	jne    0x4245a8
42456a:	8d 81 c0 fe ff ff    	lea    -0x140(%ecx),%eax
424570:	3d bf 00 00 00       	cmp    $0xbf,%eax
424575:	77 31                	ja     0x4245a8
424577:	8d b1 00 ff ff ff    	lea    -0x100(%ecx),%esi
42457d:	8b c6                	mov    %esi,%eax
42457f:	8d 4d 18             	lea    0x18(%ebp),%ecx
424582:	99                   	cltd
424583:	83 e2 07             	and    $0x7,%edx
424586:	03 c2                	add    %edx,%eax
424588:	c1 f8 03             	sar    $0x3,%eax
42458b:	03 c8                	add    %eax,%ecx
42458d:	0f b6 01             	movzbl (%ecx),%eax
424590:	81 e6 07 00 00 80    	and    $0x80000007,%esi
424596:	79 05                	jns    0x42459d
424598:	4e                   	dec    %esi
424599:	83 ce f8             	or     $0xfffffff8,%esi
42459c:	46                   	inc    %esi
42459d:	8b 55 d8             	mov    -0x28(%ebp),%edx
4245a0:	0f bb f0             	btc    %esi,%eax
4245a3:	88 01                	mov    %al,(%ecx)
4245a5:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4245a8:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4245ab:	47                   	inc    %edi
4245ac:	3b fb                	cmp    %ebx,%edi
4245ae:	0f 82 0c ff ff ff    	jb     0x4244c0
4245b4:	8b 45 cc             	mov    -0x34(%ebp),%eax
4245b7:	33 ff                	xor    %edi,%edi
4245b9:	c6 00 01             	movb   $0x1,(%eax)
4245bc:	8b 45 bc             	mov    -0x44(%ebp),%eax
4245bf:	89 08                	mov    %ecx,(%eax)
4245c1:	8b 45 d0             	mov    -0x30(%ebp),%eax
4245c4:	3b fb                	cmp    %ebx,%edi
4245c6:	73 44                	jae    0x42460c
4245c8:	83 7c bd dc f3       	cmpl   $0xfffffff3,-0x24(%ebp,%edi,4)
4245cd:	75 2f                	jne    0x4245fe
4245cf:	8b 74 bd ec          	mov    -0x14(%ebp,%edi,4),%esi
4245d3:	8b c6                	mov    %esi,%eax
4245d5:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4245d8:	99                   	cltd
4245d9:	83 e2 07             	and    $0x7,%edx
4245dc:	03 c2                	add    %edx,%eax
4245de:	c1 f8 03             	sar    $0x3,%eax
4245e1:	03 c8                	add    %eax,%ecx
4245e3:	0f b6 01             	movzbl (%ecx),%eax
4245e6:	81 e6 07 00 00 80    	and    $0x80000007,%esi
4245ec:	79 05                	jns    0x4245f3
4245ee:	4e                   	dec    %esi
4245ef:	83 ce f8             	or     $0xfffffff8,%esi
4245f2:	46                   	inc    %esi
4245f3:	8b 55 d8             	mov    -0x28(%ebp),%edx
4245f6:	0f bb f0             	btc    %esi,%eax
4245f9:	88 01                	mov    %al,(%ecx)
4245fb:	8b 45 d0             	mov    -0x30(%ebp),%eax
4245fe:	47                   	inc    %edi
4245ff:	03 c2                	add    %edx,%eax
424601:	89 45 d0             	mov    %eax,-0x30(%ebp)
424604:	eb be                	jmp    0x4245c4
424606:	8b 45 cc             	mov    -0x34(%ebp),%eax
424609:	c6 00 00             	movb   $0x0,(%eax)
42460c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42460f:	5f                   	pop    %edi
424610:	5e                   	pop    %esi
424611:	33 cd                	xor    %ebp,%ecx
424613:	5b                   	pop    %ebx
424614:	e8 37 89 02 00       	call   0x44cf50
424619:	8b e5                	mov    %ebp,%esp
42461b:	5d                   	pop    %ebp
42461c:	c2 50 00             	ret    $0x50
42461f:	cc                   	int3
424620:	8b ff                	mov    %edi,%edi
424622:	55                   	push   %ebp
424623:	8b ec                	mov    %esp,%ebp
424625:	51                   	push   %ecx
424626:	83 3d ec 12 45 00 00 	cmpl   $0x0,0x4512ec
42462d:	53                   	push   %ebx
42462e:	56                   	push   %esi
42462f:	bb ff ff 00 00       	mov    $0xffff,%ebx
424634:	57                   	push   %edi
424635:	66 89 5d fc          	mov    %bx,-0x4(%ebp)
424639:	74 66                	je     0x4246a1
42463b:	8d 45 fc             	lea    -0x4(%ebp),%eax
42463e:	33 d2                	xor    %edx,%edx
424640:	c1 e8 10             	shr    $0x10,%eax
424643:	8d 4d fc             	lea    -0x4(%ebp),%ecx
424646:	03 c1                	add    %ecx,%eax
424648:	33 ff                	xor    %edi,%edi
42464a:	8b 0d ec 12 45 00    	mov    0x4512ec,%ecx
424650:	f7 f1                	div    %ecx
424652:	0f b7 f2             	movzwl %dx,%esi
424655:	39 3d ec 12 45 00    	cmp    %edi,0x4512ec
42465b:	7e 44                	jle    0x4246a1
42465d:	8d 49 00             	lea    0x0(%ecx),%ecx
424660:	0f b7 c6             	movzwl %si,%eax
424663:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
424666:	a1 e8 12 45 00       	mov    0x4512e8,%eax
42466b:	8d 49 02             	lea    0x2(%ecx),%ecx
42466e:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
424672:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
424675:	74 08                	je     0x42467f
424677:	33 c0                	xor    %eax,%eax
424679:	87 01                	xchg   %eax,(%ecx)
42467b:	85 c0                	test   %eax,%eax
42467d:	75 55                	jne    0x4246d4
42467f:	8b 0d ec 12 45 00    	mov    0x4512ec,%ecx
424685:	46                   	inc    %esi
424686:	0f b7 c6             	movzwl %si,%eax
424689:	47                   	inc    %edi
42468a:	99                   	cltd
42468b:	f7 f9                	idiv   %ecx
42468d:	0f b7 f2             	movzwl %dx,%esi
424690:	3b 3d ec 12 45 00    	cmp    0x4512ec,%edi
424696:	7c c8                	jl     0x424660
424698:	66 8b 75 fc          	mov    -0x4(%ebp),%si
42469c:	66 3b f3             	cmp    %bx,%si
42469f:	75 0c                	jne    0x4246ad
4246a1:	e8 9a 02 00 00       	call   0x424940
4246a6:	66 8b f0             	mov    %ax,%si
4246a9:	66 89 75 fc          	mov    %si,-0x4(%ebp)
4246ad:	0f b7 c6             	movzwl %si,%eax
4246b0:	ba 01 80 00 00       	mov    $0x8001,%edx
4246b5:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
4246b8:	a1 e8 12 45 00       	mov    0x4512e8,%eax
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