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
41b9b6:	c3                   	ret
41b9b7:	8b ff                	mov    %edi,%edi
41b9b9:	55                   	push   %ebp
41b9ba:	8b ec                	mov    %esp,%ebp
41b9bc:	83 ec 40             	sub    $0x40,%esp
41b9bf:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b9c2:	6a 1c                	push   $0x1c
41b9c4:	50                   	push   %eax
41b9c5:	ff 75 08             	push   0x8(%ebp)
41b9c8:	ff 15 00 c2 41 00    	call   *0x41c200
41b9ce:	85 c0                	test   %eax,%eax
41b9d0:	75 05                	jne    0x41b9d7
41b9d2:	6a 19                	push   $0x19
41b9d4:	59                   	pop    %ecx
41b9d5:	cd 29                	int    $0x29
41b9d7:	f6 45 f8 44          	testb  $0x44,-0x8(%ebp)
41b9db:	74 45                	je     0x41ba22
41b9dd:	56                   	push   %esi
41b9de:	57                   	push   %edi
41b9df:	8d 45 c0             	lea    -0x40(%ebp),%eax
41b9e2:	50                   	push   %eax
41b9e3:	ff 15 14 c2 41 00    	call   *0x41c214
41b9e9:	8b 7d c4             	mov    -0x3c(%ebp),%edi
41b9ec:	8d 57 ff             	lea    -0x1(%edi),%edx
41b9ef:	8b c2                	mov    %edx,%eax
41b9f1:	8b f2                	mov    %edx,%esi
41b9f3:	23 45 08             	and    0x8(%ebp),%eax
41b9f6:	f7 d6                	not    %esi
41b9f8:	23 55 0c             	and    0xc(%ebp),%edx
41b9fb:	03 c7                	add    %edi,%eax
41b9fd:	4a                   	dec    %edx
41b9fe:	23 75 08             	and    0x8(%ebp),%esi
41ba01:	03 c2                	add    %edx,%eax
41ba03:	33 d2                	xor    %edx,%edx
41ba05:	f7 f7                	div    %edi
41ba07:	33 d2                	xor    %edx,%edx
41ba09:	8b c8                	mov    %eax,%ecx
41ba0b:	8b 45 0c             	mov    0xc(%ebp),%eax
41ba0e:	f7 f7                	div    %edi
41ba10:	03 c8                	add    %eax,%ecx
41ba12:	74 0c                	je     0x41ba20
41ba14:	33 c0                	xor    %eax,%eax
41ba16:	f0 09 06             	lock or %eax,(%esi)
41ba19:	03 f7                	add    %edi,%esi
41ba1b:	83 e9 01             	sub    $0x1,%ecx
41ba1e:	75 f4                	jne    0x41ba14
41ba20:	5f                   	pop    %edi
41ba21:	5e                   	pop    %esi
41ba22:	c9                   	leave
41ba23:	c2 08 00             	ret    $0x8
41ba26:	8b ff                	mov    %edi,%edi
41ba28:	55                   	push   %ebp
41ba29:	8b ec                	mov    %esp,%ebp
41ba2b:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
41ba31:	53                   	push   %ebx
41ba32:	56                   	push   %esi
41ba33:	57                   	push   %edi
41ba34:	83 b9 74 00 40 00 0d 	cmpl   $0xd,0x400074(%ecx)
41ba3b:	76 44                	jbe    0x41ba81
41ba3d:	8b b1 e0 00 40 00    	mov    0x4000e0(%ecx),%esi
41ba43:	85 f6                	test   %esi,%esi
41ba45:	74 3a                	je     0x41ba81
41ba47:	0f b7 81 14 00 40 00 	movzwl 0x400014(%ecx),%eax
41ba4e:	8d 91 18 00 40 00    	lea    0x400018(%ecx),%edx
41ba54:	8b 9e 0c 00 40 00    	mov    0x40000c(%esi),%ebx
41ba5a:	03 d0                	add    %eax,%edx
41ba5c:	0f b7 89 06 00 40 00 	movzwl 0x400006(%ecx),%ecx
41ba63:	33 f6                	xor    %esi,%esi
41ba65:	85 c9                	test   %ecx,%ecx
41ba67:	74 18                	je     0x41ba81
41ba69:	8b 42 0c             	mov    0xc(%edx),%eax
41ba6c:	3b d8                	cmp    %eax,%ebx
41ba6e:	72 09                	jb     0x41ba79
41ba70:	8b 7a 08             	mov    0x8(%edx),%edi
41ba73:	03 c7                	add    %edi,%eax
41ba75:	3b d8                	cmp    %eax,%ebx
41ba77:	72 11                	jb     0x41ba8a
41ba79:	46                   	inc    %esi
41ba7a:	83 c2 28             	add    $0x28,%edx
41ba7d:	3b f1                	cmp    %ecx,%esi
41ba7f:	72 e8                	jb     0x41ba69
41ba81:	33 c0                	xor    %eax,%eax
41ba83:	5f                   	pop    %edi
41ba84:	5e                   	pop    %esi
41ba85:	5b                   	pop    %ebx
41ba86:	5d                   	pop    %ebp
41ba87:	c2 08 00             	ret    $0x8
41ba8a:	8b 45 08             	mov    0x8(%ebp),%eax
41ba8d:	89 38                	mov    %edi,(%eax)
41ba8f:	8b 45 0c             	mov    0xc(%ebp),%eax
41ba92:	8b 4a 24             	mov    0x24(%edx),%ecx
41ba95:	89 08                	mov    %ecx,(%eax)
41ba97:	8b 42 0c             	mov    0xc(%edx),%eax
41ba9a:	05 00 00 40 00       	add    $0x400000,%eax
41ba9f:	eb e2                	jmp    0x41ba83
41baa1:	8b ff                	mov    %edi,%edi
41baa3:	55                   	push   %ebp
41baa4:	8b ec                	mov    %esp,%ebp
41baa6:	51                   	push   %ecx
41baa7:	51                   	push   %ecx
41baa8:	56                   	push   %esi
41baa9:	8d 45 f8             	lea    -0x8(%ebp),%eax
41baac:	50                   	push   %eax
41baad:	8d 45 fc             	lea    -0x4(%ebp),%eax
41bab0:	50                   	push   %eax
41bab1:	e8 70 ff ff ff       	call   0x41ba26
41bab6:	8b f0                	mov    %eax,%esi
41bab8:	85 f6                	test   %esi,%esi
41baba:	75 0b                	jne    0x41bac7
41babc:	8b 45 0c             	mov    0xc(%ebp),%eax
41babf:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
41bac5:	eb 43                	jmp    0x41bb0a
41bac7:	83 3d d4 73 42 00 00 	cmpl   $0x0,0x4273d4
41bace:	75 21                	jne    0x41baf1
41bad0:	f7 45 f8 00 00 00 80 	testl  $0x80000000,-0x8(%ebp)
41bad7:	c7 05 d4 73 42 00 01 	movl   $0x1,0x4273d4
41bade:	00 00 00
41bae1:	75 05                	jne    0x41bae8
41bae3:	6a 19                	push   $0x19
41bae5:	59                   	pop    %ecx
41bae6:	cd 29                	int    $0x29
41bae8:	ff 75 fc             	push   -0x4(%ebp)
41baeb:	56                   	push   %esi
41baec:	e8 c6 fe ff ff       	call   0x41b9b7
41baf1:	ff 75 0c             	push   0xc(%ebp)
41baf4:	ff 75 08             	push   0x8(%ebp)
41baf7:	ff 75 fc             	push   -0x4(%ebp)
41bafa:	56                   	push   %esi
41bafb:	ff 15 0c c1 41 00    	call   *0x41c10c
41bb01:	85 c0                	test   %eax,%eax
41bb03:	75 05                	jne    0x41bb0a
41bb05:	6a 19                	push   $0x19
41bb07:	59                   	pop    %ecx
41bb08:	cd 29                	int    $0x29
41bb0a:	5e                   	pop    %esi
41bb0b:	c9                   	leave
41bb0c:	c2 08 00             	ret    $0x8
41bb0f:	8b ff                	mov    %edi,%edi
41bb11:	55                   	push   %ebp
41bb12:	8b ec                	mov    %esp,%ebp
41bb14:	51                   	push   %ecx
41bb15:	f7 05 18 14 42 00 00 	testl  $0x1000,0x421418
41bb1c:	10 00 00
41bb1f:	74 22                	je     0x41bb43
41bb21:	e8 52 fe ff ff       	call   0x41b978
41bb26:	83 2d cc 73 42 00 01 	subl   $0x1,0x4273cc
41bb2d:	75 0f                	jne    0x41bb3e
41bb2f:	8d 45 fc             	lea    -0x4(%ebp),%eax
41bb32:	50                   	push   %eax
41bb33:	ff 35 d0 73 42 00    	push   0x4273d0
41bb39:	e8 63 ff ff ff       	call   0x41baa1
41bb3e:	e8 02 00 00 00       	call   0x41bb45
41bb43:	c9                   	leave
41bb44:	c3                   	ret
41bb45:	e8 b8 fd ff ff       	call   0x41b902
41bb4a:	84 c0                	test   %al,%al
41bb4c:	74 18                	je     0x41bb66
41bb4e:	56                   	push   %esi
41bb4f:	8b 35 c4 73 42 00    	mov    0x4273c4,%esi
41bb55:	8b ce                	mov    %esi,%ecx
41bb57:	68 c8 73 42 00       	push   $0x4273c8
41bb5c:	ff 15 50 c2 41 00    	call   *0x41c250
41bb62:	ff d6                	call   *%esi
41bb64:	5e                   	pop    %esi
41bb65:	c3                   	ret
41bb66:	c7 05 c8 73 42 00 00 	movl   $0x0,0x4273c8
41bb6d:	00 00 00
41bb70:	c3                   	ret
41bb71:	8b ff                	mov    %edi,%edi
41bb73:	55                   	push   %ebp
41bb74:	8b ec                	mov    %esp,%ebp
41bb76:	83 ec 34             	sub    $0x34,%esp
41bb79:	53                   	push   %ebx
41bb7a:	56                   	push   %esi
41bb7b:	57                   	push   %edi