40444c:	33 c0                	xor    %eax,%eax
40444e:	eb 62                	jmp    0x4044b2
404450:	8b 55 08             	mov    0x8(%ebp),%edx
404453:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
404457:	eb 12                	jmp    0x40446b
404459:	0f b7 02             	movzwl (%edx),%eax
40445c:	66 3b c1             	cmp    %cx,%ax
40445f:	75 02                	jne    0x404463
404461:	8b f2                	mov    %edx,%esi
404463:	66 85 c0             	test   %ax,%ax
404466:	74 48                	je     0x4044b0
404468:	83 c2 02             	add    $0x2,%edx
40446b:	8d 42 01             	lea    0x1(%edx),%eax
40446e:	a8 0e                	test   $0xe,%al
404470:	75 e7                	jne    0x404459
404472:	33 c0                	xor    %eax,%eax
404474:	66 3b c1             	cmp    %cx,%ax
404477:	75 1e                	jne    0x404497
404479:	b8 01 00 ff ff       	mov    $0xffff0001,%eax
40447e:	66 0f 6e c8          	movd   %eax,%xmm1
404482:	eb 03                	jmp    0x404487
404484:	83 c2 10             	add    $0x10,%edx
404487:	0f 10 02             	movups (%edx),%xmm0
40448a:	66 0f 3a 63 c8 15    	pcmpistri $0x15,%xmm0,%xmm1
404490:	75 f2                	jne    0x404484
404492:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
404495:	eb 1b                	jmp    0x4044b2
404497:	0f b7 c1             	movzwl %cx,%eax
40449a:	66 0f 6e c0          	movd   %eax,%xmm0
40449e:	66 0f 3a 63 02 41    	pcmpistri $0x41,(%edx),%xmm0
4044a4:	73 03                	jae    0x4044a9
4044a6:	8d 34 4a             	lea    (%edx,%ecx,2),%esi
4044a9:	74 05                	je     0x4044b0
4044ab:	83 c2 10             	add    $0x10,%edx
4044ae:	eb ee                	jmp    0x40449e
4044b0:	8b c6                	mov    %esi,%eax
4044b2:	5e                   	pop    %esi
4044b3:	5d                   	pop    %ebp
4044b4:	c3                   	ret
4044b5:	55                   	push   %ebp
4044b6:	8b ec                	mov    %esp,%ebp
4044b8:	57                   	push   %edi
4044b9:	8b 7d 08             	mov    0x8(%ebp),%edi
4044bc:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
4044c0:	74 48                	je     0x40450a
4044c2:	8b 0f                	mov    (%edi),%ecx
4044c4:	85 c9                	test   %ecx,%ecx
4044c6:	74 42                	je     0x40450a
4044c8:	8d 51 01             	lea    0x1(%ecx),%edx
4044cb:	8a 01                	mov    (%ecx),%al
4044cd:	41                   	inc    %ecx
4044ce:	84 c0                	test   %al,%al
4044d0:	75 f9                	jne    0x4044cb
4044d2:	2b ca                	sub    %edx,%ecx
4044d4:	53                   	push   %ebx
4044d5:	56                   	push   %esi
4044d6:	8d 59 01             	lea    0x1(%ecx),%ebx
4044d9:	53                   	push   %ebx
4044da:	e8 d1 4d 00 00       	call   0x4092b0
4044df:	8b f0                	mov    %eax,%esi
4044e1:	59                   	pop    %ecx
4044e2:	85 f6                	test   %esi,%esi
4044e4:	74 19                	je     0x4044ff
4044e6:	ff 37                	push   (%edi)
4044e8:	53                   	push   %ebx
4044e9:	56                   	push   %esi
4044ea:	e8 98 52 00 00       	call   0x409787
4044ef:	8b 45 0c             	mov    0xc(%ebp),%eax
4044f2:	8b ce                	mov    %esi,%ecx
4044f4:	83 c4 0c             	add    $0xc,%esp
4044f7:	33 f6                	xor    %esi,%esi
4044f9:	89 08                	mov    %ecx,(%eax)
4044fb:	c6 40 04 01          	movb   $0x1,0x4(%eax)
4044ff:	56                   	push   %esi
404500:	e8 5a 35 00 00       	call   0x407a5f
404505:	59                   	pop    %ecx
404506:	5e                   	pop    %esi
404507:	5b                   	pop    %ebx
404508:	eb 0b                	jmp    0x404515
40450a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40450d:	8b 07                	mov    (%edi),%eax
40450f:	89 01                	mov    %eax,(%ecx)
404511:	c6 41 04 00          	movb   $0x0,0x4(%ecx)
404515:	5f                   	pop    %edi
404516:	5d                   	pop    %ebp
404517:	c3                   	ret
404518:	55                   	push   %ebp
404519:	8b ec                	mov    %esp,%ebp
40451b:	56                   	push   %esi
40451c:	8b 75 08             	mov    0x8(%ebp),%esi
40451f:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
404523:	74 08                	je     0x40452d
404525:	ff 36                	push   (%esi)
404527:	e8 33 35 00 00       	call   0x407a5f
40452c:	59                   	pop    %ecx
40452d:	83 26 00             	andl   $0x0,(%esi)
404530:	c6 46 04 00          	movb   $0x0,0x4(%esi)
404534:	5e                   	pop    %esi
404535:	5d                   	pop    %ebp
404536:	c3                   	ret
404537:	55                   	push   %ebp
404538:	8b ec                	mov    %esp,%ebp
40453a:	83 ec 20             	sub    $0x20,%esp
40453d:	53                   	push   %ebx
40453e:	8b 5d 08             	mov    0x8(%ebp),%ebx
404541:	56                   	push   %esi
404542:	57                   	push   %edi
404543:	6a 08                	push   $0x8
404545:	59                   	pop    %ecx
404546:	be 84 b3 41 00       	mov    $0x41b384,%esi
40454b:	8d 7d e0             	lea    -0x20(%ebp),%edi
40454e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
404550:	8b 7d 0c             	mov    0xc(%ebp),%edi
404553:	85 ff                	test   %edi,%edi
404555:	74 1c                	je     0x404573
404557:	f6 07 10             	testb  $0x10,(%edi)
40455a:	74 17                	je     0x404573
40455c:	8b 0b                	mov    (%ebx),%ecx
40455e:	83 e9 04             	sub    $0x4,%ecx
404561:	51                   	push   %ecx
404562:	8b 01                	mov    (%ecx),%eax
404564:	8b 70 20             	mov    0x20(%eax),%esi
404567:	8b ce                	mov    %esi,%ecx
404569:	8b 78 18             	mov    0x18(%eax),%edi
40456c:	e8 d4 f5 ff ff       	call   0x403b45
404571:	ff d6                	call   *%esi
404573:	89 5d f8             	mov    %ebx,-0x8(%ebp)
404576:	89 7d fc             	mov    %edi,-0x4(%ebp)
404579:	85 ff                	test   %edi,%edi
40457b:	74 0c                	je     0x404589
40457d:	f6 07 08             	testb  $0x8,(%edi)
404580:	74 07                	je     0x404589
404582:	c7 45 f4 00 40 99 01 	movl   $0x1994000,-0xc(%ebp)
404589:	8d 45 f4             	lea    -0xc(%ebp),%eax
40458c:	50                   	push   %eax
40458d:	ff 75 f0             	push   -0x10(%ebp)
404590:	ff 75 e4             	push   -0x1c(%ebp)
404593:	ff 75 e0             	push   -0x20(%ebp)
404596:	ff 15 44 b0 41 00    	call   *0x41b044
40459c:	5f                   	pop    %edi
40459d:	5e                   	pop    %esi
40459e:	5b                   	pop    %ebx
40459f:	8b e5                	mov    %ebp,%esp
4045a1:	5d                   	pop    %ebp
4045a2:	c2 08 00             	ret    $0x8
4045a5:	e8 4c 06 00 00       	call   0x404bf6
4045aa:	e8 39 04 00 00       	call   0x4049e8
4045af:	e8 69 07 00 00       	call   0x404d1d
4045b4:	84 c0                	test   %al,%al
4045b6:	75 03                	jne    0x4045bb
4045b8:	32 c0                	xor    %al,%al
4045ba:	c3                   	ret
4045bb:	e8 0f 07 00 00       	call   0x404ccf
4045c0:	84 c0                	test   %al,%al
4045c2:	75 07                	jne    0x4045cb
4045c4:	e8 90 07 00 00       	call   0x404d59
4045c9:	eb ed                	jmp    0x4045b8
4045cb:	b0 01                	mov    $0x1,%al
4045cd:	c3                   	ret
4045ce:	55                   	push   %ebp
4045cf:	8b ec                	mov    %esp,%ebp
4045d1:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4045d5:	75 12                	jne    0x4045e9
4045d7:	e8 26 07 00 00       	call   0x404d02
4045dc:	e8 78 07 00 00       	call   0x404d59
4045e1:	6a 00                	push   $0x0
4045e3:	e8 3a 04 00 00       	call   0x404a22
4045e8:	59                   	pop    %ecx
4045e9:	b0 01                	mov    $0x1,%al
4045eb:	5d                   	pop    %ebp
4045ec:	c3                   	ret
4045ed:	cc                   	int3
4045ee:	cc                   	int3
4045ef:	cc                   	int3
4045f0:	55                   	push   %ebp
4045f1:	8b ec                	mov    %esp,%ebp
4045f3:	56                   	push   %esi
4045f4:	8b 75 08             	mov    0x8(%ebp),%esi
4045f7:	57                   	push   %edi
4045f8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4045fb:	8b 06                	mov    (%esi),%eax
4045fd:	83 f8 fe             	cmp    $0xfffffffe,%eax
404600:	74 0d                	je     0x40460f
404602:	8b 4e 04             	mov    0x4(%esi),%ecx
404605:	03 cf                	add    %edi,%ecx
404607:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40460a:	e8 47 e9 ff ff       	call   0x402f56
40460f:	8b 46 08             	mov    0x8(%esi),%eax
404612:	8b 4e 0c             	mov    0xc(%esi),%ecx
404615:	03 cf                	add    %edi,%ecx
404617:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40461a:	5f                   	pop    %edi
40461b:	5e                   	pop    %esi
40461c:	5d                   	pop    %ebp
40461d:	e9 34 e9 ff ff       	jmp    0x402f56
404622:	cc                   	int3
404623:	cc                   	int3
404624:	cc                   	int3
404625:	cc                   	int3
404626:	cc                   	int3
404627:	cc                   	int3
404628:	cc                   	int3
404629:	cc                   	int3
40462a:	cc                   	int3
40462b:	cc                   	int3
40462c:	cc                   	int3
40462d:	cc                   	int3
40462e:	cc                   	int3
40462f:	cc                   	int3
404630:	55                   	push   %ebp
404631:	8b ec                	mov    %esp,%ebp
404633:	83 ec 1c             	sub    $0x1c,%esp
404636:	53                   	push   %ebx
404637:	56                   	push   %esi
404638:	8b 75 0c             	mov    0xc(%ebp),%esi
40463b:	57                   	push   %edi
40463c:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
404640:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
404647:	8b 5e 08             	mov    0x8(%esi),%ebx
40464a:	8d 46 10             	lea    0x10(%esi),%eax
40464d:	33 1d 0c 30 42 00    	xor    0x42300c,%ebx
404653:	50                   	push   %eax
404654:	53                   	push   %ebx
404655:	89 45 ec             	mov    %eax,-0x14(%ebp)
404658:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40465b:	e8 90 ff ff ff       	call   0x4045f0
404660:	8b 7d 10             	mov    0x10(%ebp),%edi
404663:	57                   	push   %edi
404664:	e8 81 f6 ff ff       	call   0x403cea
404669:	8b 45 08             	mov    0x8(%ebp),%eax
40466c:	83 c4 0c             	add    $0xc,%esp
40466f:	f6 40 04 66          	testb  $0x66,0x4(%eax)
404673:	0f 85 ba 00 00 00    	jne    0x404733
404679:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40467c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40467f:	89 7d e8             	mov    %edi,-0x18(%ebp)
404682:	8b 7e 0c             	mov    0xc(%esi),%edi
404685:	89 46 fc             	mov    %eax,-0x4(%esi)
404688:	83 ff fe             	cmp    $0xfffffffe,%edi
40468b:	0f 84 c9 00 00 00    	je     0x40475a
404691:	8d 47 02             	lea    0x2(%edi),%eax
404694:	8d 04 47             	lea    (%edi,%eax,2),%eax
404697:	8b 4c 83 04          	mov    0x4(%ebx,%eax,4),%ecx
40469b:	8d 04 83             	lea    (%ebx,%eax,4),%eax
40469e:	8b 18                	mov    (%eax),%ebx
4046a0:	89 45 f0             	mov    %eax,-0x10(%ebp)
4046a3:	85 c9                	test   %ecx,%ecx
4046a5:	74 65                	je     0x40470c
4046a7:	8d 56 10             	lea    0x10(%esi),%edx
4046aa:	e8 df 07 00 00       	call   0x404e8e
4046af:	b1 01                	mov    $0x1,%cl
4046b1:	88 4d ff             	mov    %cl,-0x1(%ebp)
4046b4:	85 c0                	test   %eax,%eax
4046b6:	78 66                	js     0x40471e
4046b8:	7e 55                	jle    0x40470f
4046ba:	8b 45 08             	mov    0x8(%ebp),%eax
4046bd:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
4046c3:	75 37                	jne    0x4046fc
4046c5:	83 3d d4 0e 42 00 00 	cmpl   $0x0,0x420ed4
4046cc:	74 2e                	je     0x4046fc
4046ce:	68 d4 0e 42 00       	push   $0x420ed4
4046d3:	e8 18 38 01 00       	call   0x417ef0
4046d8:	83 c4 04             	add    $0x4,%esp
4046db:	85 c0                	test   %eax,%eax
4046dd:	74 1a                	je     0x4046f9
4046df:	8b 35 d4 0e 42 00    	mov    0x420ed4,%esi
4046e5:	8b ce                	mov    %esi,%ecx
4046e7:	6a 01                	push   $0x1
4046e9:	ff 75 08             	push   0x8(%ebp)
4046ec:	e8 54 f4 ff ff       	call   0x403b45
4046f1:	ff d6                	call   *%esi
4046f3:	8b 75 0c             	mov    0xc(%ebp),%esi
4046f6:	83 c4 08             	add    $0x8,%esp
4046f9:	8b 45 08             	mov    0x8(%ebp),%eax
4046fc:	8b d0                	mov    %eax,%edx
4046fe:	8b ce                	mov    %esi,%ecx
404700:	e8 b9 07 00 00       	call   0x404ebe
404705:	39 7e 0c             	cmp    %edi,0xc(%esi)
404708:	74 6c                	je     0x404776
40470a:	eb 58                	jmp    0x404764
40470c:	8a 4d ff             	mov    -0x1(%ebp),%cl
40470f:	8b fb                	mov    %ebx,%edi
404711:	83 fb fe             	cmp    $0xfffffffe,%ebx
404714:	74 14                	je     0x40472a
404716:	8b 5d f8             	mov    -0x8(%ebp),%ebx
404719:	e9 73 ff ff ff       	jmp    0x404691
40471e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
404721:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
404728:	eb 24                	jmp    0x40474e
40472a:	84 c9                	test   %cl,%cl
40472c:	74 2c                	je     0x40475a
40472e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
404731:	eb 1b                	jmp    0x40474e
404733:	83 7e 0c fe          	cmpl   $0xfffffffe,0xc(%esi)
404737:	74 21                	je     0x40475a
404739:	68 0c 30 42 00       	push   $0x42300c
40473e:	8d 46 10             	lea    0x10(%esi),%eax
404741:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
404746:	50                   	push   %eax
404747:	8b ce                	mov    %esi,%ecx
404749:	e8 89 07 00 00       	call   0x404ed7
40474e:	ff 75 ec             	push   -0x14(%ebp)
404751:	53                   	push   %ebx
404752:	e8 99 fe ff ff       	call   0x4045f0
404757:	83 c4 08             	add    $0x8,%esp
40475a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40475d:	5f                   	pop    %edi
40475e:	5e                   	pop    %esi
40475f:	5b                   	pop    %ebx
404760:	8b e5                	mov    %ebp,%esp
404762:	5d                   	pop    %ebp
404763:	c3                   	ret
404764:	68 0c 30 42 00       	push   $0x42300c
404769:	8d 46 10             	lea    0x10(%esi),%eax
40476c:	8b d7                	mov    %edi,%edx
40476e:	50                   	push   %eax
40476f:	8b ce                	mov    %esi,%ecx
404771:	e8 61 07 00 00       	call   0x404ed7
404776:	89 5e 0c             	mov    %ebx,0xc(%esi)
404779:	8d 5e 10             	lea    0x10(%esi),%ebx
40477c:	53                   	push   %ebx
40477d:	ff 75 f8             	push   -0x8(%ebp)
404780:	e8 6b fe ff ff       	call   0x4045f0
404785:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404788:	83 c4 08             	add    $0x8,%esp
40478b:	8b d3                	mov    %ebx,%edx
40478d:	8b 49 08             	mov    0x8(%ecx),%ecx
404790:	e8 10 07 00 00       	call   0x404ea5
404795:	cc                   	int3
404796:	55                   	push   %ebp
404797:	8b ec                	mov    %esp,%ebp
404799:	8b 45 08             	mov    0x8(%ebp),%eax
40479c:	33 c9                	xor    %ecx,%ecx
40479e:	53                   	push   %ebx
40479f:	56                   	push   %esi
4047a0:	57                   	push   %edi
4047a1:	8d 1c 85 84 3e 42 00 	lea    0x423e84(,%eax,4),%ebx
4047a8:	33 c0                	xor    %eax,%eax
4047aa:	f0 0f b1 0b          	lock cmpxchg %ecx,(%ebx)
4047ae:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
4047b4:	83 cf ff             	or     $0xffffffff,%edi
4047b7:	8b ca                	mov    %edx,%ecx
4047b9:	8b f2                	mov    %edx,%esi
4047bb:	83 e1 1f             	and    $0x1f,%ecx
4047be:	33 f0                	xor    %eax,%esi
4047c0:	d3 ce                	ror    %cl,%esi
4047c2:	3b f7                	cmp    %edi,%esi
4047c4:	74 69                	je     0x40482f
4047c6:	85 f6                	test   %esi,%esi
4047c8:	74 04                	je     0x4047ce