47993d:	a8 01                	test   $0x1,%al
47993f:	74 06                	je     0x479947
479941:	6a fd                	push   $0xfffffffd
479943:	58                   	pop    %eax
479944:	f0 21 06             	lock and %eax,(%esi)
479947:	33 c0                	xor    %eax,%eax
479949:	5f                   	pop    %edi
47994a:	5e                   	pop    %esi
47994b:	5b                   	pop    %ebx
47994c:	5d                   	pop    %ebp
47994d:	c3                   	ret
47994e:	8b ff                	mov    %edi,%edi
479950:	55                   	push   %ebp
479951:	8b ec                	mov    %esp,%ebp
479953:	83 ec 28             	sub    $0x28,%esp
479956:	8d 4d d8             	lea    -0x28(%ebp),%ecx
479959:	56                   	push   %esi
47995a:	57                   	push   %edi
47995b:	33 f6                	xor    %esi,%esi
47995d:	56                   	push   %esi
47995e:	e8 7d d9 ff ff       	call   0x4772e0
479963:	8b 7d 08             	mov    0x8(%ebp),%edi
479966:	85 ff                	test   %edi,%edi
479968:	75 0b                	jne    0x479975
47996a:	56                   	push   %esi
47996b:	e8 d4 fe ff ff       	call   0x479844
479970:	59                   	pop    %ecx
479971:	8b f0                	mov    %eax,%esi
479973:	eb 30                	jmp    0x4799a5
479975:	8d 45 d8             	lea    -0x28(%ebp),%eax
479978:	50                   	push   %eax
479979:	57                   	push   %edi
47997a:	e8 66 ff ff ff       	call   0x4798e5
47997f:	59                   	pop    %ecx
479980:	59                   	pop    %ecx
479981:	85 c0                	test   %eax,%eax
479983:	75 1d                	jne    0x4799a2
479985:	8b 47 0c             	mov    0xc(%edi),%eax
479988:	90                   	nop
479989:	c1 e8 0b             	shr    $0xb,%eax
47998c:	a8 01                	test   $0x1,%al
47998e:	74 15                	je     0x4799a5
479990:	57                   	push   %edi
479991:	e8 9c cd 00 00       	call   0x486732
479996:	50                   	push   %eax
479997:	e8 a2 d6 00 00       	call   0x48703e
47999c:	59                   	pop    %ecx
47999d:	59                   	pop    %ecx
47999e:	85 c0                	test   %eax,%eax
4799a0:	74 03                	je     0x4799a5
4799a2:	83 ce ff             	or     $0xffffffff,%esi
4799a5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4799a8:	e8 93 d9 ff ff       	call   0x477340
4799ad:	5f                   	pop    %edi
4799ae:	8b c6                	mov    %esi,%eax
4799b0:	5e                   	pop    %esi
4799b1:	c9                   	leave
4799b2:	c3                   	ret
4799b3:	6a 01                	push   $0x1
4799b5:	e8 8a fe ff ff       	call   0x479844
4799ba:	59                   	pop    %ecx
4799bb:	c3                   	ret
4799bc:	6a 10                	push   $0x10
4799be:	68 c8 16 4c 00       	push   $0x4c16c8
4799c3:	e8 78 0d ff ff       	call   0x46a740
4799c8:	8b 75 08             	mov    0x8(%ebp),%esi
4799cb:	89 75 e0             	mov    %esi,-0x20(%ebp)
4799ce:	85 f6                	test   %esi,%esi
4799d0:	75 23                	jne    0x4799f5
4799d2:	8b 45 0c             	mov    0xc(%ebp),%eax
4799d5:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4799d9:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4799e0:	50                   	push   %eax
4799e1:	33 ff                	xor    %edi,%edi
4799e3:	57                   	push   %edi
4799e4:	57                   	push   %edi
4799e5:	57                   	push   %edi
4799e6:	57                   	push   %edi
4799e7:	57                   	push   %edi
4799e8:	e8 b7 fb ff ff       	call   0x4795a4
4799ed:	83 c4 18             	add    $0x18,%esp
4799f0:	83 c8 ff             	or     $0xffffffff,%eax
4799f3:	eb 40                	jmp    0x479a35
4799f5:	8b 46 0c             	mov    0xc(%esi),%eax
4799f8:	90                   	nop
4799f9:	c1 e8 0c             	shr    $0xc,%eax
4799fc:	56                   	push   %esi
4799fd:	a8 01                	test   $0x1,%al
4799ff:	74 08                	je     0x479a09
479a01:	e8 28 e4 00 00       	call   0x487e2e
479a06:	59                   	pop    %ecx
479a07:	eb e7                	jmp    0x4799f0
479a09:	33 ff                	xor    %edi,%edi
479a0b:	89 7d e4             	mov    %edi,-0x1c(%ebp)
479a0e:	e8 d9 03 00 00       	call   0x479dec
479a13:	59                   	pop    %ecx
479a14:	89 7d fc             	mov    %edi,-0x4(%ebp)
479a17:	ff 75 0c             	push   0xc(%ebp)
479a1a:	56                   	push   %esi
479a1b:	e8 33 00 00 00       	call   0x479a53
479a20:	59                   	pop    %ecx
479a21:	59                   	pop    %ecx
479a22:	8b f8                	mov    %eax,%edi
479a24:	89 7d e4             	mov    %edi,-0x1c(%ebp)
479a27:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
479a2e:	e8 18 00 00 00       	call   0x479a4b
479a33:	8b c7                	mov    %edi,%eax
479a35:	8b 4d f0             	mov    -0x10(%ebp),%ecx
479a38:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
479a3f:	59                   	pop    %ecx
479a40:	5f                   	pop    %edi
479a41:	5e                   	pop    %esi
479a42:	5b                   	pop    %ebx
479a43:	c9                   	leave
479a44:	c3                   	ret
479a45:	8b 75 e0             	mov    -0x20(%ebp),%esi
479a48:	8b 7d e4             	mov    -0x1c(%ebp),%edi
479a4b:	56                   	push   %esi
479a4c:	e8 af 03 00 00       	call   0x479e00
479a51:	59                   	pop    %ecx
479a52:	c3                   	ret
479a53:	8b ff                	mov    %edi,%edi
479a55:	55                   	push   %ebp
479a56:	8b ec                	mov    %esp,%ebp
479a58:	56                   	push   %esi
479a59:	8b 75 08             	mov    0x8(%ebp),%esi
479a5c:	85 f6                	test   %esi,%esi
479a5e:	75 23                	jne    0x479a83
479a60:	8b 45 0c             	mov    0xc(%ebp),%eax
479a63:	50                   	push   %eax
479a64:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
479a68:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
479a6f:	33 c0                	xor    %eax,%eax
479a71:	50                   	push   %eax
479a72:	50                   	push   %eax
479a73:	50                   	push   %eax
479a74:	50                   	push   %eax
479a75:	50                   	push   %eax
479a76:	e8 29 fb ff ff       	call   0x4795a4
479a7b:	83 c4 18             	add    $0x18,%esp
479a7e:	83 c8 ff             	or     $0xffffffff,%eax
479a81:	eb 5b                	jmp    0x479ade
479a83:	8b 46 0c             	mov    0xc(%esi),%eax
479a86:	57                   	push   %edi
479a87:	83 cf ff             	or     $0xffffffff,%edi
479a8a:	90                   	nop
479a8b:	c1 e8 0d             	shr    $0xd,%eax
479a8e:	a8 01                	test   $0x1,%al
479a90:	74 42                	je     0x479ad4
479a92:	ff 75 0c             	push   0xc(%ebp)
479a95:	56                   	push   %esi
479a96:	e8 4a fe ff ff       	call   0x4798e5
479a9b:	56                   	push   %esi
479a9c:	8b f8                	mov    %eax,%edi
479a9e:	e8 88 e4 00 00       	call   0x487f2b
479aa3:	83 c4 0c             	add    $0xc,%esp
479aa6:	ff 75 0c             	push   0xc(%ebp)
479aa9:	56                   	push   %esi
479aaa:	e8 83 cc 00 00       	call   0x486732
479aaf:	59                   	pop    %ecx
479ab0:	50                   	push   %eax
479ab1:	e8 9c e1 00 00       	call   0x487c52
479ab6:	59                   	pop    %ecx
479ab7:	59                   	pop    %ecx
479ab8:	85 c0                	test   %eax,%eax
479aba:	79 05                	jns    0x479ac1
479abc:	83 cf ff             	or     $0xffffffff,%edi
479abf:	eb 13                	jmp    0x479ad4
479ac1:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
479ac5:	74 0d                	je     0x479ad4
479ac7:	ff 76 1c             	push   0x1c(%esi)
479aca:	e8 29 bd 00 00       	call   0x4857f8
479acf:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
479ad3:	59                   	pop    %ecx
479ad4:	56                   	push   %esi
479ad5:	e8 54 e3 00 00       	call   0x487e2e
479ada:	59                   	pop    %ecx
479adb:	8b c7                	mov    %edi,%eax
479add:	5f                   	pop    %edi
479ade:	5e                   	pop    %esi
479adf:	5d                   	pop    %ebp
479ae0:	c3                   	ret
479ae1:	8b ff                	mov    %edi,%edi
479ae3:	55                   	push   %ebp
479ae4:	8b ec                	mov    %esp,%ebp
479ae6:	83 ec 28             	sub    $0x28,%esp
479ae9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
479aec:	56                   	push   %esi
479aed:	6a 00                	push   $0x0
479aef:	e8 ec d7 ff ff       	call   0x4772e0
479af4:	8d 45 d8             	lea    -0x28(%ebp),%eax
479af7:	50                   	push   %eax
479af8:	ff 75 08             	push   0x8(%ebp)
479afb:	e8 bc fe ff ff       	call   0x4799bc
479b00:	59                   	pop    %ecx
479b01:	59                   	pop    %ecx
479b02:	8d 4d d8             	lea    -0x28(%ebp),%ecx
479b05:	8b f0                	mov    %eax,%esi
479b07:	e8 34 d8 ff ff       	call   0x477340
479b0c:	8b c6                	mov    %esi,%eax
479b0e:	5e                   	pop    %esi
479b0f:	c9                   	leave
479b10:	c3                   	ret
479b11:	8b ff                	mov    %edi,%edi
479b13:	55                   	push   %ebp
479b14:	8b ec                	mov    %esp,%ebp
479b16:	53                   	push   %ebx
479b17:	57                   	push   %edi
479b18:	8b f9                	mov    %ecx,%edi
479b1a:	8b 4d 08             	mov    0x8(%ebp),%ecx
479b1d:	c6 47 0c 00          	movb   $0x0,0xc(%edi)
479b21:	8d 5f 04             	lea    0x4(%edi),%ebx
479b24:	85 c9                	test   %ecx,%ecx
479b26:	74 07                	je     0x479b2f
479b28:	8b 01                	mov    (%ecx),%eax
479b2a:	8b 49 04             	mov    0x4(%ecx),%ecx
479b2d:	eb 14                	jmp    0x479b43
479b2f:	83 3d c0 87 4c 00 00 	cmpl   $0x0,0x4c87c0
479b36:	75 12                	jne    0x479b4a
479b38:	a1 88 42 4c 00       	mov    0x4c4288,%eax
479b3d:	8b 0d 8c 42 4c 00    	mov    0x4c428c,%ecx
479b43:	89 03                	mov    %eax,(%ebx)
479b45:	89 4b 04             	mov    %ecx,0x4(%ebx)
479b48:	eb 41                	jmp    0x479b8b
479b4a:	56                   	push   %esi
479b4b:	e8 69 cf 00 00       	call   0x486ab9
479b50:	89 07                	mov    %eax,(%edi)
479b52:	8d 77 08             	lea    0x8(%edi),%esi
479b55:	53                   	push   %ebx
479b56:	50                   	push   %eax
479b57:	8b 48 4c             	mov    0x4c(%eax),%ecx
479b5a:	89 0b                	mov    %ecx,(%ebx)
479b5c:	8b 48 48             	mov    0x48(%eax),%ecx
479b5f:	89 0e                	mov    %ecx,(%esi)
479b61:	e8 1a bd 00 00       	call   0x485880
479b66:	56                   	push   %esi
479b67:	ff 37                	push   (%edi)
479b69:	e8 70 bd 00 00       	call   0x4858de
479b6e:	8b 0f                	mov    (%edi),%ecx
479b70:	83 c4 10             	add    $0x10,%esp
479b73:	8b 81 50 03 00 00    	mov    0x350(%ecx),%eax
479b79:	5e                   	pop    %esi
479b7a:	a8 02                	test   $0x2,%al
479b7c:	75 0d                	jne    0x479b8b
479b7e:	83 c8 02             	or     $0x2,%eax
479b81:	89 81 50 03 00 00    	mov    %eax,0x350(%ecx)
479b87:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
479b8b:	8b c7                	mov    %edi,%eax
479b8d:	5f                   	pop    %edi
479b8e:	5b                   	pop    %ebx
479b8f:	5d                   	pop    %ebp
479b90:	c2 04 00             	ret    $0x4
479b93:	8b ff                	mov    %edi,%edi
479b95:	55                   	push   %ebp
479b96:	8b ec                	mov    %esp,%ebp
479b98:	83 ec 18             	sub    $0x18,%esp
479b9b:	83 ca ff             	or     $0xffffffff,%edx
479b9e:	53                   	push   %ebx
479b9f:	8b 5d 08             	mov    0x8(%ebp),%ebx
479ba2:	3b da                	cmp    %edx,%ebx
479ba4:	0f 84 e2 00 00 00    	je     0x479c8c
479baa:	ff 75 0c             	push   0xc(%ebp)
479bad:	8d 4d e8             	lea    -0x18(%ebp),%ecx
479bb0:	e8 5c ff ff ff       	call   0x479b11
479bb5:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
479bbb:	73 29                	jae    0x479be6
479bbd:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
479bc1:	8b 45 ec             	mov    -0x14(%ebp),%eax
479bc4:	0f b6 cb             	movzbl %bl,%ecx
479bc7:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
479bcd:	0f b6 14 08          	movzbl (%eax,%ecx,1),%edx
479bd1:	0f 84 b5 00 00 00    	je     0x479c8c
479bd7:	8b 45 e8             	mov    -0x18(%ebp),%eax
479bda:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
479be1:	e9 a6 00 00 00       	jmp    0x479c8c
479be6:	8b 55 ec             	mov    -0x14(%ebp),%edx
479be9:	33 c0                	xor    %eax,%eax
479beb:	88 45 fe             	mov    %al,-0x2(%ebp)
479bee:	83 7a 04 01          	cmpl   $0x1,0x4(%edx)
479bf2:	7e 27                	jle    0x479c1b
479bf4:	8b c3                	mov    %ebx,%eax
479bf6:	c1 f8 08             	sar    $0x8,%eax
479bf9:	89 45 f8             	mov    %eax,-0x8(%ebp)
479bfc:	0f b6 c8             	movzbl %al,%ecx
479bff:	8b 02                	mov    (%edx),%eax
479c01:	57                   	push   %edi
479c02:	33 ff                	xor    %edi,%edi
479c04:	66 39 3c 48          	cmp    %di,(%eax,%ecx,2)
479c08:	5f                   	pop    %edi
479c09:	7d 10                	jge    0x479c1b
479c0b:	8b 45 f8             	mov    -0x8(%ebp),%eax
479c0e:	33 c9                	xor    %ecx,%ecx
479c10:	6a 02                	push   $0x2
479c12:	88 45 fc             	mov    %al,-0x4(%ebp)
479c15:	88 5d fd             	mov    %bl,-0x3(%ebp)
479c18:	58                   	pop    %eax
479c19:	eb 19                	jmp    0x479c34
479c1b:	e8 15 03 00 00       	call   0x479f35
479c20:	33 c9                	xor    %ecx,%ecx
479c22:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
479c28:	33 c0                	xor    %eax,%eax
479c2a:	8b 55 ec             	mov    -0x14(%ebp),%edx
479c2d:	40                   	inc    %eax
479c2e:	88 5d fc             	mov    %bl,-0x4(%ebp)
479c31:	88 4d fd             	mov    %cl,-0x3(%ebp)
479c34:	6a 01                	push   $0x1
479c36:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
479c3a:	88 4d fa             	mov    %cl,-0x6(%ebp)
479c3d:	8d 4d f8             	lea    -0x8(%ebp),%ecx
479c40:	ff 72 08             	push   0x8(%edx)
479c43:	6a 03                	push   $0x3
479c45:	51                   	push   %ecx
479c46:	50                   	push   %eax
479c47:	8d 45 fc             	lea    -0x4(%ebp),%eax
479c4a:	50                   	push   %eax
479c4b:	68 00 01 00 00       	push   $0x100
479c50:	ff b2 a8 00 00 00    	push   0xa8(%edx)
479c56:	8d 45 ec             	lea    -0x14(%ebp),%eax
479c59:	50                   	push   %eax
479c5a:	e8 fb e4 00 00       	call   0x48815a
479c5f:	83 c4 24             	add    $0x24,%esp
479c62:	85 c0                	test   %eax,%eax
479c64:	75 04                	jne    0x479c6a
479c66:	8b d3                	mov    %ebx,%edx
479c68:	eb 12                	jmp    0x479c7c
479c6a:	0f b6 55 f8          	movzbl -0x8(%ebp),%edx
479c6e:	83 f8 01             	cmp    $0x1,%eax
479c71:	74 09                	je     0x479c7c
479c73:	0f b6 45 f9          	movzbl -0x7(%ebp),%eax
479c77:	c1 e2 08             	shl    $0x8,%edx
479c7a:	0b d0                	or     %eax,%edx
479c7c:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
479c80:	74 0a                	je     0x479c8c
479c82:	8b 4d e8             	mov    -0x18(%ebp),%ecx
479c85:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
479c8c:	8b c2                	mov    %edx,%eax
479c8e:	5b                   	pop    %ebx
479c8f:	c9                   	leave
479c90:	c3                   	ret
479c91:	8b ff                	mov    %edi,%edi
479c93:	55                   	push   %ebp
479c94:	8b ec                	mov    %esp,%ebp
479c96:	83 3d c0 87 4c 00 00 	cmpl   $0x0,0x4c87c0
479c9d:	74 10                	je     0x479caf
479c9f:	6a 00                	push   $0x0
479ca1:	ff 75 08             	push   0x8(%ebp)
479ca4:	e8 ea fe ff ff       	call   0x479b93
479ca9:	59                   	pop    %ecx
479caa:	59                   	pop    %ecx
479cab:	8b c8                	mov    %eax,%ecx