476897:	eb 06                	jmp    0x47689f
476899:	53                   	push   %ebx
47689a:	e8 9d 03 00 00       	call   0x476c3c
47689f:	8a 55 fe             	mov    -0x2(%ebp),%dl
4768a2:	59                   	pop    %ecx
4768a3:	8a c8                	mov    %al,%cl
4768a5:	8a 6d ff             	mov    -0x1(%ebp),%ch
4768a8:	33 c0                	xor    %eax,%eax
4768aa:	84 c9                	test   %cl,%cl
4768ac:	0f 95 c0             	setne  %al
4768af:	8d 34 46             	lea    (%esi,%eax,2),%esi
4768b2:	84 c9                	test   %cl,%cl
4768b4:	0f 85 19 ff ff ff    	jne    0x4767d3
4768ba:	eb 03                	jmp    0x4768bf
4768bc:	8a 6d ff             	mov    -0x1(%ebp),%ch
4768bf:	84 ed                	test   %ch,%ch
4768c1:	74 03                	je     0x4768c6
4768c3:	83 c6 02             	add    $0x2,%esi
4768c6:	66 39 3e             	cmp    %di,(%esi)
4768c9:	74 f8                	je     0x4768c3
4768cb:	84 ed                	test   %ch,%ch
4768cd:	75 14                	jne    0x4768e3
4768cf:	33 c0                	xor    %eax,%eax
4768d1:	66 39 06             	cmp    %ax,(%esi)
4768d4:	0f 85 a6 00 00 00    	jne    0x476980
4768da:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
4768de:	e9 ad 00 00 00       	jmp    0x476990
4768e3:	6a 03                	push   $0x3
4768e5:	68 cc e9 49 00       	push   $0x49e9cc
4768ea:	56                   	push   %esi
4768eb:	e8 a0 99 ff ff       	call   0x470290
4768f0:	83 c4 0c             	add    $0xc,%esp
4768f3:	85 c0                	test   %eax,%eax
4768f5:	0f 85 85 00 00 00    	jne    0x476980
4768fb:	83 c6 06             	add    $0x6,%esi
4768fe:	eb 03                	jmp    0x476903
476900:	83 c6 02             	add    $0x2,%esi
476903:	66 39 3e             	cmp    %di,(%esi)
476906:	74 f8                	je     0x476900
476908:	66 83 3e 3d          	cmpw   $0x3d,(%esi)
47690c:	75 72                	jne    0x476980
47690e:	83 c6 02             	add    $0x2,%esi
476911:	66 39 3e             	cmp    %di,(%esi)
476914:	74 f8                	je     0x47690e
476916:	6a 05                	push   $0x5
476918:	68 d4 e9 49 00       	push   $0x49e9d4
47691d:	56                   	push   %esi
47691e:	e8 29 c8 00 00       	call   0x48314c
476923:	83 c4 0c             	add    $0xc,%esp
476926:	85 c0                	test   %eax,%eax
476928:	75 0b                	jne    0x476935
47692a:	83 c6 0a             	add    $0xa,%esi
47692d:	81 0b 00 00 04 00    	orl    $0x40000,(%ebx)
476933:	eb 41                	jmp    0x476976
476935:	6a 08                	push   $0x8
476937:	68 e0 e9 49 00       	push   $0x49e9e0
47693c:	56                   	push   %esi
47693d:	e8 0a c8 00 00       	call   0x48314c
476942:	83 c4 0c             	add    $0xc,%esp
476945:	85 c0                	test   %eax,%eax
476947:	75 0b                	jne    0x476954
476949:	83 c6 10             	add    $0x10,%esi
47694c:	81 0b 00 00 02 00    	orl    $0x20000,(%ebx)
476952:	eb 22                	jmp    0x476976
476954:	6a 07                	push   $0x7
476956:	68 f0 e9 49 00       	push   $0x49e9f0
47695b:	56                   	push   %esi
47695c:	e8 eb c7 00 00       	call   0x48314c
476961:	83 c4 0c             	add    $0xc,%esp
476964:	85 c0                	test   %eax,%eax
476966:	75 18                	jne    0x476980
476968:	83 c6 0e             	add    $0xe,%esi
47696b:	81 0b 00 00 01 00    	orl    $0x10000,(%ebx)
476971:	eb 03                	jmp    0x476976
476973:	83 c6 02             	add    $0x2,%esi
476976:	66 39 3e             	cmp    %di,(%esi)
476979:	74 f8                	je     0x476973
47697b:	e9 4f ff ff ff       	jmp    0x4768cf
476980:	e8 aa 64 fd ff       	call   0x44ce2f
476985:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47698b:	e8 46 63 fd ff       	call   0x44ccd6
476990:	5f                   	pop    %edi
476991:	5e                   	pop    %esi
476992:	8b c3                	mov    %ebx,%eax
476994:	5b                   	pop    %ebx
476995:	8b e5                	mov    %ebp,%esp
476997:	5d                   	pop    %ebp
476998:	c3                   	ret
476999:	8b ff                	mov    %edi,%edi
47699b:	55                   	push   %ebp
47699c:	8b ec                	mov    %esp,%ebp
47699e:	83 ec 1c             	sub    $0x1c,%esp
4769a1:	56                   	push   %esi
4769a2:	57                   	push   %edi
4769a3:	ff 75 0c             	push   0xc(%ebp)
4769a6:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4769a9:	50                   	push   %eax
4769aa:	e8 74 fb ff ff       	call   0x476523
4769af:	8b f0                	mov    %eax,%esi
4769b1:	8d 7d f0             	lea    -0x10(%ebp),%edi
4769b4:	59                   	pop    %ecx
4769b5:	59                   	pop    %ecx
4769b6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4769b7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4769b8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4769b9:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
4769bd:	5f                   	pop    %edi
4769be:	5e                   	pop    %esi
4769bf:	75 04                	jne    0x4769c5
4769c1:	33 c0                	xor    %eax,%eax
4769c3:	eb 55                	jmp    0x476a1a
4769c5:	68 80 01 00 00       	push   $0x180
4769ca:	ff 75 10             	push   0x10(%ebp)
4769cd:	8d 45 fc             	lea    -0x4(%ebp),%eax
4769d0:	ff 75 f0             	push   -0x10(%ebp)
4769d3:	ff 75 08             	push   0x8(%ebp)
4769d6:	50                   	push   %eax
4769d7:	e8 c4 d4 00 00       	call   0x483ea0
4769dc:	83 c4 14             	add    $0x14,%esp
4769df:	85 c0                	test   %eax,%eax
4769e1:	75 de                	jne    0x4769c1
4769e3:	8b 45 14             	mov    0x14(%ebp),%eax
4769e6:	ff 05 08 b4 4b 00    	incl   0x4bb408
4769ec:	83 c0 0c             	add    $0xc,%eax
4769ef:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4769f2:	f0 09 08             	lock or %ecx,(%eax)
4769f5:	8b 45 14             	mov    0x14(%ebp),%eax
4769f8:	33 c9                	xor    %ecx,%ecx
4769fa:	89 48 08             	mov    %ecx,0x8(%eax)
4769fd:	8b 45 14             	mov    0x14(%ebp),%eax
476a00:	89 48 1c             	mov    %ecx,0x1c(%eax)
476a03:	8b 45 14             	mov    0x14(%ebp),%eax
476a06:	89 48 04             	mov    %ecx,0x4(%eax)
476a09:	8b 45 14             	mov    0x14(%ebp),%eax
476a0c:	89 08                	mov    %ecx,(%eax)
476a0e:	8b 4d 14             	mov    0x14(%ebp),%ecx
476a11:	8b 45 fc             	mov    -0x4(%ebp),%eax
476a14:	89 41 10             	mov    %eax,0x10(%ecx)
476a17:	8b 45 14             	mov    0x14(%ebp),%eax
476a1a:	8b e5                	mov    %ebp,%esp
476a1c:	5d                   	pop    %ebp
476a1d:	c3                   	ret
476a1e:	8b ff                	mov    %edi,%edi
476a20:	55                   	push   %ebp
476a21:	8b ec                	mov    %esp,%ebp
476a23:	83 ec 1c             	sub    $0x1c,%esp
476a26:	56                   	push   %esi
476a27:	57                   	push   %edi
476a28:	ff 75 0c             	push   0xc(%ebp)
476a2b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
476a2e:	50                   	push   %eax
476a2f:	e8 21 fd ff ff       	call   0x476755
476a34:	8b f0                	mov    %eax,%esi
476a36:	8d 7d f0             	lea    -0x10(%ebp),%edi
476a39:	59                   	pop    %ecx
476a3a:	59                   	pop    %ecx
476a3b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476a3c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476a3d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476a3e:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
476a42:	5f                   	pop    %edi
476a43:	5e                   	pop    %esi
476a44:	75 04                	jne    0x476a4a
476a46:	33 c0                	xor    %eax,%eax
476a48:	eb 55                	jmp    0x476a9f
476a4a:	68 80 01 00 00       	push   $0x180
476a4f:	ff 75 10             	push   0x10(%ebp)
476a52:	8d 45 fc             	lea    -0x4(%ebp),%eax
476a55:	ff 75 f0             	push   -0x10(%ebp)
476a58:	ff 75 08             	push   0x8(%ebp)
476a5b:	50                   	push   %eax
476a5c:	e8 e0 d7 00 00       	call   0x484241
476a61:	83 c4 14             	add    $0x14,%esp
476a64:	85 c0                	test   %eax,%eax
476a66:	75 de                	jne    0x476a46
476a68:	8b 45 14             	mov    0x14(%ebp),%eax
476a6b:	ff 05 08 b4 4b 00    	incl   0x4bb408
476a71:	83 c0 0c             	add    $0xc,%eax
476a74:	8b 4d f4             	mov    -0xc(%ebp),%ecx
476a77:	f0 09 08             	lock or %ecx,(%eax)
476a7a:	8b 45 14             	mov    0x14(%ebp),%eax
476a7d:	33 c9                	xor    %ecx,%ecx
476a7f:	89 48 08             	mov    %ecx,0x8(%eax)
476a82:	8b 45 14             	mov    0x14(%ebp),%eax
476a85:	89 48 1c             	mov    %ecx,0x1c(%eax)
476a88:	8b 45 14             	mov    0x14(%ebp),%eax
476a8b:	89 48 04             	mov    %ecx,0x4(%eax)
476a8e:	8b 45 14             	mov    0x14(%ebp),%eax
476a91:	89 08                	mov    %ecx,(%eax)
476a93:	8b 4d 14             	mov    0x14(%ebp),%ecx
476a96:	8b 45 fc             	mov    -0x4(%ebp),%eax
476a99:	89 41 10             	mov    %eax,0x10(%ecx)
476a9c:	8b 45 14             	mov    0x14(%ebp),%eax
476a9f:	8b e5                	mov    %ebp,%esp
476aa1:	5d                   	pop    %ebp
476aa2:	c3                   	ret
476aa3:	8b ff                	mov    %edi,%edi
476aa5:	55                   	push   %ebp
476aa6:	8b ec                	mov    %esp,%ebp
476aa8:	8b 45 10             	mov    0x10(%ebp),%eax
476aab:	ff 30                	push   (%eax)
476aad:	8b 45 08             	mov    0x8(%ebp),%eax
476ab0:	ff 75 0c             	push   0xc(%ebp)
476ab3:	ff 30                	push   (%eax)
476ab5:	e8 e6 ad ff ff       	call   0x4718a0
476aba:	83 c4 0c             	add    $0xc,%esp
476abd:	5d                   	pop    %ebp
476abe:	c3                   	ret
476abf:	8b ff                	mov    %edi,%edi
476ac1:	55                   	push   %ebp
476ac2:	8b ec                	mov    %esp,%ebp
476ac4:	8b 45 10             	mov    0x10(%ebp),%eax
476ac7:	ff 30                	push   (%eax)
476ac9:	8b 45 08             	mov    0x8(%ebp),%eax
476acc:	ff 75 0c             	push   0xc(%ebp)
476acf:	ff 30                	push   (%eax)
476ad1:	e8 ba 97 ff ff       	call   0x470290
476ad6:	83 c4 0c             	add    $0xc,%esp
476ad9:	5d                   	pop    %ebp
476ada:	c3                   	ret
476adb:	8b ff                	mov    %edi,%edi
476add:	55                   	push   %ebp
476ade:	8b ec                	mov    %esp,%ebp
476ae0:	8b 45 10             	mov    0x10(%ebp),%eax
476ae3:	ff 30                	push   (%eax)
476ae5:	8b 45 08             	mov    0x8(%ebp),%eax
476ae8:	ff 75 0c             	push   0xc(%ebp)
476aeb:	ff 30                	push   (%eax)
476aed:	e8 15 c8 00 00       	call   0x483307
476af2:	83 c4 0c             	add    $0xc,%esp
476af5:	5d                   	pop    %ebp
476af6:	c3                   	ret
476af7:	8b ff                	mov    %edi,%edi
476af9:	55                   	push   %ebp
476afa:	8b ec                	mov    %esp,%ebp
476afc:	8b 45 10             	mov    0x10(%ebp),%eax
476aff:	ff 30                	push   (%eax)
476b01:	8b 45 08             	mov    0x8(%ebp),%eax
476b04:	ff 75 0c             	push   0xc(%ebp)
476b07:	ff 30                	push   (%eax)
476b09:	e8 f9 c7 00 00       	call   0x483307
476b0e:	83 c4 0c             	add    $0xc,%esp
476b11:	5d                   	pop    %ebp
476b12:	c3                   	ret
476b13:	8b ff                	mov    %edi,%edi
476b15:	55                   	push   %ebp
476b16:	8b ec                	mov    %esp,%ebp
476b18:	8b 45 10             	mov    0x10(%ebp),%eax
476b1b:	ff 30                	push   (%eax)
476b1d:	8b 45 08             	mov    0x8(%ebp),%eax
476b20:	ff 75 0c             	push   0xc(%ebp)
476b23:	ff 30                	push   (%eax)
476b25:	e8 dd c7 00 00       	call   0x483307
476b2a:	83 c4 0c             	add    $0xc,%esp
476b2d:	5d                   	pop    %ebp
476b2e:	c3                   	ret
476b2f:	8b ff                	mov    %edi,%edi
476b31:	55                   	push   %ebp
476b32:	8b ec                	mov    %esp,%ebp
476b34:	8b 45 10             	mov    0x10(%ebp),%eax
476b37:	ff 30                	push   (%eax)
476b39:	8b 45 08             	mov    0x8(%ebp),%eax
476b3c:	ff 75 0c             	push   0xc(%ebp)
476b3f:	ff 30                	push   (%eax)
476b41:	e8 06 c6 00 00       	call   0x48314c
476b46:	83 c4 0c             	add    $0xc,%esp
476b49:	5d                   	pop    %ebp
476b4a:	c3                   	ret
476b4b:	8b ff                	mov    %edi,%edi
476b4d:	55                   	push   %ebp
476b4e:	8b ec                	mov    %esp,%ebp
476b50:	8b 45 10             	mov    0x10(%ebp),%eax
476b53:	ff 30                	push   (%eax)
476b55:	8b 45 08             	mov    0x8(%ebp),%eax
476b58:	ff 75 0c             	push   0xc(%ebp)
476b5b:	ff 30                	push   (%eax)
476b5d:	e8 ea c5 00 00       	call   0x48314c
476b62:	83 c4 0c             	add    $0xc,%esp
476b65:	5d                   	pop    %ebp
476b66:	c3                   	ret
476b67:	8b ff                	mov    %edi,%edi
476b69:	55                   	push   %ebp
476b6a:	8b ec                	mov    %esp,%ebp
476b6c:	8b 45 10             	mov    0x10(%ebp),%eax
476b6f:	ff 30                	push   (%eax)
476b71:	8b 45 08             	mov    0x8(%ebp),%eax
476b74:	ff 75 0c             	push   0xc(%ebp)
476b77:	ff 30                	push   (%eax)
476b79:	e8 ce c5 00 00       	call   0x48314c
476b7e:	83 c4 0c             	add    $0xc,%esp
476b81:	5d                   	pop    %ebp
476b82:	c3                   	ret
476b83:	8b ff                	mov    %edi,%edi
476b85:	55                   	push   %ebp
476b86:	8b ec                	mov    %esp,%ebp
476b88:	8b 45 18             	mov    0x18(%ebp),%eax
476b8b:	ff 30                	push   (%eax)
476b8d:	8b 45 14             	mov    0x14(%ebp),%eax
476b90:	ff 30                	push   (%eax)
476b92:	8b 45 10             	mov    0x10(%ebp),%eax
476b95:	ff 30                	push   (%eax)
476b97:	8b 45 0c             	mov    0xc(%ebp),%eax
476b9a:	ff 30                	push   (%eax)
476b9c:	8b 45 08             	mov    0x8(%ebp),%eax
476b9f:	ff 30                	push   (%eax)
476ba1:	e8 fa d2 00 00       	call   0x483ea0
476ba6:	83 c4 14             	add    $0x14,%esp
476ba9:	5d                   	pop    %ebp
476baa:	c3                   	ret
476bab:	8b ff                	mov    %edi,%edi
476bad:	55                   	push   %ebp
476bae:	8b ec                	mov    %esp,%ebp
476bb0:	8b 45 18             	mov    0x18(%ebp),%eax
476bb3:	ff 30                	push   (%eax)
476bb5:	8b 45 14             	mov    0x14(%ebp),%eax
476bb8:	ff 30                	push   (%eax)
476bba:	8b 45 10             	mov    0x10(%ebp),%eax
476bbd:	ff 30                	push   (%eax)
476bbf:	8b 45 0c             	mov    0xc(%ebp),%eax
476bc2:	ff 30                	push   (%eax)
476bc4:	8b 45 08             	mov    0x8(%ebp),%eax
476bc7:	ff 30                	push   (%eax)
476bc9:	e8 73 d6 00 00       	call   0x484241
476bce:	83 c4 14             	add    $0x14,%esp
476bd1:	5d                   	pop    %ebp
476bd2:	c3                   	ret
476bd3:	8b ff                	mov    %edi,%edi
476bd5:	55                   	push   %ebp
476bd6:	8b ec                	mov    %esp,%ebp
476bd8:	8b 4d 08             	mov    0x8(%ebp),%ecx
476bdb:	8b 01                	mov    (%ecx),%eax
476bdd:	a8 40                	test   $0x40,%al
476bdf:	74 04                	je     0x476be5
476be1:	32 c0                	xor    %al,%al
476be3:	5d                   	pop    %ebp
476be4:	c3                   	ret
476be5:	83 c8 40             	or     $0x40,%eax
476be8:	89 01                	mov    %eax,(%ecx)
476bea:	b0 01                	mov    $0x1,%al
476bec:	5d                   	pop    %ebp
476bed:	c3                   	ret
476bee:	8b ff                	mov    %edi,%edi
476bf0:	55                   	push   %ebp
476bf1:	8b ec                	mov    %esp,%ebp
476bf3:	8b 45 08             	mov    0x8(%ebp),%eax
476bf6:	81 08 80 00 00 00    	orl    $0x80,(%eax)
476bfc:	b0 01                	mov    $0x1,%al
476bfe:	5d                   	pop    %ebp
476bff:	c3                   	ret
476c00:	8b ff                	mov    %edi,%edi