41b604:	8b ff                	mov    %edi,%edi
41b606:	55                   	push   %ebp
41b607:	8b ec                	mov    %esp,%ebp
41b609:	6a 00                	push   $0x0
41b60b:	ff 75 18             	push   0x18(%ebp)
41b60e:	ff 75 14             	push   0x14(%ebp)
41b611:	ff 75 10             	push   0x10(%ebp)
41b614:	ff 75 0c             	push   0xc(%ebp)
41b617:	ff 75 08             	push   0x8(%ebp)
41b61a:	e8 1e ff ff ff       	call   0x41b53d
41b61f:	83 c4 18             	add    $0x18,%esp
41b622:	5d                   	pop    %ebp
41b623:	c3                   	ret
41b624:	cc                   	int3
41b625:	cc                   	int3
41b626:	cc                   	int3
41b627:	cc                   	int3
41b628:	cc                   	int3
41b629:	cc                   	int3
41b62a:	cc                   	int3
41b62b:	cc                   	int3
41b62c:	cc                   	int3
41b62d:	cc                   	int3
41b62e:	cc                   	int3
41b62f:	cc                   	int3
41b630:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41b634:	f7 c1 03 00 00 00    	test   $0x3,%ecx
41b63a:	74 24                	je     0x41b660
41b63c:	8a 01                	mov    (%ecx),%al
41b63e:	83 c1 01             	add    $0x1,%ecx
41b641:	84 c0                	test   %al,%al
41b643:	74 4e                	je     0x41b693
41b645:	f7 c1 03 00 00 00    	test   $0x3,%ecx
41b64b:	75 ef                	jne    0x41b63c
41b64d:	05 00 00 00 00       	add    $0x0,%eax
41b652:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41b659:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41b660:	8b 01                	mov    (%ecx),%eax
41b662:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
41b667:	03 d0                	add    %eax,%edx
41b669:	83 f0 ff             	xor    $0xffffffff,%eax
41b66c:	33 c2                	xor    %edx,%eax
41b66e:	83 c1 04             	add    $0x4,%ecx
41b671:	a9 00 01 01 81       	test   $0x81010100,%eax
41b676:	74 e8                	je     0x41b660
41b678:	8b 41 fc             	mov    -0x4(%ecx),%eax
41b67b:	84 c0                	test   %al,%al
41b67d:	74 32                	je     0x41b6b1
41b67f:	84 e4                	test   %ah,%ah
41b681:	74 24                	je     0x41b6a7
41b683:	a9 00 00 ff 00       	test   $0xff0000,%eax
41b688:	74 13                	je     0x41b69d
41b68a:	a9 00 00 00 ff       	test   $0xff000000,%eax
41b68f:	74 02                	je     0x41b693
41b691:	eb cd                	jmp    0x41b660
41b693:	8d 41 ff             	lea    -0x1(%ecx),%eax
41b696:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41b69a:	2b c1                	sub    %ecx,%eax
41b69c:	c3                   	ret
41b69d:	8d 41 fe             	lea    -0x2(%ecx),%eax
41b6a0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41b6a4:	2b c1                	sub    %ecx,%eax
41b6a6:	c3                   	ret
41b6a7:	8d 41 fd             	lea    -0x3(%ecx),%eax
41b6aa:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41b6ae:	2b c1                	sub    %ecx,%eax
41b6b0:	c3                   	ret
41b6b1:	8d 41 fc             	lea    -0x4(%ecx),%eax
41b6b4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41b6b8:	2b c1                	sub    %ecx,%eax
41b6ba:	c3                   	ret
41b6bb:	8b ff                	mov    %edi,%edi
41b6bd:	55                   	push   %ebp
41b6be:	8b ec                	mov    %esp,%ebp
41b6c0:	83 ec 20             	sub    $0x20,%esp
41b6c3:	a1 18 60 42 00       	mov    0x426018,%eax
41b6c8:	33 c5                	xor    %ebp,%eax
41b6ca:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b6cd:	8b 45 0c             	mov    0xc(%ebp),%eax
41b6d0:	8b 4d 08             	mov    0x8(%ebp),%ecx
41b6d3:	89 4d e0             	mov    %ecx,-0x20(%ebp)
41b6d6:	89 45 e8             	mov    %eax,-0x18(%ebp)
41b6d9:	53                   	push   %ebx
41b6da:	8b 5d 14             	mov    0x14(%ebp),%ebx
41b6dd:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41b6e0:	56                   	push   %esi
41b6e1:	57                   	push   %edi
41b6e2:	8b 38                	mov    (%eax),%edi
41b6e4:	85 c9                	test   %ecx,%ecx
41b6e6:	0f 84 8f 00 00 00    	je     0x41b77b
41b6ec:	8b 45 10             	mov    0x10(%ebp),%eax
41b6ef:	8b f1                	mov    %ecx,%esi
41b6f1:	89 7d f0             	mov    %edi,-0x10(%ebp)
41b6f4:	83 f8 04             	cmp    $0x4,%eax
41b6f7:	73 08                	jae    0x41b701
41b6f9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41b6fc:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41b6ff:	eb 05                	jmp    0x41b706
41b701:	8b ce                	mov    %esi,%ecx
41b703:	89 75 ec             	mov    %esi,-0x14(%ebp)
41b706:	0f b7 07             	movzwl (%edi),%eax
41b709:	53                   	push   %ebx
41b70a:	50                   	push   %eax
41b70b:	51                   	push   %ecx
41b70c:	e8 a8 00 00 00       	call   0x41b7b9
41b711:	8b d8                	mov    %eax,%ebx
41b713:	83 c4 0c             	add    $0xc,%esp
41b716:	83 fb ff             	cmp    $0xffffffff,%ebx
41b719:	74 53                	je     0x41b76e
41b71b:	8b 45 ec             	mov    -0x14(%ebp),%eax
41b71e:	3b c6                	cmp    %esi,%eax
41b720:	74 10                	je     0x41b732
41b722:	39 5d 10             	cmp    %ebx,0x10(%ebp)
41b725:	72 31                	jb     0x41b758
41b727:	53                   	push   %ebx
41b728:	50                   	push   %eax
41b729:	56                   	push   %esi
41b72a:	e8 a1 e4 fe ff       	call   0x409bd0
41b72f:	83 c4 0c             	add    $0xc,%esp
41b732:	85 db                	test   %ebx,%ebx
41b734:	74 09                	je     0x41b73f
41b736:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
41b739:	80 79 ff 00          	cmpb   $0x0,-0x1(%ecx)
41b73d:	74 1e                	je     0x41b75d
41b73f:	83 c7 02             	add    $0x2,%edi
41b742:	85 db                	test   %ebx,%ebx
41b744:	74 03                	je     0x41b749
41b746:	89 7d f0             	mov    %edi,-0x10(%ebp)
41b749:	8b 45 10             	mov    0x10(%ebp),%eax
41b74c:	2b c3                	sub    %ebx,%eax
41b74e:	03 f3                	add    %ebx,%esi
41b750:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
41b753:	89 45 10             	mov    %eax,0x10(%ebp)
41b756:	eb 9c                	jmp    0x41b6f4
41b758:	8b 45 f0             	mov    -0x10(%ebp),%eax
41b75b:	eb 05                	jmp    0x41b762
41b75d:	33 c0                	xor    %eax,%eax
41b75f:	8d 71 ff             	lea    -0x1(%ecx),%esi
41b762:	8b 55 e8             	mov    -0x18(%ebp),%edx
41b765:	2b 75 e0             	sub    -0x20(%ebp),%esi
41b768:	89 02                	mov    %eax,(%edx)
41b76a:	8b c6                	mov    %esi,%eax
41b76c:	eb 3c                	jmp    0x41b7aa
41b76e:	8b 55 e8             	mov    -0x18(%ebp),%edx
41b771:	83 c8 ff             	or     $0xffffffff,%eax
41b774:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41b777:	89 0a                	mov    %ecx,(%edx)
41b779:	eb 2f                	jmp    0x41b7aa
41b77b:	33 f6                	xor    %esi,%esi
41b77d:	eb 10                	jmp    0x41b78f
41b77f:	85 c0                	test   %eax,%eax
41b781:	74 07                	je     0x41b78a
41b783:	80 7c 05 f3 00       	cmpb   $0x0,-0xd(%ebp,%eax,1)
41b788:	74 1d                	je     0x41b7a7
41b78a:	03 f0                	add    %eax,%esi
41b78c:	83 c7 02             	add    $0x2,%edi
41b78f:	0f b7 07             	movzwl (%edi),%eax
41b792:	53                   	push   %ebx
41b793:	50                   	push   %eax
41b794:	8d 45 f4             	lea    -0xc(%ebp),%eax
41b797:	50                   	push   %eax
41b798:	e8 1c 00 00 00       	call   0x41b7b9
41b79d:	83 c4 0c             	add    $0xc,%esp
41b7a0:	83 f8 ff             	cmp    $0xffffffff,%eax
41b7a3:	75 da                	jne    0x41b77f
41b7a5:	eb 03                	jmp    0x41b7aa
41b7a7:	48                   	dec    %eax
41b7a8:	03 c6                	add    %esi,%eax
41b7aa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41b7ad:	5f                   	pop    %edi
41b7ae:	5e                   	pop    %esi
41b7af:	33 cd                	xor    %ebp,%ecx
41b7b1:	5b                   	pop    %ebx
41b7b2:	e8 3e d4 fe ff       	call   0x408bf5
41b7b7:	c9                   	leave
41b7b8:	c3                   	ret
41b7b9:	8b ff                	mov    %edi,%edi
41b7bb:	55                   	push   %ebp
41b7bc:	8b ec                	mov    %esp,%ebp
41b7be:	51                   	push   %ecx
41b7bf:	51                   	push   %ecx
41b7c0:	8b 55 0c             	mov    0xc(%ebp),%edx
41b7c3:	56                   	push   %esi
41b7c4:	8b 75 10             	mov    0x10(%ebp),%esi
41b7c7:	0f b7 ca             	movzwl %dx,%ecx
41b7ca:	57                   	push   %edi
41b7cb:	85 f6                	test   %esi,%esi
41b7cd:	75 05                	jne    0x41b7d4
41b7cf:	be ac 73 42 00       	mov    $0x4273ac,%esi
41b7d4:	83 3e 00             	cmpl   $0x0,(%esi)
41b7d7:	8d 81 00 24 00 00    	lea    0x2400(%ecx),%eax
41b7dd:	0f b7 c0             	movzwl %ax,%eax
41b7e0:	75 3c                	jne    0x41b81e
41b7e2:	bf ff 03 00 00       	mov    $0x3ff,%edi
41b7e7:	66 3b c7             	cmp    %di,%ax
41b7ea:	77 09                	ja     0x41b7f5
41b7ec:	56                   	push   %esi
41b7ed:	e8 fb 94 ff ff       	call   0x414ced
41b7f2:	59                   	pop    %ecx
41b7f3:	eb 5a                	jmp    0x41b84f
41b7f5:	8d 82 00 28 00 00    	lea    0x2800(%edx),%eax
41b7fb:	66 3b c7             	cmp    %di,%ax
41b7fe:	77 12                	ja     0x41b812
41b800:	81 e1 ff 27 ff ff    	and    $0xffff27ff,%ecx
41b806:	83 c1 40             	add    $0x40,%ecx
41b809:	c1 e1 0a             	shl    $0xa,%ecx
41b80c:	33 c0                	xor    %eax,%eax
41b80e:	89 0e                	mov    %ecx,(%esi)
41b810:	eb 3d                	jmp    0x41b84f
41b812:	56                   	push   %esi
41b813:	51                   	push   %ecx
41b814:	ff 75 08             	push   0x8(%ebp)
41b817:	e8 f0 94 ff ff       	call   0x414d0c
41b81c:	eb 2e                	jmp    0x41b84c
41b81e:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
41b823:	66 3b c1             	cmp    %cx,%ax
41b826:	77 c4                	ja     0x41b7ec
41b828:	8d 45 f8             	lea    -0x8(%ebp),%eax
41b82b:	33 ff                	xor    %edi,%edi
41b82d:	50                   	push   %eax
41b82e:	0f b7 c2             	movzwl %dx,%eax
41b831:	25 ff 23 ff ff       	and    $0xffff23ff,%eax
41b836:	89 7d f8             	mov    %edi,-0x8(%ebp)
41b839:	03 06                	add    (%esi),%eax
41b83b:	50                   	push   %eax
41b83c:	ff 75 08             	push   0x8(%ebp)
41b83f:	89 7d fc             	mov    %edi,-0x4(%ebp)
41b842:	e8 c5 94 ff ff       	call   0x414d0c
41b847:	89 3e                	mov    %edi,(%esi)
41b849:	89 7e 04             	mov    %edi,0x4(%esi)
41b84c:	83 c4 0c             	add    $0xc,%esp
41b84f:	5f                   	pop    %edi
41b850:	5e                   	pop    %esi
41b851:	c9                   	leave
41b852:	c3                   	ret
41b853:	b8 00 80 42 00       	mov    $0x428000,%eax
41b858:	e9 00 00 00 00       	jmp    0x41b85d
41b85d:	51                   	push   %ecx
41b85e:	52                   	push   %edx
41b85f:	50                   	push   %eax
41b860:	68 94 42 42 00       	push   $0x424294
41b865:	e8 07 03 00 00       	call   0x41bb71
41b86a:	5a                   	pop    %edx
41b86b:	59                   	pop    %ecx
41b86c:	ff e0                	jmp    *%eax
41b86e:	b8 08 80 42 00       	mov    $0x428008,%eax
41b873:	e9 e5 ff ff ff       	jmp    0x41b85d
41b878:	b8 0c 80 42 00       	mov    $0x42800c,%eax
41b87d:	e9 db ff ff ff       	jmp    0x41b85d
41b882:	b8 10 80 42 00       	mov    $0x428010,%eax
41b887:	e9 d1 ff ff ff       	jmp    0x41b85d
41b88c:	b8 14 80 42 00       	mov    $0x428014,%eax
41b891:	e9 c7 ff ff ff       	jmp    0x41b85d
41b896:	b8 04 80 42 00       	mov    $0x428004,%eax
41b89b:	e9 bd ff ff ff       	jmp    0x41b85d
41b8a0:	b8 24 80 42 00       	mov    $0x428024,%eax
41b8a5:	e9 00 00 00 00       	jmp    0x41b8aa
41b8aa:	51                   	push   %ecx
41b8ab:	52                   	push   %edx
41b8ac:	50                   	push   %eax
41b8ad:	68 b4 42 42 00       	push   $0x4242b4
41b8b2:	e8 ba 02 00 00       	call   0x41bb71
41b8b7:	5a                   	pop    %edx
41b8b8:	59                   	pop    %ecx
41b8b9:	ff e0                	jmp    *%eax
41b8bb:	b8 20 80 42 00       	mov    $0x428020,%eax
41b8c0:	e9 e5 ff ff ff       	jmp    0x41b8aa
41b8c5:	b8 1c 80 42 00       	mov    $0x42801c,%eax
41b8ca:	e9 db ff ff ff       	jmp    0x41b8aa
41b8cf:	f7 05 18 14 42 00 00 	testl  $0x1000,0x421418
41b8d6:	10 00 00
41b8d9:	74 26                	je     0x41b901
41b8db:	e8 98 00 00 00       	call   0x41b978
41b8e0:	a1 cc 73 42 00       	mov    0x4273cc,%eax
41b8e5:	40                   	inc    %eax
41b8e6:	a3 cc 73 42 00       	mov    %eax,0x4273cc
41b8eb:	83 f8 01             	cmp    $0x1,%eax
41b8ee:	75 0c                	jne    0x41b8fc
41b8f0:	68 d0 73 42 00       	push   $0x4273d0
41b8f5:	6a 04                	push   $0x4
41b8f7:	e8 a5 01 00 00       	call   0x41baa1
41b8fc:	e9 44 02 00 00       	jmp    0x41bb45
41b901:	c3                   	ret
41b902:	a1 bc 73 42 00       	mov    0x4273bc,%eax
41b907:	53                   	push   %ebx
41b908:	33 db                	xor    %ebx,%ebx
41b90a:	43                   	inc    %ebx
41b90b:	56                   	push   %esi
41b90c:	3b c3                	cmp    %ebx,%eax
41b90e:	74 63                	je     0x41b973
41b910:	85 c0                	test   %eax,%eax
41b912:	75 5b                	jne    0x41b96f
41b914:	68 6c 13 42 00       	push   $0x42136c
41b919:	ff 15 58 c1 41 00    	call   *0x41c158
41b91f:	8b f0                	mov    %eax,%esi
41b921:	85 f6                	test   %esi,%esi
41b923:	75 04                	jne    0x41b929
41b925:	8b f3                	mov    %ebx,%esi
41b927:	eb 2a                	jmp    0x41b953
41b929:	68 88 13 42 00       	push   $0x421388
41b92e:	56                   	push   %esi
41b92f:	ff 15 1c c1 41 00    	call   *0x41c11c
41b935:	85 c0                	test   %eax,%eax
41b937:	74 ec                	je     0x41b925
41b939:	68 a0 13 42 00       	push   $0x4213a0
41b93e:	56                   	push   %esi
41b93f:	a3 c0 73 42 00       	mov    %eax,0x4273c0
41b944:	ff 15 1c c1 41 00    	call   *0x41c11c
41b94a:	85 c0                	test   %eax,%eax
41b94c:	74 d7                	je     0x41b925
41b94e:	a3 c4 73 42 00       	mov    %eax,0x4273c4
41b953:	8b ce                	mov    %esi,%ecx
41b955:	ba bc 73 42 00       	mov    $0x4273bc,%edx
41b95a:	33 c0                	xor    %eax,%eax
41b95c:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
41b960:	85 c0                	test   %eax,%eax
41b962:	75 04                	jne    0x41b968
41b964:	3b f3                	cmp    %ebx,%esi
41b966:	74 0b                	je     0x41b973
41b968:	3b c3                	cmp    %ebx,%eax
41b96a:	0f 95 c0             	setne  %al
41b96d:	eb 06                	jmp    0x41b975
41b96f:	8a c3                	mov    %bl,%al
41b971:	eb 02                	jmp    0x41b975
41b973:	32 c0                	xor    %al,%al
41b975:	5e                   	pop    %esi
41b976:	5b                   	pop    %ebx
41b977:	c3                   	ret
41b978:	e8 85 ff ff ff       	call   0x41b902
41b97d:	84 c0                	test   %al,%al
41b97f:	74 18                	je     0x41b999
41b981:	56                   	push   %esi
41b982:	8b 35 c0 73 42 00    	mov    0x4273c0,%esi
41b988:	8b ce                	mov    %esi,%ecx
41b98a:	68 c8 73 42 00       	push   $0x4273c8
41b98f:	ff 15 50 c2 41 00    	call   *0x41c250
41b995:	ff d6                	call   *%esi
41b997:	5e                   	pop    %esi
41b998:	c3                   	ret
41b999:	ba c8 73 42 00       	mov    $0x4273c8,%edx
41b99e:	eb 02                	jmp    0x41b9a2
41b9a0:	f3 90                	pause
41b9a2:	a1 c8 73 42 00       	mov    0x4273c8,%eax
41b9a7:	85 c0                	test   %eax,%eax
41b9a9:	75 f5                	jne    0x41b9a0
41b9ab:	33 c9                	xor    %ecx,%ecx
41b9ad:	41                   	inc    %ecx
41b9ae:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
41b9b2:	85 c0                	test   %eax,%eax
41b9b4:	75 ec                	jne    0x41b9a2