522937:	83 c4 0c             	add    $0xc,%esp
52293a:	85 c0                	test   %eax,%eax
52293c:	75 20                	jne    0x52295e
52293e:	ff 36                	push   (%esi)
522940:	68 c4 68 6b 00       	push   $0x6b68c4
522945:	ff 75 08             	push   0x8(%ebp)
522948:	57                   	push   %edi
522949:	e8 72 b8 ff ff       	call   0x51e1c0
52294e:	56                   	push   %esi
52294f:	ff 75 0c             	push   0xc(%ebp)
522952:	57                   	push   %edi
522953:	e8 a8 73 00 00       	call   0x529d00
522958:	8b 45 10             	mov    0x10(%ebp),%eax
52295b:	83 c4 1c             	add    $0x1c,%esp
52295e:	50                   	push   %eax
52295f:	ff 75 08             	push   0x8(%ebp)
522962:	56                   	push   %esi
522963:	57                   	push   %edi
522964:	e8 e7 bc ff ff       	call   0x51e650
522969:	83 c4 10             	add    $0x10,%esp
52296c:	5e                   	pop    %esi
52296d:	ff 75 0c             	push   0xc(%ebp)
522970:	53                   	push   %ebx
522971:	e8 fa a3 01 00       	call   0x53cd70
522976:	83 c4 08             	add    $0x8,%esp
522979:	5f                   	pop    %edi
52297a:	5b                   	pop    %ebx
52297b:	8b e5                	mov    %ebp,%esp
52297d:	5d                   	pop    %ebp
52297e:	c3                   	ret
52297f:	cc                   	int3
522980:	55                   	push   %ebp
522981:	8b ec                	mov    %esp,%ebp
522983:	83 ec 0c             	sub    $0xc,%esp
522986:	53                   	push   %ebx
522987:	57                   	push   %edi
522988:	8b 7d 08             	mov    0x8(%ebp),%edi
52298b:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
522992:	8b 1f                	mov    (%edi),%ebx
522994:	80 7b 51 00          	cmpb   $0x0,0x51(%ebx)
522998:	0f 85 e1 00 00 00    	jne    0x522a7f
52299e:	57                   	push   %edi
52299f:	e8 ec 4a 01 00       	call   0x537490
5229a4:	83 c4 04             	add    $0x4,%esp
5229a7:	85 c0                	test   %eax,%eax
5229a9:	0f 85 d0 00 00 00    	jne    0x522a7f
5229af:	8b 45 0c             	mov    0xc(%ebp),%eax
5229b2:	56                   	push   %esi
5229b3:	33 f6                	xor    %esi,%esi
5229b5:	8b 48 0c             	mov    0xc(%eax),%ecx
5229b8:	8b 50 10             	mov    0x10(%eax),%edx
5229bb:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5229be:	89 55 f8             	mov    %edx,-0x8(%ebp)
5229c1:	39 73 14             	cmp    %esi,0x14(%ebx)
5229c4:	0f 8e 8d 00 00 00    	jle    0x522a57
5229ca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5229d0:	8b c6                	mov    %esi,%eax
5229d2:	8b fe                	mov    %esi,%edi
5229d4:	83 f0 01             	xor    $0x1,%eax
5229d7:	83 fe 02             	cmp    $0x2,%esi
5229da:	0f 4c f8             	cmovl  %eax,%edi
5229dd:	85 c9                	test   %ecx,%ecx
5229df:	74 1a                	je     0x5229fb
5229e1:	8b 43 10             	mov    0x10(%ebx),%eax
5229e4:	51                   	push   %ecx
5229e5:	8b cf                	mov    %edi,%ecx
5229e7:	03 c9                	add    %ecx,%ecx
5229e9:	ff 34 c8             	push   (%eax,%ecx,8)
5229ec:	e8 3f b2 01 00       	call   0x53dc30
5229f1:	83 c4 08             	add    $0x8,%esp
5229f4:	85 c0                	test   %eax,%eax
5229f6:	75 27                	jne    0x522a1f
5229f8:	8b 55 f8             	mov    -0x8(%ebp),%edx
5229fb:	8b 43 10             	mov    0x10(%ebx),%eax
5229fe:	03 ff                	add    %edi,%edi
522a00:	6a 00                	push   $0x0
522a02:	52                   	push   %edx
522a03:	8b 44 f8 0c          	mov    0xc(%eax,%edi,8),%eax
522a07:	83 c0 28             	add    $0x28,%eax
522a0a:	50                   	push   %eax
522a0b:	e8 c0 f5 fd ff       	call   0x501fd0
522a10:	83 c4 0c             	add    $0xc,%esp
522a13:	8b 40 08             	mov    0x8(%eax),%eax
522a16:	89 45 fc             	mov    %eax,-0x4(%ebp)
522a19:	85 c0                	test   %eax,%eax
522a1b:	75 15                	jne    0x522a32
522a1d:	eb 03                	jmp    0x522a22
522a1f:	8b 45 fc             	mov    -0x4(%ebp),%eax
522a22:	8b 4d f4             	mov    -0xc(%ebp),%ecx
522a25:	46                   	inc    %esi
522a26:	8b 55 f8             	mov    -0x8(%ebp),%edx
522a29:	3b 73 14             	cmp    0x14(%ebx),%esi
522a2c:	7c a2                	jl     0x5229d0
522a2e:	85 c0                	test   %eax,%eax
522a30:	74 1f                	je     0x522a51
522a32:	50                   	push   %eax
522a33:	ff 75 08             	push   0x8(%ebp)
522a36:	e8 65 00 00 00       	call   0x522aa0
522a3b:	83 c4 08             	add    $0x8,%esp
522a3e:	5e                   	pop    %esi
522a3f:	ff 75 0c             	push   0xc(%ebp)
522a42:	53                   	push   %ebx
522a43:	e8 28 a3 01 00       	call   0x53cd70
522a48:	83 c4 08             	add    $0x8,%esp
522a4b:	5f                   	pop    %edi
522a4c:	5b                   	pop    %ebx
522a4d:	8b e5                	mov    %ebp,%esp
522a4f:	5d                   	pop    %ebp
522a50:	c3                   	ret
522a51:	8b 7d 08             	mov    0x8(%ebp),%edi
522a54:	8b 45 0c             	mov    0xc(%ebp),%eax
522a57:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
522a5b:	75 13                	jne    0x522a70
522a5d:	6a 00                	push   $0x0
522a5f:	50                   	push   %eax
522a60:	68 30 b5 6b 00       	push   $0x6bb530
522a65:	57                   	push   %edi
522a66:	e8 f5 07 00 00       	call   0x523260
522a6b:	83 c4 10             	add    $0x10,%esp
522a6e:	eb 0a                	jmp    0x522a7a
522a70:	51                   	push   %ecx
522a71:	57                   	push   %edi
522a72:	e8 b9 c7 ff ff       	call   0x51f230
522a77:	83 c4 08             	add    $0x8,%esp
522a7a:	c6 47 11 01          	movb   $0x1,0x11(%edi)
522a7e:	5e                   	pop    %esi
522a7f:	ff 75 0c             	push   0xc(%ebp)
522a82:	53                   	push   %ebx
522a83:	e8 e8 a2 01 00       	call   0x53cd70
522a88:	83 c4 08             	add    $0x8,%esp
522a8b:	5f                   	pop    %edi
522a8c:	5b                   	pop    %ebx
522a8d:	8b e5                	mov    %ebp,%esp
522a8f:	5d                   	pop    %ebp
522a90:	c3                   	ret
522a91:	cc                   	int3
522a92:	cc                   	int3
522a93:	cc                   	int3
522a94:	cc                   	int3
522a95:	cc                   	int3
522a96:	cc                   	int3
522a97:	cc                   	int3
522a98:	cc                   	int3
522a99:	cc                   	int3
522a9a:	cc                   	int3
522a9b:	cc                   	int3
522a9c:	cc                   	int3
522a9d:	cc                   	int3
522a9e:	cc                   	int3
522a9f:	cc                   	int3
522aa0:	55                   	push   %ebp
522aa1:	8b ec                	mov    %esp,%ebp
522aa3:	51                   	push   %ecx
522aa4:	53                   	push   %ebx
522aa5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
522aa8:	56                   	push   %esi
522aa9:	57                   	push   %edi
522aaa:	8b 7d 08             	mov    0x8(%ebp),%edi
522aad:	be c0 bd f0 ff       	mov    $0xfff0bdc0,%esi
522ab2:	8b 4b 14             	mov    0x14(%ebx),%ecx
522ab5:	8b 07                	mov    (%edi),%eax
522ab7:	89 45 08             	mov    %eax,0x8(%ebp)
522aba:	85 c9                	test   %ecx,%ecx
522abc:	74 1a                	je     0x522ad8
522abe:	8b 40 10             	mov    0x10(%eax),%eax
522ac1:	33 f6                	xor    %esi,%esi
522ac3:	83 c0 0c             	add    $0xc,%eax
522ac6:	39 08                	cmp    %ecx,(%eax)
522ac8:	74 0e                	je     0x522ad8
522aca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
522ad0:	8d 40 10             	lea    0x10(%eax),%eax
522ad3:	46                   	inc    %esi
522ad4:	39 08                	cmp    %ecx,(%eax)
522ad6:	75 f8                	jne    0x522ad0
522ad8:	8b 43 18             	mov    0x18(%ebx),%eax
522adb:	6a 00                	push   $0x0
522add:	ff 73 04             	push   0x4(%ebx)
522ae0:	83 c0 08             	add    $0x8,%eax
522ae3:	50                   	push   %eax
522ae4:	e8 e7 f4 fd ff       	call   0x501fd0
522ae9:	83 c4 0c             	add    $0xc,%esp
522aec:	8b 50 08             	mov    0x8(%eax),%edx
522aef:	85 d2                	test   %edx,%edx
522af1:	74 5a                	je     0x522b4d
522af3:	8b 45 08             	mov    0x8(%ebp),%eax
522af6:	8b ce                	mov    %esi,%ecx
522af8:	03 c9                	add    %ecx,%ecx
522afa:	8b 40 10             	mov    0x10(%eax),%eax
522afd:	8b 04 c8             	mov    (%eax,%ecx,8),%eax
522b00:	50                   	push   %eax
522b01:	ff 32                	push   (%edx)
522b03:	89 45 fc             	mov    %eax,-0x4(%ebp)
522b06:	33 c0                	xor    %eax,%eax
522b08:	ff 33                	push   (%ebx)
522b0a:	83 fe 01             	cmp    $0x1,%esi
522b0d:	0f 95 c0             	setne  %al
522b10:	8d 04 45 0e 00 00 00 	lea    0xe(,%eax,2),%eax
522b17:	50                   	push   %eax
522b18:	57                   	push   %edi
522b19:	e8 82 6c ff ff       	call   0x5197a0
522b1e:	83 c4 14             	add    $0x14,%esp
522b21:	85 c0                	test   %eax,%eax
522b23:	0f 85 8e 00 00 00    	jne    0x522bb7
522b29:	ff 75 fc             	push   -0x4(%ebp)
522b2c:	b9 60 9d 6b 00       	mov    $0x6b9d60,%ecx
522b31:	83 fe 01             	cmp    $0x1,%esi
522b34:	50                   	push   %eax
522b35:	b8 24 8a 6b 00       	mov    $0x6b8a24,%eax
522b3a:	0f 44 c1             	cmove  %ecx,%eax
522b3d:	50                   	push   %eax
522b3e:	6a 09                	push   $0x9
522b40:	57                   	push   %edi
522b41:	e8 5a 6c ff ff       	call   0x5197a0
522b46:	83 c4 14             	add    $0x14,%esp
522b49:	85 c0                	test   %eax,%eax
522b4b:	75 6a                	jne    0x522bb7
522b4d:	8b 5f 08             	mov    0x8(%edi),%ebx
522b50:	85 db                	test   %ebx,%ebx
522b52:	75 20                	jne    0x522b74
522b54:	39 5f 74             	cmp    %ebx,0x74(%edi)
522b57:	75 0c                	jne    0x522b65
522b59:	8b 07                	mov    (%edi),%eax
522b5b:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
522b5f:	75 04                	jne    0x522b65
522b61:	c6 47 17 01          	movb   $0x1,0x17(%edi)
522b65:	57                   	push   %edi
522b66:	e8 a5 f8 01 00       	call   0x542410
522b6b:	8b d8                	mov    %eax,%ebx
522b6d:	83 c4 04             	add    $0x4,%esp
522b70:	85 db                	test   %ebx,%ebx
522b72:	74 43                	je     0x522bb7
522b74:	8b 45 0c             	mov    0xc(%ebp),%eax
522b77:	8b ce                	mov    %esi,%ecx
522b79:	03 c9                	add    %ecx,%ecx
522b7b:	ff 30                	push   (%eax)
522b7d:	8b 45 08             	mov    0x8(%ebp),%eax
522b80:	68 24 8a 6b 00       	push   $0x6b8a24
522b85:	8b 40 10             	mov    0x10(%eax),%eax
522b88:	ff 34 c8             	push   (%eax,%ecx,8)
522b8b:	68 44 b5 6b 00       	push   $0x6bb544
522b90:	57                   	push   %edi
522b91:	e8 0a eb 00 00       	call   0x5316a0
522b96:	56                   	push   %esi
522b97:	57                   	push   %edi
522b98:	e8 b3 b3 ff ff       	call   0x51df50
522b9d:	8b 45 0c             	mov    0xc(%ebp),%eax
522ba0:	6a 00                	push   $0x0
522ba2:	ff 30                	push   (%eax)
522ba4:	6a 00                	push   $0x0
522ba6:	6a 00                	push   $0x0
522ba8:	56                   	push   %esi
522ba9:	68 91 00 00 00       	push   $0x91
522bae:	53                   	push   %ebx
522baf:	e8 dc ef 01 00       	call   0x541b90
522bb4:	83 c4 38             	add    $0x38,%esp
522bb7:	5f                   	pop    %edi
522bb8:	5e                   	pop    %esi
522bb9:	5b                   	pop    %ebx
522bba:	8b e5                	mov    %ebp,%esp
522bbc:	5d                   	pop    %ebp
522bbd:	c3                   	ret
522bbe:	cc                   	int3
522bbf:	cc                   	int3
522bc0:	55                   	push   %ebp
522bc1:	8b ec                	mov    %esp,%ebp
522bc3:	83 ec 34             	sub    $0x34,%esp
522bc6:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
522bca:	8b 45 18             	mov    0x18(%ebp),%eax
522bcd:	53                   	push   %ebx
522bce:	8b 5d 08             	mov    0x8(%ebp),%ebx
522bd1:	56                   	push   %esi
522bd2:	8b 33                	mov    (%ebx),%esi
522bd4:	89 75 fc             	mov    %esi,-0x4(%ebp)
522bd7:	75 08                	jne    0x522be1
522bd9:	85 c0                	test   %eax,%eax
522bdb:	0f 84 62 05 00 00    	je     0x523143
522be1:	57                   	push   %edi
522be2:	8b bb e4 00 00 00    	mov    0xe4(%ebx),%edi
522be8:	85 ff                	test   %edi,%edi
522bea:	0f 84 52 05 00 00    	je     0x523142
522bf0:	85 c0                	test   %eax,%eax
522bf2:	75 19                	jne    0x522c0d
522bf4:	ff 37                	push   (%edi)
522bf6:	56                   	push   %esi
522bf7:	e8 d4 9e 01 00       	call   0x53cad0
522bfc:	83 c4 08             	add    $0x8,%esp
522bff:	85 c0                	test   %eax,%eax
522c01:	8b 45 18             	mov    0x18(%ebp),%eax
522c04:	74 07                	je     0x522c0d
522c06:	81 4f 24 00 10 00 00 	orl    $0x1000,0x24(%edi)
522c0d:	80 be a5 00 00 00 00 	cmpb   $0x0,0xa5(%esi)
522c14:	74 2a                	je     0x522c40
522c16:	85 c0                	test   %eax,%eax
522c18:	74 15                	je     0x522c2f
522c1a:	68 ad 57 6e 00       	push   $0x6e57ad
522c1f:	53                   	push   %ebx
522c20:	e8 3b 06 00 00       	call   0x523260
522c25:	83 c4 08             	add    $0x8,%esp
522c28:	5f                   	pop    %edi
522c29:	5e                   	pop    %esi
522c2a:	5b                   	pop    %ebx
522c2b:	8b e5                	mov    %ebp,%esp
522c2d:	5d                   	pop    %ebp
522c2e:	c3                   	ret
522c2f:	8b 86 a0 00 00 00    	mov    0xa0(%esi),%eax
522c35:	89 47 1c             	mov    %eax,0x1c(%edi)
522c38:	83 f8 01             	cmp    $0x1,%eax
522c3b:	75 03                	jne    0x522c40
522c3d:	09 47 24             	or     %eax,0x24(%edi)
522c40:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
522c44:	7d 49                	jge    0x522c8f
522c46:	8b 47 24             	mov    0x24(%edi),%eax
522c49:	a8 08                	test   $0x8,%al
522c4b:	74 15                	je     0x522c62
522c4d:	68 30 a0 6b 00       	push   $0x6ba030
522c52:	53                   	push   %ebx
522c53:	e8 08 06 00 00       	call   0x523260
522c58:	83 c4 08             	add    $0x8,%esp
522c5b:	5f                   	pop    %edi
522c5c:	5e                   	pop    %esi
522c5d:	5b                   	pop    %ebx
522c5e:	8b e5                	mov    %ebp,%esp
522c60:	5d                   	pop    %ebp
522c61:	c3                   	ret
522c62:	a8 04                	test   $0x4,%al
522c64:	75 17                	jne    0x522c7d
522c66:	ff 37                	push   (%edi)
522c68:	68 64 a0 6b 00       	push   $0x6ba064
522c6d:	53                   	push   %ebx
522c6e:	e8 ed 05 00 00       	call   0x523260
522c73:	83 c4 0c             	add    $0xc,%esp
522c76:	5f                   	pop    %edi
522c77:	5e                   	pop    %esi
522c78:	5b                   	pop    %ebx
522c79:	8b e5                	mov    %ebp,%esp
522c7b:	5d                   	pop    %ebp
522c7c:	c3                   	ret
522c7d:	0d 80 02 00 00       	or     $0x280,%eax
522c82:	57                   	push   %edi
522c83:	53                   	push   %ebx
522c84:	89 47 24             	mov    %eax,0x24(%edi)
522c87:	e8 34 98 fd ff       	call   0x4fc4c0
522c8c:	83 c4 08             	add    $0x8,%esp
522c8f:	ff 77 48             	push   0x48(%edi)
522c92:	56                   	push   %esi
522c93:	e8 c8 6d 01 00       	call   0x539a60
522c98:	8b 4f 18             	mov    0x18(%edi),%ecx
522c9b:	83 c4 08             	add    $0x8,%esp
522c9e:	89 45 f8             	mov    %eax,-0x8(%ebp)
522ca1:	85 c9                	test   %ecx,%ecx