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
522ca3:	74 2d                	je     0x522cd2
522ca5:	51                   	push   %ecx
522ca6:	6a 00                	push   $0x0
522ca8:	6a 04                	push   $0x4
522caa:	57                   	push   %edi
522cab:	53                   	push   %ebx
522cac:	e8 cf 57 01 00       	call   0x538480
522cb1:	83 c4 14             	add    $0x14,%esp
522cb4:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
522cb8:	74 18                	je     0x522cd2
522cba:	8b 47 18             	mov    0x18(%edi),%eax
522cbd:	85 c0                	test   %eax,%eax
522cbf:	74 0a                	je     0x522ccb
522cc1:	50                   	push   %eax
522cc2:	56                   	push   %esi
522cc3:	e8 38 e3 fd ff       	call   0x501000
522cc8:	83 c4 08             	add    $0x8,%esp
522ccb:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
522cd2:	f6 47 24 60          	testb  $0x60,0x24(%edi)
522cd6:	0f 84 cb 00 00 00    	je     0x522da7
522cdc:	33 c0                	xor    %eax,%eax
522cde:	33 d2                	xor    %edx,%edx
522ce0:	89 45 f0             	mov    %eax,-0x10(%ebp)
522ce3:	89 55 08             	mov    %edx,0x8(%ebp)
522ce6:	66 3b 47 2a          	cmp    0x2a(%edi),%ax
522cea:	0f 8d a2 00 00 00    	jge    0x522d92
522cf0:	33 c9                	xor    %ecx,%ecx
522cf2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
522cf5:	8b 47 04             	mov    0x4(%edi),%eax
522cf8:	f6 44 08 10 60       	testb  $0x60,0x10(%eax,%ecx,1)
522cfd:	74 6b                	je     0x522d6a
522cff:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
522d03:	6a 00                	push   $0x0
522d05:	50                   	push   %eax
522d06:	6a 08                	push   $0x8
522d08:	57                   	push   %edi
522d09:	53                   	push   %ebx
522d0a:	89 45 ec             	mov    %eax,-0x14(%ebp)
522d0d:	e8 6e 57 01 00       	call   0x538480
522d12:	83 c4 14             	add    $0x14,%esp
522d15:	85 c0                	test   %eax,%eax
522d17:	74 56                	je     0x522d6f
522d19:	8b 45 ec             	mov    -0x14(%ebp),%eax
522d1c:	85 c0                	test   %eax,%eax
522d1e:	74 0a                	je     0x522d2a
522d20:	50                   	push   %eax
522d21:	56                   	push   %esi
522d22:	e8 89 3a 00 00       	call   0x5267b0
522d27:	83 c4 08             	add    $0x8,%esp
522d2a:	6a 00                	push   $0x0
522d2c:	6a 34                	push   $0x34
522d2e:	56                   	push   %esi
522d2f:	e8 ac e6 ff ff       	call   0x5213e0
522d34:	8b f0                	mov    %eax,%esi
522d36:	83 c4 0c             	add    $0xc,%esp
522d39:	85 f6                	test   %esi,%esi
522d3b:	74 1e                	je     0x522d5b
522d3d:	6a 34                	push   $0x34
522d3f:	6a 00                	push   $0x0
522d41:	56                   	push   %esi
522d42:	e8 b9 0c 0c 00       	call   0x5e3a00
522d47:	83 c4 0c             	add    $0xc,%esp
522d4a:	c6 06 77             	movb   $0x77,(%esi)
522d4d:	83 c8 ff             	or     $0xffffffff,%eax
522d50:	c7 46 18 01 00 00 00 	movl   $0x1,0x18(%esi)
522d57:	66 89 46 22          	mov    %ax,0x22(%esi)
522d5b:	8b 47 04             	mov    0x4(%edi),%eax
522d5e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
522d61:	89 74 01 04          	mov    %esi,0x4(%ecx,%eax,1)
522d65:	8b 75 fc             	mov    -0x4(%ebp),%esi
522d68:	eb 08                	jmp    0x522d72
522d6a:	ff 45 f0             	incl   -0x10(%ebp)
522d6d:	eb 06                	jmp    0x522d75
522d6f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
522d72:	8b 55 08             	mov    0x8(%ebp),%edx
522d75:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
522d79:	42                   	inc    %edx
522d7a:	83 c1 14             	add    $0x14,%ecx
522d7d:	89 55 08             	mov    %edx,0x8(%ebp)
522d80:	89 4d f4             	mov    %ecx,-0xc(%ebp)
522d83:	3b d0                	cmp    %eax,%edx
522d85:	0f 8c 6a ff ff ff    	jl     0x522cf5
522d8b:	8b 45 f0             	mov    -0x10(%ebp),%eax
522d8e:	85 c0                	test   %eax,%eax
522d90:	75 15                	jne    0x522da7
522d92:	68 84 a0 6b 00       	push   $0x6ba084
522d97:	53                   	push   %ebx
522d98:	e8 c3 04 00 00       	call   0x523260
522d9d:	83 c4 08             	add    $0x8,%esp
522da0:	5f                   	pop    %edi
522da1:	5e                   	pop    %esi
522da2:	5b                   	pop    %ebx
522da3:	8b e5                	mov    %ebp,%esp
522da5:	5d                   	pop    %ebp
522da6:	c3                   	ret
522da7:	57                   	push   %edi
522da8:	e8 a3 bc fd ff       	call   0x4fea50
522dad:	8b 77 08             	mov    0x8(%edi),%esi
522db0:	83 c4 04             	add    $0x4,%esp
522db3:	85 f6                	test   %esi,%esi
522db5:	74 10                	je     0x522dc7
522db7:	56                   	push   %esi
522db8:	e8 a3 bb fd ff       	call   0x4fe960
522dbd:	8b 76 14             	mov    0x14(%esi),%esi
522dc0:	83 c4 04             	add    $0x4,%esp
522dc3:	85 f6                	test   %esi,%esi
522dc5:	75 f0                	jne    0x522db7
522dc7:	8b 75 fc             	mov    -0x4(%ebp),%esi
522dca:	80 be a5 00 00 00 00 	cmpb   $0x0,0xa5(%esi)
522dd1:	0f 85 0b 03 00 00    	jne    0x5230e2
522dd7:	8b 53 08             	mov    0x8(%ebx),%edx
522dda:	89 55 08             	mov    %edx,0x8(%ebp)
522ddd:	85 d2                	test   %edx,%edx
522ddf:	75 27                	jne    0x522e08
522de1:	39 53 74             	cmp    %edx,0x74(%ebx)
522de4:	75 0c                	jne    0x522df2
522de6:	8b 03                	mov    (%ebx),%eax
522de8:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
522dec:	75 04                	jne    0x522df2
522dee:	c6 43 17 01          	movb   $0x1,0x17(%ebx)
522df2:	53                   	push   %ebx
522df3:	e8 18 f6 01 00       	call   0x542410
522df8:	8b d0                	mov    %eax,%edx
522dfa:	89 45 08             	mov    %eax,0x8(%ebp)
522dfd:	83 c4 04             	add    $0x4,%esp
522e00:	85 d2                	test   %edx,%edx
522e02:	0f 84 3a 03 00 00    	je     0x523142
522e08:	8b 4a 6c             	mov    0x6c(%edx),%ecx
522e0b:	39 4a 70             	cmp    %ecx,0x70(%edx)
522e0e:	7f 16                	jg     0x522e26
522e10:	6a 00                	push   $0x0
522e12:	6a 00                	push   $0x0
522e14:	6a 00                	push   $0x0
522e16:	6a 74                	push   $0x74
522e18:	52                   	push   %edx
522e19:	e8 e2 36 fe ff       	call   0x506500
522e1e:	8b 55 08             	mov    0x8(%ebp),%edx
522e21:	83 c4 14             	add    $0x14,%esp
522e24:	eb 33                	jmp    0x522e59
522e26:	8d 41 01             	lea    0x1(%ecx),%eax
522e29:	89 42 6c             	mov    %eax,0x6c(%edx)
522e2c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
522e2f:	8b 42 68             	mov    0x68(%edx),%eax
522e32:	c7 04 88 74 00 00 00 	movl   $0x74,(%eax,%ecx,4)
522e39:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
522e40:	00
522e41:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
522e48:	00
522e49:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
522e50:	00
522e51:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
522e58:	00
522e59:	8b 47 0c             	mov    0xc(%edi),%eax
522e5c:	b9 b8 a0 6b 00       	mov    $0x6ba0b8,%ecx
522e61:	85 c0                	test   %eax,%eax
522e63:	c7 45 ec b0 a0 6b 00 	movl   $0x6ba0b0,-0x14(%ebp)
522e6a:	0f 44 4d ec          	cmove  -0x14(%ebp),%ecx
522e6e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
522e71:	b9 60 99 6b 00       	mov    $0x6b9960,%ecx
522e76:	c7 45 ec 1c 69 6b 00 	movl   $0x6b691c,-0x14(%ebp)
522e7d:	0f 44 4d ec          	cmove  -0x14(%ebp),%ecx
522e81:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
522e85:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
522e88:	0f 84 7f 01 00 00    	je     0x52300d
522e8e:	ff 43 2c             	incl   0x2c(%ebx)
522e91:	8b cb                	mov    %ebx,%ecx
522e93:	8b 43 2c             	mov    0x2c(%ebx),%eax
522e96:	ff 75 f8             	push   -0x8(%ebp)
522e99:	89 45 f0             	mov    %eax,-0x10(%ebp)
522e9c:	40                   	inc    %eax
522e9d:	89 45 ec             	mov    %eax,-0x14(%ebp)
522ea0:	40                   	inc    %eax
522ea1:	89 43 2c             	mov    %eax,0x2c(%ebx)
522ea4:	89 45 f4             	mov    %eax,-0xc(%ebp)
522ea7:	8b 43 74             	mov    0x74(%ebx),%eax